@plugjs/plug 0.0.12 → 0.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{types → dist}/assert.d.ts +0 -0
- package/dist/async.cjs +20 -19
- package/dist/async.cjs.map +1 -1
- package/dist/async.d.ts +20 -0
- package/dist/async.mjs +18 -17
- package/dist/async.mjs.map +1 -1
- package/dist/build.cjs +144 -110
- package/dist/build.cjs.map +2 -2
- package/dist/build.d.ts +12 -0
- package/dist/build.mjs +146 -112
- package/dist/build.mjs.map +2 -2
- package/dist/files.cjs +2 -16
- package/dist/files.cjs.map +1 -1
- package/{types → dist}/files.d.ts +3 -10
- package/dist/files.mjs +3 -17
- package/dist/files.mjs.map +1 -1
- package/dist/fork.cjs +28 -40
- package/dist/fork.cjs.map +1 -1
- package/dist/fork.d.ts +36 -0
- package/dist/fork.mjs +29 -40
- package/dist/fork.mjs.map +1 -1
- package/dist/helpers.cjs +61 -63
- package/dist/helpers.cjs.map +2 -2
- package/dist/helpers.d.ts +21 -0
- package/dist/helpers.mjs +61 -64
- package/dist/helpers.mjs.map +2 -2
- package/dist/index.cjs +3 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.mjs +3 -2
- package/dist/index.mjs.map +1 -1
- package/dist/log/colors.cjs +3 -1
- package/dist/log/colors.cjs.map +1 -1
- package/{types → dist}/log/colors.d.ts +2 -2
- package/dist/log/colors.mjs +3 -1
- package/dist/log/colors.mjs.map +1 -1
- package/{types → dist}/log/emit.d.ts +1 -1
- package/{types → dist}/log/levels.d.ts +0 -0
- package/dist/log/logger.cjs +4 -0
- package/dist/log/logger.cjs.map +1 -1
- package/{types → dist}/log/logger.d.ts +4 -1
- package/dist/log/logger.mjs +4 -0
- package/dist/log/logger.mjs.map +1 -1
- package/{types → dist}/log/options.d.ts +1 -1
- package/dist/log/report.cjs +4 -13
- package/dist/log/report.cjs.map +1 -1
- package/{types → dist}/log/report.d.ts +36 -4
- package/dist/log/report.mjs +3 -12
- package/dist/log/report.mjs.map +1 -1
- package/{types → dist}/log/spinner.d.ts +0 -0
- package/dist/log.cjs +1 -1
- package/dist/log.cjs.map +1 -1
- package/{types → dist}/log.d.ts +6 -6
- package/dist/log.mjs +2 -2
- package/dist/log.mjs.map +1 -1
- package/{types → dist}/paths.d.ts +0 -0
- package/dist/pipe.cjs +41 -34
- package/dist/pipe.cjs.map +1 -1
- package/dist/pipe.d.ts +182 -0
- package/dist/pipe.mjs +38 -32
- package/dist/pipe.mjs.map +1 -1
- package/dist/plugs/copy.cjs +15 -25
- package/dist/plugs/copy.cjs.map +2 -2
- package/dist/plugs/copy.d.ts +28 -0
- package/dist/plugs/copy.mjs +15 -17
- package/dist/plugs/copy.mjs.map +2 -2
- package/{types → dist}/plugs/coverage/analysis.d.ts +2 -2
- package/dist/plugs/coverage/report.cjs +4 -2
- package/dist/plugs/coverage/report.cjs.map +1 -1
- package/{types → dist}/plugs/coverage/report.d.ts +3 -3
- package/dist/plugs/coverage/report.mjs +4 -2
- package/dist/plugs/coverage/report.mjs.map +1 -1
- package/dist/plugs/coverage.cjs +23 -27
- package/dist/plugs/coverage.cjs.map +1 -1
- package/dist/plugs/coverage.d.ts +49 -0
- package/dist/plugs/coverage.mjs +24 -20
- package/dist/plugs/coverage.mjs.map +1 -1
- package/dist/plugs/debug.cjs +8 -37
- package/dist/plugs/debug.cjs.map +1 -1
- package/dist/plugs/debug.d.ts +7 -0
- package/dist/plugs/debug.mjs +24 -20
- package/dist/plugs/debug.mjs.map +1 -1
- package/{types → dist}/plugs/esbuild/bundle-locals.d.ts +0 -0
- package/{types → dist}/plugs/esbuild/fix-extensions.d.ts +0 -0
- package/dist/plugs/esbuild/fix-extensions.mjs +1 -1
- package/dist/plugs/esbuild/fix-extensions.mjs.map +1 -1
- package/dist/plugs/esbuild.cjs +14 -25
- package/dist/plugs/esbuild.cjs.map +1 -1
- package/dist/plugs/esbuild.d.ts +18 -0
- package/dist/plugs/esbuild.mjs +14 -17
- package/dist/plugs/esbuild.mjs.map +1 -1
- package/dist/plugs/eslint/runner.cjs +5 -6
- package/dist/plugs/eslint/runner.cjs.map +1 -1
- package/dist/plugs/eslint/runner.d.ts +8 -0
- package/dist/plugs/eslint/runner.mjs +6 -7
- package/dist/plugs/eslint/runner.mjs.map +1 -1
- package/dist/{task.cjs → plugs/eslint.cjs} +7 -24
- package/dist/plugs/eslint.cjs.map +6 -0
- package/dist/plugs/eslint.d.ts +34 -0
- package/dist/plugs/eslint.mjs +5 -0
- package/dist/plugs/eslint.mjs.map +6 -0
- package/dist/plugs/exec.cjs +20 -24
- package/dist/plugs/exec.cjs.map +1 -1
- package/dist/plugs/exec.d.ts +90 -0
- package/dist/plugs/exec.mjs +20 -23
- package/dist/plugs/exec.mjs.map +1 -1
- package/dist/plugs/filter.cjs +9 -19
- package/dist/plugs/filter.cjs.map +1 -1
- package/dist/plugs/filter.d.ts +29 -0
- package/dist/plugs/filter.mjs +10 -12
- package/dist/plugs/filter.mjs.map +1 -1
- package/dist/plugs/mocha/reporter.cjs +19 -6
- package/dist/plugs/mocha/reporter.cjs.map +1 -1
- package/{types → dist}/plugs/mocha/reporter.d.ts +0 -2
- package/dist/plugs/mocha/reporter.mjs +18 -4
- package/dist/plugs/mocha/reporter.mjs.map +1 -1
- package/dist/plugs/mocha/runner.cjs +4 -5
- package/dist/plugs/mocha/runner.cjs.map +1 -1
- package/dist/plugs/mocha/runner.d.ts +8 -0
- package/dist/plugs/mocha/runner.mjs +5 -6
- package/dist/plugs/mocha/runner.mjs.map +1 -1
- package/dist/plugs/mocha.cjs +22 -0
- package/dist/plugs/mocha.cjs.map +6 -0
- package/{types/plugs/mocha/runner.d.ts → dist/plugs/mocha.d.ts} +9 -8
- package/dist/plugs/mocha.mjs +5 -0
- package/dist/plugs/mocha.mjs.map +6 -0
- package/dist/plugs/rmf.cjs +4 -32
- package/dist/plugs/rmf.cjs.map +1 -1
- package/dist/plugs/rmf.d.ts +11 -0
- package/dist/plugs/rmf.mjs +25 -20
- package/dist/plugs/rmf.mjs.map +1 -1
- package/{types → dist}/plugs/tsc/compiler.d.ts +1 -1
- package/{types → dist}/plugs/tsc/options.d.ts +1 -1
- package/{types → dist}/plugs/tsc/report.d.ts +2 -2
- package/dist/plugs/tsc/runner.cjs +12 -11
- package/dist/plugs/tsc/runner.cjs.map +1 -1
- package/dist/plugs/tsc/runner.d.ts +8 -0
- package/dist/plugs/tsc/runner.mjs +12 -11
- package/dist/plugs/tsc/runner.mjs.map +1 -1
- package/dist/plugs/tsc.cjs +7 -0
- package/dist/plugs/tsc.cjs.map +6 -0
- package/dist/plugs/tsc.d.ts +36 -0
- package/dist/plugs/tsc.mjs +15 -0
- package/dist/plugs/tsc.mjs.map +6 -0
- package/dist/plugs.cjs +3 -5
- package/dist/plugs.cjs.map +1 -1
- package/dist/plugs.d.ts +10 -0
- package/dist/plugs.mjs +3 -5
- package/dist/plugs.mjs.map +1 -1
- package/dist/types.cjs +19 -0
- package/dist/types.cjs.map +6 -0
- package/dist/types.d.ts +72 -0
- package/dist/types.mjs +1 -0
- package/dist/types.mjs.map +6 -0
- package/{types → dist}/utils/asyncfs.d.ts +0 -0
- package/dist/utils/caller.cjs +8 -11
- package/dist/utils/caller.cjs.map +2 -2
- package/dist/utils/caller.d.ts +2 -0
- package/dist/utils/caller.mjs +8 -11
- package/dist/utils/caller.mjs.map +2 -2
- package/{types → dist}/utils/match.d.ts +0 -0
- package/dist/utils/options.cjs +4 -6
- package/dist/utils/options.cjs.map +1 -1
- package/dist/utils/options.d.ts +16 -0
- package/dist/utils/options.mjs +4 -6
- package/dist/utils/options.mjs.map +1 -1
- package/{types → dist}/utils/walk.d.ts +2 -2
- package/extra/cli.mjs +31 -20
- package/extra/ts-loader.mjs +6 -5
- package/package.json +10 -10
- package/src/async.ts +27 -19
- package/src/files.ts +6 -30
- package/src/fork.ts +35 -76
- package/src/helpers.ts +89 -101
- package/src/index.ts +10 -15
- package/src/log/colors.ts +4 -3
- package/src/log/emit.ts +4 -4
- package/src/log/logger.ts +12 -4
- package/src/log/options.ts +1 -1
- package/src/log/report.ts +10 -24
- package/src/log/spinner.ts +3 -3
- package/src/log.ts +9 -9
- package/src/paths.ts +1 -1
- package/src/pipe.ts +191 -178
- package/src/plugs/copy.ts +40 -31
- package/src/plugs/coverage/analysis.ts +4 -4
- package/src/plugs/coverage/report.ts +9 -6
- package/src/plugs/coverage.ts +68 -55
- package/src/plugs/debug.ts +22 -27
- package/src/plugs/esbuild/fix-extensions.ts +2 -2
- package/src/plugs/esbuild.ts +42 -46
- package/src/plugs/eslint/runner.ts +16 -31
- package/src/plugs/eslint.ts +42 -0
- package/src/plugs/exec.ts +93 -82
- package/src/plugs/filter.ts +42 -27
- package/src/plugs/mocha/reporter.ts +19 -5
- package/src/plugs/mocha/runner.ts +12 -38
- package/src/plugs/mocha.ts +41 -0
- package/src/plugs/rmf.ts +21 -25
- package/src/plugs/tsc/compiler.ts +1 -1
- package/src/plugs/tsc/options.ts +2 -2
- package/src/plugs/tsc/report.ts +2 -2
- package/src/plugs/tsc/runner.ts +24 -30
- package/src/plugs/tsc.ts +45 -0
- package/src/plugs.ts +10 -25
- package/src/types.ts +123 -0
- package/src/utils/caller.ts +11 -22
- package/src/utils/options.ts +49 -17
- package/src/utils/walk.ts +4 -4
- package/dist/run.cjs +0 -90
- package/dist/run.cjs.map +0 -6
- package/dist/run.mjs +0 -65
- package/dist/run.mjs.map +0 -6
- package/dist/task.cjs.map +0 -6
- package/dist/task.mjs +0 -14
- package/dist/task.mjs.map +0 -6
- package/src/run.ts +0 -159
- package/src/task.ts +0 -26
- package/types/async.d.ts +0 -20
- package/types/build.d.ts +0 -56
- package/types/fork.d.ts +0 -57
- package/types/helpers.d.ts +0 -43
- package/types/index.d.ts +0 -14
- package/types/pipe.d.ts +0 -152
- package/types/plugs/copy.d.ts +0 -27
- package/types/plugs/coverage.d.ts +0 -46
- package/types/plugs/debug.d.ts +0 -14
- package/types/plugs/esbuild.d.ts +0 -23
- package/types/plugs/eslint/runner.d.ts +0 -22
- package/types/plugs/exec.d.ts +0 -90
- package/types/plugs/filter.d.ts +0 -23
- package/types/plugs/rmf.d.ts +0 -15
- package/types/plugs/tsc/runner.d.ts +0 -13
- package/types/plugs.d.ts +0 -17
- package/types/run.d.ts +0 -89
- package/types/task.d.ts +0 -15
- package/types/utils/caller.d.ts +0 -7
- package/types/utils/options.d.ts +0 -15
package/dist/build.mjs
CHANGED
|
@@ -1,130 +1,164 @@
|
|
|
1
1
|
// build.ts
|
|
2
|
-
import { assert, fail, failure } from "./assert.mjs";
|
|
2
|
+
import { assert, fail, failure, isBuildFailure } from "./assert.mjs";
|
|
3
3
|
import { runAsync } from "./async.mjs";
|
|
4
|
-
import { $
|
|
5
|
-
import {
|
|
6
|
-
import { PipeImpl } from "./pipe.mjs";
|
|
7
|
-
import { RunImpl } from "./run.mjs";
|
|
8
|
-
import { TaskImpl } from "./task.mjs";
|
|
4
|
+
import { $ms, $t, getLogger, logOptions } from "./log.mjs";
|
|
5
|
+
import { Context, Pipe } from "./pipe.mjs";
|
|
9
6
|
import { findCaller } from "./utils/caller.mjs";
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const context = { buildFile, buildDir, tasks };
|
|
19
|
-
const result = {};
|
|
20
|
-
for (const name in definition) {
|
|
21
|
-
const def = definition[name];
|
|
22
|
-
const task = "task" in def ? def.task : new TaskImpl(context, def);
|
|
23
|
-
const call = async (run) => {
|
|
24
|
-
if (!run)
|
|
25
|
-
run = run = new BuildRun(buildDir, buildFile, tasks);
|
|
26
|
-
assert(run instanceof BuildRun, "Incompatible Run specified");
|
|
27
|
-
run.log.notice("Starting build...");
|
|
28
|
-
const now = Date.now();
|
|
29
|
-
let error = void 0;
|
|
30
|
-
try {
|
|
31
|
-
await run.call(name);
|
|
32
|
-
} catch (err) {
|
|
33
|
-
run.log.error(err);
|
|
34
|
-
error = err;
|
|
35
|
-
}
|
|
36
|
-
try {
|
|
37
|
-
await run.finish();
|
|
38
|
-
if (error !== void 0)
|
|
39
|
-
throw error;
|
|
40
|
-
run.log.notice("Build completed", $ms(Date.now() - now));
|
|
41
|
-
return run;
|
|
42
|
-
} catch (error2) {
|
|
43
|
-
run.log.error(`Build failed ${$ms(Date.now() - now)}`, error2);
|
|
44
|
-
throw failure();
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
Object.defineProperty(call, "name", { enumerable: true, value: name });
|
|
48
|
-
if (name.length > logOptions.taskLength) {
|
|
49
|
-
logOptions.taskLength = name.length;
|
|
50
|
-
}
|
|
51
|
-
result[name] = Object.assign(call, { task });
|
|
52
|
-
tasks[name] = task;
|
|
7
|
+
import { parseOptions } from "./utils/options.mjs";
|
|
8
|
+
var PipeImpl = class extends Pipe {
|
|
9
|
+
constructor(_promise, _promises, _context) {
|
|
10
|
+
super();
|
|
11
|
+
this._promise = _promise;
|
|
12
|
+
this._promises = _promises;
|
|
13
|
+
this._context = _context;
|
|
14
|
+
_promises.add(_promise);
|
|
53
15
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
var BuildRun = class extends RunImpl {
|
|
58
|
-
constructor(buildDir, buildFile, _tasks, _stack = [], _cache = /* @__PURE__ */ new Map(), taskName = "") {
|
|
59
|
-
super({ taskName, buildDir, buildFile });
|
|
60
|
-
this._tasks = _tasks;
|
|
61
|
-
this._stack = _stack;
|
|
62
|
-
this._cache = _cache;
|
|
16
|
+
[Symbol.toStringTag] = "PipeImpl";
|
|
17
|
+
then(onfulfilled, onrejected) {
|
|
18
|
+
return this._promise.then(onfulfilled, onrejected);
|
|
63
19
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
20
|
+
catch(onrejected) {
|
|
21
|
+
return this._promise.catch(onrejected);
|
|
22
|
+
}
|
|
23
|
+
finally(onfinally) {
|
|
24
|
+
return this._promise.finally(onfinally);
|
|
25
|
+
}
|
|
26
|
+
plug(arg) {
|
|
27
|
+
const plug = typeof arg === "function" ? { pipe: arg } : arg;
|
|
28
|
+
const promise = this._promise.then(async (files) => {
|
|
29
|
+
assert(files, "Unable to extend Pipe");
|
|
30
|
+
const result = await plug.pipe(files, this._context);
|
|
31
|
+
assert(result, "Plug did not return a Files instance");
|
|
32
|
+
return result;
|
|
33
|
+
});
|
|
34
|
+
return new PipeImpl(promise, this._promises, this._context);
|
|
35
|
+
}
|
|
36
|
+
async run() {
|
|
37
|
+
return this._promise.then((whaps) => {
|
|
38
|
+
assert(whaps, "Unable to run Pipe");
|
|
39
|
+
return whaps;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
var TaskImpl = class {
|
|
44
|
+
constructor(buildFile, tasks, props, _def) {
|
|
45
|
+
this.buildFile = buildFile;
|
|
46
|
+
this.tasks = tasks;
|
|
47
|
+
this.props = props;
|
|
48
|
+
this._def = _def;
|
|
86
49
|
}
|
|
87
|
-
call(
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
fail(`Task "${$t(name)}" does not exist`);
|
|
91
|
-
assert(!this._stack.includes(task), `Circular dependency running task "${$t(name)}"`);
|
|
92
|
-
const cached = this._cache.get(task);
|
|
50
|
+
call(state, taskName) {
|
|
51
|
+
assert(!state.stack.includes(this), `Recursion detected calling ${$t(taskName)}`);
|
|
52
|
+
const cached = state.cache.get(this);
|
|
93
53
|
if (cached)
|
|
94
|
-
return cached
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
54
|
+
return cached;
|
|
55
|
+
const props = Object.assign({}, this.props, state.props);
|
|
56
|
+
const tasks = Object.assign({}, this.tasks, state.tasks);
|
|
57
|
+
const stack = [...state.stack, this];
|
|
58
|
+
const cache = state.cache;
|
|
59
|
+
const promises = /* @__PURE__ */ new Set();
|
|
60
|
+
const context = new Context(this.buildFile, taskName);
|
|
61
|
+
const build2 = new Proxy({}, {
|
|
62
|
+
get(_, name) {
|
|
63
|
+
if (name in tasks) {
|
|
64
|
+
return () => {
|
|
65
|
+
const state2 = { stack, cache, tasks, props };
|
|
66
|
+
const promise2 = tasks[name].call(state2, name);
|
|
67
|
+
return new PipeImpl(promise2, promises, context);
|
|
68
|
+
};
|
|
69
|
+
} else if (name in props) {
|
|
70
|
+
return props[name];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
context.log.info("Running...");
|
|
75
|
+
const now = Date.now();
|
|
76
|
+
const promise = runAsync(context, taskName, async () => {
|
|
77
|
+
try {
|
|
78
|
+
let result = await this._def.call(build2);
|
|
79
|
+
if (result && "run" in result)
|
|
80
|
+
result = await result.run();
|
|
81
|
+
return result || void 0;
|
|
82
|
+
} finally {
|
|
83
|
+
const settlements = await Promise.allSettled([...promises]);
|
|
84
|
+
const errors = /* @__PURE__ */ new Set();
|
|
85
|
+
for (const settlement of settlements) {
|
|
86
|
+
if (settlement.status === "fulfilled")
|
|
87
|
+
continue;
|
|
88
|
+
if (!isBuildFailure(settlement.reason)) {
|
|
89
|
+
errors.add(settlement.reason);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
for (const error of errors)
|
|
93
|
+
context.log.error(error);
|
|
94
|
+
}
|
|
95
|
+
}).then((result) => {
|
|
96
|
+
context.log.notice(`Success ${$ms(Date.now() - now)}`);
|
|
97
|
+
return result;
|
|
98
|
+
}).catch((error) => {
|
|
99
|
+
context.log.error(`Failure ${$ms(Date.now() - now)}`, error);
|
|
100
|
+
throw failure();
|
|
101
|
+
});
|
|
102
|
+
cache.set(this, promise);
|
|
105
103
|
return promise;
|
|
106
104
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
105
|
+
};
|
|
106
|
+
var buildMarker = Symbol.for("plugjs:isBuild");
|
|
107
|
+
function build(def) {
|
|
108
|
+
const buildFile = findCaller(build);
|
|
109
|
+
const tasks = {};
|
|
110
|
+
const props = {};
|
|
111
|
+
for (const [key, val] of Object.entries(def)) {
|
|
112
|
+
let len = 0;
|
|
113
|
+
if (typeof val === "string") {
|
|
114
|
+
props[key] = val;
|
|
115
|
+
} else if (typeof val === "function") {
|
|
116
|
+
tasks[key] = new TaskImpl(buildFile, tasks, props, val);
|
|
117
|
+
len = key.length;
|
|
118
|
+
} else if (val instanceof TaskImpl) {
|
|
119
|
+
tasks[key] = val;
|
|
120
|
+
len = key.length;
|
|
115
121
|
}
|
|
122
|
+
if (len > logOptions.taskLength)
|
|
123
|
+
logOptions.taskLength = len;
|
|
124
|
+
}
|
|
125
|
+
const call2 = async function call3(taskNames, overrideProps = {}) {
|
|
126
|
+
const logger = getLogger("");
|
|
127
|
+
const state = {
|
|
128
|
+
cache: /* @__PURE__ */ new Map(),
|
|
129
|
+
stack: [],
|
|
130
|
+
props: Object.assign({}, props, overrideProps),
|
|
131
|
+
tasks
|
|
132
|
+
};
|
|
133
|
+
logger.notice("Starting...");
|
|
134
|
+
const now = Date.now();
|
|
116
135
|
try {
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
|
|
136
|
+
for (const taskName of taskNames) {
|
|
137
|
+
if (taskName in tasks) {
|
|
138
|
+
await tasks[taskName].call(state, taskName);
|
|
139
|
+
} else {
|
|
140
|
+
fail(`Task ${$t(taskName)} not found in build`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
logger.notice(`Build successful ${$ms(Date.now() - now)}`);
|
|
120
144
|
} catch (error) {
|
|
121
|
-
|
|
145
|
+
logger.error(`Build failed ${$ms(Date.now() - now)}`, error);
|
|
122
146
|
throw failure();
|
|
123
147
|
}
|
|
124
|
-
}
|
|
125
|
-
};
|
|
148
|
+
};
|
|
149
|
+
const compiled = Object.assign({}, props, tasks);
|
|
150
|
+
Object.defineProperty(compiled, buildMarker, { value: call2 });
|
|
151
|
+
return compiled;
|
|
152
|
+
}
|
|
153
|
+
function call(build2, ...args) {
|
|
154
|
+
const { params: tasks, options: props } = parseOptions(args, {});
|
|
155
|
+
const call2 = build2[buildMarker];
|
|
156
|
+
if (typeof call2 !== "function")
|
|
157
|
+
fail("Unknown build type");
|
|
158
|
+
return call2(tasks, props);
|
|
159
|
+
}
|
|
126
160
|
export {
|
|
127
161
|
build,
|
|
128
|
-
|
|
162
|
+
call
|
|
129
163
|
};
|
|
130
164
|
//# sourceMappingURL=build.mjs.map
|
package/dist/build.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/build.ts"],
|
|
4
|
-
"mappings": ";
|
|
5
|
-
"names": ["build", "
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["build", "state", "promise", "call"]
|
|
6
6
|
}
|
package/dist/files.cjs
CHANGED
|
@@ -23,7 +23,6 @@ __export(files_exports, {
|
|
|
23
23
|
Files: () => Files
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(files_exports);
|
|
26
|
-
var import_assert = require("./assert.cjs");
|
|
27
26
|
var import_paths = require("./paths.cjs");
|
|
28
27
|
var import_asyncfs = require("./utils/asyncfs.cjs");
|
|
29
28
|
var Files = class {
|
|
@@ -64,19 +63,6 @@ var Files = class {
|
|
|
64
63
|
return {
|
|
65
64
|
directory: instance.directory,
|
|
66
65
|
add(...files) {
|
|
67
|
-
if (built)
|
|
68
|
-
throw new Error('FileBuilder "build()" already called');
|
|
69
|
-
if (typeof files === "string")
|
|
70
|
-
files = [files];
|
|
71
|
-
for (const file of files) {
|
|
72
|
-
const relative = (0, import_paths.assertRelativeChildPath)(instance.directory, file);
|
|
73
|
-
const resolved = (0, import_paths.resolveAbsolutePath)(instance.directory, file);
|
|
74
|
-
(0, import_assert.assert)((0, import_paths.resolveFile)(resolved), `File "${resolved}" does not exist`);
|
|
75
|
-
set.add(relative);
|
|
76
|
-
}
|
|
77
|
-
return this;
|
|
78
|
-
},
|
|
79
|
-
unchecked(...files) {
|
|
80
66
|
if (built)
|
|
81
67
|
throw new Error('FileBuilder "build()" already called');
|
|
82
68
|
if (typeof files === "string")
|
|
@@ -92,7 +78,7 @@ var Files = class {
|
|
|
92
78
|
throw new Error('FileBuilder "build()" already called');
|
|
93
79
|
for (const files of args) {
|
|
94
80
|
for (const file of files.absolutePaths()) {
|
|
95
|
-
this.
|
|
81
|
+
this.add(file);
|
|
96
82
|
}
|
|
97
83
|
}
|
|
98
84
|
return this;
|
|
@@ -103,7 +89,7 @@ var Files = class {
|
|
|
103
89
|
const directory2 = (0, import_paths.getAbsoluteParent)(absolute);
|
|
104
90
|
await (0, import_asyncfs.mkdir)(directory2, { recursive: true });
|
|
105
91
|
await (0, import_asyncfs.writeFile)(absolute, content);
|
|
106
|
-
this.
|
|
92
|
+
this.add(absolute);
|
|
107
93
|
return absolute;
|
|
108
94
|
},
|
|
109
95
|
build() {
|
package/dist/files.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/files.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA8F;AAC9F,qBAAiC;AA4B1B,IAAM,QAAN,MAAY;AAAA,EACR;AAAA,EACA;AAAA,EAMT,YAAY,WAAyB;AACnC,SAAK,aAAa;AAClB,SAAK,SAAS,CAAC;AAGf,UAAM,UAAU,OAAO,IAAI,4BAA4B;AACvD,WAAO,eAAe,MAAM,SAAS,EAAE,OAAO,OAAO;AAAA,MACnD,WAAW,KAAK;AAAA,MAChB,OAAO,CAAE,GAAG,KAAK,MAAO;AAAA,IAC1B,GAAG,CAAC;AAAA,EACN;AAAA,EAGA,IAAI,YAA0B;AAC5B,WAAO,KAAK;AAAA,EACd;AAAA,EAGA,IAAI,SAAiB;AACnB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAGA,EAAG,OAAO,YAA+B;AACvC,eAAW,QAAQ,KAAK;AAAQ,YAAM;AAAA,EACxC;AAAA,EAGA,CAAE,gBAAyC;AACzC,eAAW,QAAQ;AAAM,gBAAM,kCAAoB,KAAK,YAAY,IAAI;AAAA,EAC1E;AAAA,EAGA,CAAE,eAAwE;AACxE,eAAW,QAAQ;AAAM,YAAM,CAAE,UAAM,kCAAoB,KAAK,YAAY,IAAI,CAAE;AAAA,EACpF;AAAA,EAKA,OAAO,QAAQ,KAAyC;AACtD,UAAM,YAAY,OAAO,QAAQ,WAAW,MAAM,IAAI;AACtD,UAAM,MAAM,OAAO,QAAQ,WAAW,oBAAI,IAAY,IAAI,IAAI,IAAI,IAAI,MAAM;AAE5E,UAAM,WAAW,IAAI,MAAM,SAAS;AACpC,QAAI,QAAQ;AAEZ,WAAO;AAAA,MACL,WAAW,SAAS;AAAA,MAEpB,OAAO,OAA+B;AACpC,YAAI;AAAO,gBAAM,IAAI,MAAM,sCAAsC;AAEjE,YAAI,OAAO,UAAU;AAAU,kBAAQ,CAAE,KAAM;AAC/C,mBAAW,QAAQ,OAAO;AACxB,gBAAM,eAAW,sCAAwB,SAAS,WAAW,IAAI;AACjE,cAAI,IAAI,QAAQ;AAAA,QAClB;AAEA,eAAO;AAAA,MACT;AAAA,MAEA,SAAS,MAA6B;AACpC,YAAI;AAAO,gBAAM,IAAI,MAAM,sCAAsC;AAEjE,mBAAW,SAAS,MAAM;AACxB,qBAAW,QAAQ,MAAM,cAAc,GAAG;AACxC,iBAAK,IAAI,IAAI;AAAA,UACf;AAAA,QACF;AAEA,eAAO;AAAA,MACT;AAAA,MAEA,MAAM,MAAM,MAAc,SAAqD;AAC7E,cAAM,eAAW,sCAAwB,SAAS,WAAW,IAAI;AACjE,cAAM,eAAW,kCAAoB,SAAS,WAAW,QAAQ;AACjE,cAAMA,iBAAY,gCAAkB,QAAQ;AAE5C,kBAAM,sBAAMA,YAAW,EAAE,WAAW,KAAK,CAAC;AAC1C,kBAAM,0BAAU,UAAU,OAAO;AACjC,aAAK,IAAI,QAAQ;AAEjB,eAAO;AAAA,MACT;AAAA,MAEA,QAAe;AACb,YAAI;AAAO,gBAAM,IAAI,MAAM,sCAAsC;AAEjE,gBAAQ;AACR,iBAAS,OAAO,KAAK,GAAG,GAAG;AAC3B,iBAAS,OAAO,KAAK;AACrB,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;",
|
|
5
5
|
"names": ["directory"]
|
|
6
6
|
}
|
|
@@ -1,21 +1,14 @@
|
|
|
1
|
-
import { AbsolutePath } from './paths
|
|
1
|
+
import { AbsolutePath } from './paths';
|
|
2
2
|
/** The {@link FilesBuilder} interface defines a builder for {@link Files}. */
|
|
3
3
|
export interface FilesBuilder {
|
|
4
4
|
/** The (resolved) directory the {@link Files} will be associated with */
|
|
5
5
|
readonly directory: AbsolutePath;
|
|
6
6
|
/**
|
|
7
|
-
* Push files into the {@link Files} instance being built
|
|
8
|
-
* their existance on disk**.
|
|
7
|
+
* Push files into the {@link Files} instance being built.
|
|
9
8
|
*
|
|
10
|
-
* This
|
|
11
|
-
* sure the file already exist.
|
|
9
|
+
* This method will not check that files actually exist on disk.
|
|
12
10
|
*/
|
|
13
11
|
add(...files: string[]): this;
|
|
14
|
-
/**
|
|
15
|
-
* Push files into the {@link Files} instance being built without checking
|
|
16
|
-
* they exist on disk _(use with care!)_.
|
|
17
|
-
*/
|
|
18
|
-
unchecked(...files: string[]): this;
|
|
19
12
|
/** Merge orther {@link Files} instance to the {@link Files} being built */
|
|
20
13
|
merge(...files: Files[]): this;
|
|
21
14
|
/** Write a file and add it to the {@link Files} instance being built */
|
package/dist/files.mjs
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// files.ts
|
|
2
|
-
import {
|
|
3
|
-
import { assertRelativeChildPath, getAbsoluteParent, resolveFile, resolveAbsolutePath } from "./paths.mjs";
|
|
2
|
+
import { assertRelativeChildPath, getAbsoluteParent, resolveAbsolutePath } from "./paths.mjs";
|
|
4
3
|
import { mkdir, writeFile } from "./utils/asyncfs.mjs";
|
|
5
4
|
var Files = class {
|
|
6
5
|
_directory;
|
|
@@ -40,19 +39,6 @@ var Files = class {
|
|
|
40
39
|
return {
|
|
41
40
|
directory: instance.directory,
|
|
42
41
|
add(...files) {
|
|
43
|
-
if (built)
|
|
44
|
-
throw new Error('FileBuilder "build()" already called');
|
|
45
|
-
if (typeof files === "string")
|
|
46
|
-
files = [files];
|
|
47
|
-
for (const file of files) {
|
|
48
|
-
const relative = assertRelativeChildPath(instance.directory, file);
|
|
49
|
-
const resolved = resolveAbsolutePath(instance.directory, file);
|
|
50
|
-
assert(resolveFile(resolved), `File "${resolved}" does not exist`);
|
|
51
|
-
set.add(relative);
|
|
52
|
-
}
|
|
53
|
-
return this;
|
|
54
|
-
},
|
|
55
|
-
unchecked(...files) {
|
|
56
42
|
if (built)
|
|
57
43
|
throw new Error('FileBuilder "build()" already called');
|
|
58
44
|
if (typeof files === "string")
|
|
@@ -68,7 +54,7 @@ var Files = class {
|
|
|
68
54
|
throw new Error('FileBuilder "build()" already called');
|
|
69
55
|
for (const files of args) {
|
|
70
56
|
for (const file of files.absolutePaths()) {
|
|
71
|
-
this.
|
|
57
|
+
this.add(file);
|
|
72
58
|
}
|
|
73
59
|
}
|
|
74
60
|
return this;
|
|
@@ -79,7 +65,7 @@ var Files = class {
|
|
|
79
65
|
const directory2 = getAbsoluteParent(absolute);
|
|
80
66
|
await mkdir(directory2, { recursive: true });
|
|
81
67
|
await writeFile(absolute, content);
|
|
82
|
-
this.
|
|
68
|
+
this.add(absolute);
|
|
83
69
|
return absolute;
|
|
84
70
|
},
|
|
85
71
|
build() {
|
package/dist/files.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/files.ts"],
|
|
4
|
-
"mappings": ";AAAA,
|
|
4
|
+
"mappings": ";AAAA,SAAuB,yBAAyB,mBAAmB,2BAA2B;AAC9F,SAAS,OAAO,iBAAiB;AA4B1B,IAAM,QAAN,MAAY;AAAA,EACR;AAAA,EACA;AAAA,EAMT,YAAY,WAAyB;AACnC,SAAK,aAAa;AAClB,SAAK,SAAS,CAAC;AAGf,UAAM,UAAU,OAAO,IAAI,4BAA4B;AACvD,WAAO,eAAe,MAAM,SAAS,EAAE,OAAO,OAAO;AAAA,MACnD,WAAW,KAAK;AAAA,MAChB,OAAO,CAAE,GAAG,KAAK,MAAO;AAAA,IAC1B,GAAG,CAAC;AAAA,EACN;AAAA,EAGA,IAAI,YAA0B;AAC5B,WAAO,KAAK;AAAA,EACd;AAAA,EAGA,IAAI,SAAiB;AACnB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAGA,EAAG,OAAO,YAA+B;AACvC,eAAW,QAAQ,KAAK;AAAQ,YAAM;AAAA,EACxC;AAAA,EAGA,CAAE,gBAAyC;AACzC,eAAW,QAAQ;AAAM,YAAM,oBAAoB,KAAK,YAAY,IAAI;AAAA,EAC1E;AAAA,EAGA,CAAE,eAAwE;AACxE,eAAW,QAAQ;AAAM,YAAM,CAAE,MAAM,oBAAoB,KAAK,YAAY,IAAI,CAAE;AAAA,EACpF;AAAA,EAKA,OAAO,QAAQ,KAAyC;AACtD,UAAM,YAAY,OAAO,QAAQ,WAAW,MAAM,IAAI;AACtD,UAAM,MAAM,OAAO,QAAQ,WAAW,oBAAI,IAAY,IAAI,IAAI,IAAI,IAAI,MAAM;AAE5E,UAAM,WAAW,IAAI,MAAM,SAAS;AACpC,QAAI,QAAQ;AAEZ,WAAO;AAAA,MACL,WAAW,SAAS;AAAA,MAEpB,OAAO,OAA+B;AACpC,YAAI;AAAO,gBAAM,IAAI,MAAM,sCAAsC;AAEjE,YAAI,OAAO,UAAU;AAAU,kBAAQ,CAAE,KAAM;AAC/C,mBAAW,QAAQ,OAAO;AACxB,gBAAM,WAAW,wBAAwB,SAAS,WAAW,IAAI;AACjE,cAAI,IAAI,QAAQ;AAAA,QAClB;AAEA,eAAO;AAAA,MACT;AAAA,MAEA,SAAS,MAA6B;AACpC,YAAI;AAAO,gBAAM,IAAI,MAAM,sCAAsC;AAEjE,mBAAW,SAAS,MAAM;AACxB,qBAAW,QAAQ,MAAM,cAAc,GAAG;AACxC,iBAAK,IAAI,IAAI;AAAA,UACf;AAAA,QACF;AAEA,eAAO;AAAA,MACT;AAAA,MAEA,MAAM,MAAM,MAAc,SAAqD;AAC7E,cAAM,WAAW,wBAAwB,SAAS,WAAW,IAAI;AACjE,cAAM,WAAW,oBAAoB,SAAS,WAAW,QAAQ;AACjE,cAAMA,aAAY,kBAAkB,QAAQ;AAE5C,cAAM,MAAMA,YAAW,EAAE,WAAW,KAAK,CAAC;AAC1C,cAAM,UAAU,UAAU,OAAO;AACjC,aAAK,IAAI,QAAQ;AAEjB,eAAO;AAAA,MACT;AAAA,MAEA,QAAe;AACb,YAAI;AAAO,gBAAM,IAAI,MAAM,sCAAsC;AAEjE,gBAAQ;AACR,iBAAS,OAAO,KAAK,GAAG,GAAG;AAC3B,iBAAS,OAAO,KAAK;AACrB,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;",
|
|
5
5
|
"names": ["directory"]
|
|
6
6
|
}
|
package/dist/fork.cjs
CHANGED
|
@@ -20,51 +20,41 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// fork.ts
|
|
21
21
|
var fork_exports = {};
|
|
22
22
|
__export(fork_exports, {
|
|
23
|
-
ForkingPlug: () => ForkingPlug
|
|
24
|
-
installForking: () => installForking
|
|
23
|
+
ForkingPlug: () => ForkingPlug
|
|
25
24
|
});
|
|
26
25
|
module.exports = __toCommonJS(fork_exports);
|
|
27
26
|
var import_node_child_process = require("node:child_process");
|
|
28
27
|
var import_assert = require("./assert.cjs");
|
|
29
28
|
var import_async = require("./async.cjs");
|
|
29
|
+
var import_files = require("./files.cjs");
|
|
30
30
|
var import_log = require("./log.cjs");
|
|
31
31
|
var import_paths = require("./paths.cjs");
|
|
32
32
|
var import_pipe = require("./pipe.cjs");
|
|
33
|
-
var import_run = require("./run.cjs");
|
|
34
|
-
function installForking(plugName, scriptFile) {
|
|
35
|
-
const ctor = class extends ForkingPlug {
|
|
36
|
-
constructor(...args) {
|
|
37
|
-
super(scriptFile, args);
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
(0, import_pipe.install)(plugName, ctor);
|
|
41
|
-
}
|
|
42
33
|
var ForkingPlug = class {
|
|
43
34
|
constructor(_scriptFile, _arguments) {
|
|
44
35
|
this._scriptFile = _scriptFile;
|
|
45
36
|
this._arguments = _arguments;
|
|
46
37
|
}
|
|
47
|
-
pipe(files,
|
|
38
|
+
pipe(files, context) {
|
|
48
39
|
const message = {
|
|
49
40
|
scriptFile: this._scriptFile,
|
|
50
41
|
constructorArgs: this._arguments,
|
|
51
|
-
taskName:
|
|
52
|
-
buildFile:
|
|
53
|
-
buildDir: run.buildDir,
|
|
42
|
+
taskName: context.taskName,
|
|
43
|
+
buildFile: context.buildFile,
|
|
54
44
|
filesDir: files.directory,
|
|
55
45
|
filesList: [...files.absolutePaths()],
|
|
56
|
-
logOpts: import_log.logOptions.fork(
|
|
46
|
+
logOpts: import_log.logOptions.fork(context.taskName)
|
|
57
47
|
};
|
|
58
48
|
const script = (0, import_paths.requireFilename)(__filename);
|
|
59
|
-
|
|
49
|
+
context.log.debug("About to fork plug from", (0, import_log.$p)(script));
|
|
60
50
|
const env = { ...process.env };
|
|
61
51
|
for (let i = this._arguments.length - 1; i >= 0; i--) {
|
|
62
52
|
if (this._arguments[i] == null)
|
|
63
53
|
continue;
|
|
64
54
|
if (typeof this._arguments[i] === "object") {
|
|
65
55
|
if (typeof this._arguments[i].coverageDir === "string") {
|
|
66
|
-
const dir = env.NODE_V8_COVERAGE =
|
|
67
|
-
|
|
56
|
+
const dir = env.NODE_V8_COVERAGE = context.resolve(this._arguments[i].coverageDir);
|
|
57
|
+
context.log.debug("Forked process will produce coverage in", (0, import_log.$p)(dir));
|
|
68
58
|
}
|
|
69
59
|
}
|
|
70
60
|
}
|
|
@@ -72,46 +62,46 @@ var ForkingPlug = class {
|
|
|
72
62
|
stdio: ["ignore", "inherit", "inherit", "ipc"],
|
|
73
63
|
env
|
|
74
64
|
});
|
|
75
|
-
|
|
65
|
+
context.log.info("Running", (0, import_log.$p)(script), (0, import_log.$gry)(`(pid=${child.pid})`));
|
|
76
66
|
let done = false;
|
|
77
67
|
return new Promise((resolve, reject) => {
|
|
78
68
|
let result = void 0;
|
|
79
69
|
child.on("error", (error) => {
|
|
80
|
-
|
|
70
|
+
context.log.error("Child process error", error);
|
|
81
71
|
return done || reject((0, import_assert.failure)());
|
|
82
72
|
});
|
|
83
73
|
child.on("message", (message2) => {
|
|
84
|
-
|
|
74
|
+
context.log.debug("Message from child process", message2);
|
|
85
75
|
result = message2;
|
|
86
76
|
});
|
|
87
77
|
child.on("exit", (code, signal) => {
|
|
88
78
|
if (signal) {
|
|
89
|
-
|
|
79
|
+
context.log.error(`Child process exited with signal ${signal}`, (0, import_log.$gry)(`(pid=${child.pid})`));
|
|
90
80
|
return done || reject((0, import_assert.failure)());
|
|
91
81
|
} else if (code !== 0) {
|
|
92
|
-
|
|
82
|
+
context.log.error(`Child process exited with code ${code}`, (0, import_log.$gry)(`(pid=${child.pid})`));
|
|
93
83
|
return done || reject((0, import_assert.failure)());
|
|
94
84
|
} else if (!result) {
|
|
95
|
-
|
|
85
|
+
context.log.error("Child process exited with no result", (0, import_log.$gry)(`(pid=${child.pid})`));
|
|
96
86
|
return done || reject((0, import_assert.failure)());
|
|
97
87
|
} else if (result.failed) {
|
|
98
88
|
return done || reject((0, import_assert.failure)());
|
|
99
89
|
}
|
|
100
|
-
return done || resolve(message.filesDir && message.filesList ?
|
|
90
|
+
return done || resolve(message.filesDir && message.filesList ? import_files.Files.builder(message.filesDir).add(...message.filesList).build() : void 0);
|
|
101
91
|
});
|
|
102
92
|
try {
|
|
103
93
|
const result2 = child.send(message, (error) => {
|
|
104
94
|
if (error) {
|
|
105
|
-
|
|
95
|
+
context.log.error("Error sending message to child process (callback failure)", error);
|
|
106
96
|
reject((0, import_assert.failure)());
|
|
107
97
|
}
|
|
108
98
|
});
|
|
109
99
|
if (!result2) {
|
|
110
|
-
|
|
100
|
+
context.log.error("Error sending message to child process (send returned false)");
|
|
111
101
|
reject((0, import_assert.failure)());
|
|
112
102
|
}
|
|
113
103
|
} catch (error) {
|
|
114
|
-
|
|
104
|
+
context.log.error("Error sending message to child process (exception caught)", error);
|
|
115
105
|
reject((0, import_assert.failure)());
|
|
116
106
|
}
|
|
117
107
|
}).finally(() => done = true);
|
|
@@ -129,15 +119,14 @@ if (process.argv[1] === (0, import_paths.requireFilename)(__filename) && process
|
|
|
129
119
|
constructorArgs,
|
|
130
120
|
taskName,
|
|
131
121
|
buildFile,
|
|
132
|
-
buildDir,
|
|
133
122
|
filesDir,
|
|
134
123
|
filesList,
|
|
135
124
|
logOpts
|
|
136
125
|
} = message;
|
|
137
126
|
Object.assign(import_log.logOptions, logOpts);
|
|
138
|
-
const
|
|
139
|
-
|
|
140
|
-
const result = (0, import_async.runAsync)(
|
|
127
|
+
const context = new import_pipe.Context(buildFile, taskName);
|
|
128
|
+
context.log.debug("Message from parent process", message);
|
|
129
|
+
const result = (0, import_async.runAsync)(context, taskName, async () => {
|
|
141
130
|
(0, import_assert.assert)((0, import_paths.resolveFile)(scriptFile), `Script file ${(0, import_log.$p)(scriptFile)} not found`);
|
|
142
131
|
const script = await import(scriptFile);
|
|
143
132
|
let Ctor = script;
|
|
@@ -148,8 +137,8 @@ if (process.argv[1] === (0, import_paths.requireFilename)(__filename) && process
|
|
|
148
137
|
`Script ${(0, import_log.$p)(scriptFile)} does not export a default constructor`
|
|
149
138
|
);
|
|
150
139
|
const plug = new Ctor(...constructorArgs);
|
|
151
|
-
const files =
|
|
152
|
-
return plug.pipe(files,
|
|
140
|
+
const files = import_files.Files.builder(filesDir).add(...filesList).build();
|
|
141
|
+
return plug.pipe(files, context);
|
|
153
142
|
});
|
|
154
143
|
const promise = result.then((result2) => {
|
|
155
144
|
const message2 = result2 ? { failed: false, filesDir: result2.directory, filesList: [...result2.absolutePaths()] } : { failed: false };
|
|
@@ -157,23 +146,22 @@ if (process.argv[1] === (0, import_paths.requireFilename)(__filename) && process
|
|
|
157
146
|
process.send(message2, (err) => err ? reject(err) : resolve());
|
|
158
147
|
});
|
|
159
148
|
}, (error) => {
|
|
160
|
-
|
|
149
|
+
context.log.error(error);
|
|
161
150
|
return new Promise((resolve, reject) => {
|
|
162
151
|
process.send({ failed: true }, (err) => err ? reject(err) : resolve());
|
|
163
152
|
});
|
|
164
153
|
});
|
|
165
154
|
promise.then(() => {
|
|
166
|
-
|
|
155
|
+
context.log.debug("Forked plug exiting");
|
|
167
156
|
process.exit(0);
|
|
168
157
|
}, (error) => {
|
|
169
|
-
|
|
158
|
+
context.log.error("Error sending message back to parent process", error);
|
|
170
159
|
process.exit(1);
|
|
171
160
|
});
|
|
172
161
|
});
|
|
173
162
|
}
|
|
174
163
|
// Annotate the CommonJS export names for ESM import in node:
|
|
175
164
|
0 && (module.exports = {
|
|
176
|
-
ForkingPlug
|
|
177
|
-
installForking
|
|
165
|
+
ForkingPlug
|
|
178
166
|
});
|
|
179
167
|
//# sourceMappingURL=fork.cjs.map
|