UNPKG

6.89 kBJavaScriptView Raw
1// todo: add load from config file, TBD
2"use strict";
3const path = require("path");
4const Listr = require('listr');
5const cpy = require('cpy');
6const del = require('del');
7const npm_submodules_1 = require("npm-submodules");
8const tasks_1 = require("../tasks");
9function 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}
74exports.buildCommand = buildCommand;
75function 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}
81exports.buildTsRun = buildTsRun;
82//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZ20vY29tbWFuZHMvYnVpbGQuY29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1Q0FBdUM7O0FBRXZDLDZCQUE4QjtBQUM5QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDL0IsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzNCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUUzQixtREFBdUU7QUFDdkUsb0NBQTRDO0FBRTVDLHNCQUE2QixFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBQztJQUNyRix3QkFBd0I7SUFDeEIscUJBQXFCO0lBQ3JCLHNEQUFzRDtJQUN0RCxnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLE1BQU0sQ0FBQywrQkFBYyxDQUFDLE9BQU8sRUFBRSxFQUFDLEtBQUssRUFBQyxDQUFDO1NBQ3BDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUM7UUFDdEI7WUFDRSxLQUFLLEVBQUUsb0JBQW9CO1lBQzNCLElBQUksRUFBRSxNQUFNLElBQUksS0FBSyxDQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUNmLEtBQUssRUFBRSxZQUFZLEdBQUcsQ0FBQyxJQUFJLEVBQUU7Z0JBQzdCLElBQUksRUFBRSxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO2FBQzFCLENBQUMsQ0FBQyxDQUNKO1lBQ0QsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLO1NBQ25CO1FBQ0Q7WUFDRSxLQUFLLEVBQUUsMkJBQTJCO1lBQ2xDLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxD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
\No newline at end of file