UNPKG

@serpent/rollup-kits

Version:
55 lines (54 loc) 2.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeCli = void 0; const tslib_1 = require("tslib"); const fs_1 = tslib_1.__importDefault(require("fs")); const path_1 = tslib_1.__importDefault(require("path")); const base_1 = require("./base"); function makeCli(srcKeys = [], options = {}) { const { plugins } = options, restOptions = tslib_1.__rest(options, ["plugins"]); const rootDir = base_1.getRootDir(); const srcDir = path_1.default.join(rootDir, 'src'); const binDir = path_1.default.join(srcDir, 'bin'); const pkg = require(path_1.default.join(rootDir, 'package.json')); const { npm_lifecycle_script: npmLifecycleEvent = '' } = process.env; const enableSourceMap = npmLifecycleEvent.includes('sourcemap'); const { normalPlugins, minifyPlugins } = base_1.getPlugins(Object.assign({ run: npmLifecycleEvent.includes('watch'), replace: { __BUILD_VERSION__: pkg.version, }, typescript: { module: 'ESNext', noEmitOnError: false, sourceMap: enableSourceMap, }, terser: { format: { comments: false }, mangle: {}, compress: { drop_console: false }, }, alias: { entries: fs_1.default.readdirSync(srcDir).map(n => { return { find: `src/${n}`, replacement: path_1.default.join(srcDir, n), }; }), } }, plugins)); const keys = srcKeys .filter(key => { const dir = path_1.default.join(binDir, key); return fs_1.default.statSync(dir).isDirectory() && fs_1.default.statSync(path_1.default.join(dir, 'index.ts')).isFile(); }) .map(key => 'cli-' + key); const config = Object.assign({ input: base_1.getEntryMap(['index', 'cli', ...keys], n => { if (keys.includes(n)) { return path_1.default.join(binDir, n.substr(4), 'index.ts'); } else { return path_1.default.join(binDir, n + '.ts'); } }), plugins: enableSourceMap ? minifyPlugins : normalPlugins, external: base_1.getExternal(), output: { format: 'cjs', dir: path_1.default.join(rootDir, 'dist'), exports: 'auto', } }, restOptions); return config; } exports.makeCli = makeCli;