/* eslint-disable node/no-unpublished-import */ /* eslint-env node */ // This rollup script is run by the command: // 'npm run build' import path from 'path'; import { lstatSync, readdirSync } from 'fs'; import rimraf from 'rimraf'; import babel from '@rollup/plugin-babel'; import copy from 'rollup-plugin-copy'; import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import nodePolyfills from 'rollup-plugin-node-polyfills'; import url from '@rollup/plugin-url'; // for XML/SVG files import dynamicImportVars from '@rollup/plugin-dynamic-import-vars'; import { terser } from 'rollup-plugin-terser'; // import progress from 'rollup-plugin-progress'; import filesize from 'rollup-plugin-filesize'; // utility function const getDirectories = (source) => { const isDirectory = (dir) => { return lstatSync(dir).isDirectory(); }; return readdirSync(source).map((name) => path.join(source, name)).filter((i) => isDirectory(i)); }; // capture the list of files to build for extensions and ext-locales const extensionDirs = getDirectories('src/editor/extensions'); /** @todo should we support systemjs? */ const dest = [ 'dist/editor' ]; // remove existing distribution // eslint-disable-next-line no-console rimraf('./dist', () => console.info('recreating dist')); // config for svgedit core module const config = [ { input: [ 'src/editor/Editor.js' ], output: [ { format: 'es', inlineDynamicImports: true, sourcemap: true, file: 'dist/editor/Editor.js' }, { format: 'es', inlineDynamicImports: true, sourcemap: true, file: 'dist/editor/xdomain-Editor.js', intro: 'const XDOMAIN = true;' }, { file: 'dist/editor/iife-Editor.js', format: 'iife', inlineDynamicImports: true, name: 'Editor', sourcemap: true } ], plugins: [ copy({ targets: [ { src: 'src/editor/index.html', dest: 'dist/editor' }, { src: 'src/editor/index.html', dest: 'dist/editor', rename: 'xdomain-index.html', transform: (contents) => contents.toString() .replace("import Editor from './Editor.js'", "import Editor from './xdomain-Editor.js") }, { src: 'src/editor/index.html', dest: 'dist/editor', rename: 'iife-index.html', transform: (contents) => { const replace1 = contents.toString().replace("import Editor from './Editor.js'", "/* import Editor from './xdomain-Editor.js' */"); return replace1.replace('