80 lines
2.2 KiB
JavaScript
80 lines
2.2 KiB
JavaScript
// copied and adapted from leaftlet repository
|
|
import {readFileSync} from 'node:fs';
|
|
|
|
import json from '@rollup/plugin-json';
|
|
import {simpleGit} from 'simple-git';
|
|
import del from 'rollup-plugin-delete';
|
|
import rollupGitVersion from 'rollup-plugin-git-version';
|
|
|
|
import pkg from './package.json' with { type: 'json' };
|
|
|
|
const release = process.env.NODE_ENV === 'release';
|
|
const version = await getVersion();
|
|
const banner = createBanner(version);
|
|
|
|
/** @type {import('rollup').RollupOptions} */
|
|
const config = {
|
|
input: 'LayersTree.js',
|
|
output: [
|
|
{
|
|
file: './dist/LayersTree-umd.js',
|
|
name: 'LayersTree',
|
|
format: 'umd',
|
|
banner,
|
|
globals: {leaflet: 'L'},
|
|
},
|
|
{
|
|
file: './dist/LayersTree.js',
|
|
name: 'LayersTree',
|
|
format: 'es',
|
|
banner,
|
|
},
|
|
],
|
|
plugins: [
|
|
del({targets: 'dist'}),
|
|
release ? json() : rollupGitVersion(),
|
|
{
|
|
name: 'copy-plugin-assets',
|
|
generateBundle() {
|
|
const fileNames = [
|
|
'L.Control.Layers.Tree.css',
|
|
'L.Control.Layers.Tree.d.ts',
|
|
'L.Control.Layers.Tree.js',
|
|
'LayersTree.d.ts',
|
|
];
|
|
for (const fileName of fileNames) {
|
|
const source = readFileSync(new URL(`./${fileName}`, import.meta.url));
|
|
this.emitFile({type: 'asset', fileName, source: `${banner}${source}`});
|
|
}
|
|
},
|
|
},
|
|
],
|
|
external: ['leaflet'],
|
|
watch: {
|
|
include: ['LayersTree.js'],
|
|
},
|
|
};
|
|
|
|
export default config;
|
|
|
|
async function getVersion() {
|
|
// Skip the git branch+rev in the banner when doing a release build
|
|
if (release) {
|
|
return pkg.version;
|
|
}
|
|
|
|
const git = simpleGit();
|
|
const branch = (await git.branch()).current;
|
|
const commit = await git.revparse(['--short', 'HEAD']);
|
|
|
|
return `${pkg.version}+${branch}.${commit}`;
|
|
}
|
|
|
|
export function createBanner(version) {
|
|
return `/*
|
|
* Leaflet Control Layers Tree ${version}, a Leaflet plugin.
|
|
* (c) 2017-${new Date().getFullYear()} Javier Jimenez Shaw
|
|
*/
|
|
`;
|
|
}
|