UNPKG

tsds-build

Version:

Development stack for TypeScript libraries

29 lines (28 loc) 1.17 kB
import path from 'path'; import Queue from 'queue-cb'; import rimraf2 from 'rimraf2'; import { loadConfig } from 'tsds-lib'; import { DEFAULT_TARGETS } from './constants.mjs'; import code from './lib/code.mjs'; import types from './lib/types.mjs'; import umd from './lib/umd.mjs'; export default function build(args, options, callback) { const config = loadConfig(options); if (!config) { console.log('tsds: no config. Skipping'); return callback(); } const cwd = options.cwd || process.cwd(); const targets = config.targets || DEFAULT_TARGETS; const clean = options.clean === undefined ? true : options.clean; const dest = path.join(cwd, 'dist'); const queue = new Queue(1); !clean || queue.defer((cb)=>rimraf2(dest, { disableGlob: true }, cb.bind(null, null))); targets.indexOf('cjs') < 0 || queue.defer(code.bind(null, args, 'cjs', options)); targets.indexOf('esm') < 0 || queue.defer(code.bind(null, args, 'esm', options)); targets.indexOf('umd') < 0 || queue.defer(umd.bind(null, args, options)); queue.defer(types.bind(null, args, options)); queue.await(callback); }