1 | // todo: add load from config file, TBD
|
2 | ;
|
3 | const path = require("path");
|
4 | const Listr = require('listr');
|
5 | const cpy = require('cpy');
|
6 | const del = require('del');
|
7 | const npm_submodules_1 = require("npm-submodules");
|
8 | const tasks_1 = require("../tasks");
|
9 | function buildCommand({ project, verbose, clean, local, main, watch, skipBundles }) {
|
10 | // 1. clean dist folders
|
11 | // 2.1 merge pkg json
|
12 | // todo: 2.2 validate pkg (main, module, types fields)
|
13 | // 2.3 write pkg
|
14 | // 3. compile ts
|
15 | return npm_submodules_1.findSubmodules(project, { local })
|
16 | .then(opts => new Listr([
|
17 | {
|
18 | title: 'Clean dist folders',
|
19 | task: () => new Listr(opts.map(opt => ({
|
20 | title: `Cleaning ${opt.dist}`,
|
21 | task: () => del(opt.dist)
|
22 | }))),
|
23 | skip: () => !clean
|
24 | },
|
25 | {
|
26 | title: 'Copy md files and license',
|
27 | task: () => Promise.all(opts.map(opt => cpy(['*.md', 'LICENSE'], opt.dist)
|
28 | .then(() => cpy([path.join(opt.src, '*.md'),
|
29 | path.join(opt.src, 'LICENSE')], opt.dist))))
|
30 | },
|
31 | {
|
32 | title: "Build package.json files",
|
33 | task: () => npm_submodules_1.buildPkgs(opts, { local })
|
34 | },
|
35 | {
|
36 | title: 'Build projects',
|
37 | task: () => new Listr(opts.map(opt => ({
|
38 | title: `Building ${opt.pkg.name} (${opt.src})`,
|
39 | task: () => tasks_1.build(opt.project)
|
40 | })))
|
41 | },
|
42 | {
|
43 | title: 'Bundling umd version',
|
44 | task: () => new Listr(opts.map(opt => ({
|
45 | title: `Bundling ${opt.pkg.name}`,
|
46 | task: () => tasks_1.bundleUmd({
|
47 | main,
|
48 | src: opt.src,
|
49 | dist: opt.dist,
|
50 | name: opt.pkg.name,
|
51 | tsconfig: opt.tsconfig.path,
|
52 | minify: false
|
53 | })
|
54 | }))),
|
55 | skip: () => watch && skipBundles
|
56 | },
|
57 | {
|
58 | title: 'Bundling minified umd version',
|
59 | task: () => new Listr(opts.map(opt => ({
|
60 | title: `Bundling ${opt.pkg.name}`,
|
61 | task: () => tasks_1.bundleUmd({
|
62 | main,
|
63 | src: opt.src,
|
64 | dist: opt.dist,
|
65 | name: opt.pkg.name,
|
66 | tsconfig: opt.tsconfig.path,
|
67 | minify: true
|
68 | })
|
69 | }))),
|
70 | skip: () => watch || skipBundles
|
71 | },
|
72 | ], { renderer: verbose ? 'verbose' : 'default' }));
|
73 | }
|
74 | exports.buildCommand = buildCommand;
|
75 | function buildTsRun(cli) {
|
76 | const { project, watch, verbose, clean, local, skipBundles } = cli.flags;
|
77 | let main = cli.flags.main || 'index.ts';
|
78 | return buildCommand({ project, verbose, clean, local, main, watch, skipBundles })
|
79 | .then(tasks => npm_submodules_1.tasksWatch({ project, tasks, watch }));
|
80 | }
|
81 | exports.buildTsRun = buildTsRun;
|
82 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZ20vY29tbWFuZHMvYnVpbGQuY29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1Q0FBdUM7O0FBRXZDLDZCQUE4QjtBQUM5QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDL0IsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzNCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUUzQixtREFBdUU7QUFDdkUsb0NBQTRDO0FBRTVDLHNCQUE2QixFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBQztJQUNyRix3QkFBd0I7SUFDeEIscUJBQXFCO0lBQ3JCLHNEQUFzRDtJQUN0RCxnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLE1BQU0sQ0FBQywrQkFBYyxDQUFDLE9BQU8sRUFBRSxFQUFDLEtBQUssRUFBQyxDQUFDO1NBQ3BDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUM7UUFDdEI7WUFDRSxLQUFLLEVBQUUsb0JBQW9CO1lBQzNCLElBQUksRUFBRSxNQUFNLElBQUksS0FBSyxDQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUNmLEtBQUssRUFBRSxZQUFZLEdBQUcsQ0FBQyxJQUFJLEVBQUU7Z0JBQzdCLElBQUksRUFBRSxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO2FBQzFCLENBQUMsQ0FBQyxDQUNKO1lBQ0QsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLO1NBQ25CO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsMkJBQTJCO1lBQ2xDLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQ2xDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDO2lCQUMvQixJQUFJLENBQUMsTUFDSixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDO2dCQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDakQsQ0FBQztTQUNIO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsMEJBQTBCO1lBQ2pDLElBQUksRUFBRSxNQUFNLDBCQUFTLENBQUMsSUFBSSxFQUFFLEVBQUMsS0FBSyxFQUFDLENBQUM7U0FDckM7UUFDRDtZQUNFLEtBQUssRUFBRSxnQkFBZ0I7WUFDdkIsSUFBSSxFQUFFLE1BQU0sSUFBSSxLQUFLLENBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ2YsS0FBSyxFQUFFLFlBQVksR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLEdBQUcsR0FBRztnQkFDOUMsSUFBSSxFQUFFLE1BQU0sYUFBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7YUFDL0IsQ0FBQyxDQUFDLENBQ0o7U0FDRjtRQUNEO1lBQ0UsS0FBSyxFQUFFLHNCQUFzQjtZQUM3QixJQUFJLEVBQUUsTUFBTSxJQUFJLEtBQUssQ0FDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDZixLQUFLLEVBQUUsWUFBWSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRTtnQkFDakMsSUFBSSxFQUFFLE1BQU0saUJBQVMsQ0FBQztvQkFDcEIsSUFBSTtvQkFDSixHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUc7b0JBQ1osSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO29CQUNkLElBQUksRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUk7b0JBQ2xCLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUk7b0JBQzNCLE1BQU0sRUFBRSxLQUFLO2lCQUNkLENBQUM7YUFDSCxDQUFDLENBQUMsQ0FDSjtZQUNELElBQUksRUFBRSxNQUFNLEtBQUssSUFBSSxXQUFXO1NBQ2pDO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsK0JBQStCO1lBQ3RDLElBQUksRUFBRSxNQUFNLElBQUksS0FBSyxDQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUNmLEtBQUssRUFBRSxZQUFZLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFO2dCQUNqQyxJQUFJLEVBQUUsTUFBTSxpQkFBUyxDQUFDO29CQUNwQixJQUFJO29CQUNKLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRztvQkFDWixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7b0JBQ2QsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSTtvQkFDbEIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSTtvQkFDM0IsTUFBTSxFQUFFLElBQUk7aUJBQ2IsQ0FBQzthQUNILENBQUMsQ0FBQyxDQUNKO1lBQ0QsSUFBSSxFQUFFLE1BQU0sS0FBSyxJQUFJLFdBQVc7U0FDakM7S0FFRixFQUFFLEVBQUMsUUFBUSxFQUFFLE9BQU8sR0FBRyxTQUFTLEdBQUcsU0FBUyxFQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUE1RUQsb0NBNEVDO0FBRUQsb0JBQTJCLEdBQUc7SUFDNUIsTUFBTSxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztJQUN2RSxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxVQUFVLENBQUM7SUFDeEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBQyxDQUFDO1NBQzVFLElBQUksQ0FBQyxLQUFLLElBQUksMkJBQVUsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFMRCxnQ0FLQyJ9 |
\ | No newline at end of file |