@plugjs/plug 0.0.14 → 0.0.16
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/dist/async.cjs +20 -19
- package/dist/async.cjs.map +1 -1
- package/dist/async.d.ts +9 -9
- package/dist/async.mjs +18 -17
- package/dist/async.mjs.map +1 -1
- package/dist/build.cjs +113 -110
- package/dist/build.cjs.map +2 -2
- package/dist/build.d.ts +14 -56
- package/dist/build.mjs +114 -111
- package/dist/build.mjs.map +2 -2
- package/dist/files.cjs +2 -16
- package/dist/files.cjs.map +1 -1
- package/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 +6 -27
- package/dist/fork.mjs +29 -40
- package/dist/fork.mjs.map +1 -1
- package/dist/helpers.cjs +27 -61
- package/dist/helpers.cjs.map +2 -2
- package/dist/helpers.d.ts +29 -31
- package/dist/helpers.mjs +27 -62
- package/dist/helpers.mjs.map +2 -2
- package/dist/index.cjs +15 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +9 -13
- package/dist/index.mjs +7 -2
- package/dist/index.mjs.map +1 -1
- package/dist/log/colors.cjs +3 -1
- package/dist/log/colors.cjs.map +1 -1
- package/dist/log/colors.d.ts +2 -2
- package/dist/log/colors.mjs +3 -1
- package/dist/log/colors.mjs.map +1 -1
- package/dist/log/emit.d.ts +1 -1
- package/dist/log/logger.cjs +4 -0
- package/dist/log/logger.cjs.map +1 -1
- package/dist/log/logger.d.ts +4 -1
- package/dist/log/logger.mjs +4 -0
- package/dist/log/logger.mjs.map +1 -1
- package/dist/log/options.d.ts +1 -1
- package/dist/log/report.cjs +2 -11
- package/dist/log/report.cjs.map +1 -1
- package/dist/log/report.d.ts +36 -4
- package/dist/log/report.mjs +1 -10
- package/dist/log/report.mjs.map +1 -1
- package/dist/log.cjs +1 -1
- package/dist/log.cjs.map +1 -1
- package/dist/log.d.ts +6 -6
- package/dist/log.mjs +2 -2
- package/dist/log.mjs.map +1 -1
- package/dist/pipe.cjs +69 -26
- package/dist/pipe.cjs.map +1 -1
- package/dist/pipe.d.ts +178 -119
- package/dist/pipe.mjs +71 -24
- 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 +14 -13
- package/dist/plugs/copy.mjs +15 -17
- package/dist/plugs/copy.mjs.map +2 -2
- package/dist/plugs/coverage/analysis.d.ts +2 -2
- package/dist/plugs/coverage/report.cjs +1 -1
- package/dist/plugs/coverage/report.cjs.map +1 -1
- package/dist/plugs/coverage/report.d.ts +3 -3
- package/dist/plugs/coverage/report.mjs +1 -1
- package/dist/plugs/coverage/report.mjs.map +1 -1
- package/dist/plugs/coverage.cjs +20 -26
- package/dist/plugs/coverage.cjs.map +1 -1
- package/dist/plugs/coverage.d.ts +33 -30
- package/dist/plugs/coverage.mjs +21 -19
- package/dist/plugs/coverage.mjs.map +1 -1
- package/dist/plugs/debug.cjs +12 -36
- package/dist/plugs/debug.cjs.map +1 -1
- package/dist/plugs/debug.d.ts +4 -11
- package/dist/plugs/debug.mjs +30 -21
- package/dist/plugs/debug.mjs.map +1 -1
- 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 +11 -16
- 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 +6 -20
- 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 +53 -53
- 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 +21 -15
- package/dist/plugs/filter.mjs +10 -12
- package/dist/plugs/filter.mjs.map +1 -1
- package/dist/plugs/mocha/reporter.cjs +12 -6
- package/dist/plugs/mocha/reporter.cjs.map +1 -1
- package/dist/plugs/mocha/reporter.d.ts +0 -2
- package/dist/plugs/mocha/reporter.mjs +11 -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 +5 -31
- 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/dist/plugs/mocha.d.ts +35 -0
- 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 +8 -12
- package/dist/plugs/rmf.mjs +25 -20
- package/dist/plugs/rmf.mjs.map +1 -1
- package/dist/plugs/tsc/compiler.d.ts +1 -1
- package/dist/plugs/tsc/options.d.ts +1 -1
- package/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 +4 -9
- 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 -17
- 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 +71 -0
- package/dist/types.mjs +1 -0
- package/dist/types.mjs.map +6 -0
- package/dist/utils/caller.cjs +8 -11
- package/dist/utils/caller.cjs.map +2 -2
- package/dist/utils/caller.d.ts +2 -7
- package/dist/utils/caller.mjs +8 -11
- package/dist/utils/caller.mjs.map +2 -2
- package/dist/utils/options.cjs +4 -6
- package/dist/utils/options.cjs.map +1 -1
- package/dist/utils/options.d.ts +16 -15
- package/dist/utils/options.mjs +4 -6
- package/dist/utils/options.mjs.map +1 -1
- package/dist/utils/walk.d.ts +2 -2
- package/extra/cli.mjs +31 -20
- package/extra/ts-loader.mjs +6 -5
- package/package.json +8 -9
- package/src/async.ts +27 -19
- package/src/files.ts +6 -30
- package/src/fork.ts +35 -76
- package/src/helpers.ts +66 -99
- 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 +8 -22
- package/src/log/spinner.ts +3 -3
- package/src/log.ts +9 -9
- package/src/paths.ts +1 -1
- package/src/pipe.ts +255 -170
- package/src/plugs/copy.ts +40 -31
- package/src/plugs/coverage/analysis.ts +4 -4
- package/src/plugs/coverage/report.ts +6 -5
- package/src/plugs/coverage.ts +64 -53
- package/src/plugs/debug.ts +28 -26
- 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 +10 -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 +116 -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.d.ts +0 -89
- package/dist/run.mjs +0 -65
- package/dist/run.mjs.map +0 -6
- package/dist/task.cjs.map +0 -6
- package/dist/task.d.ts +0 -15
- 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/dist/async.cjs
CHANGED
|
@@ -20,40 +20,41 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// async.ts
|
|
21
21
|
var async_exports = {};
|
|
22
22
|
__export(async_exports, {
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
currentContext: () => currentContext,
|
|
24
|
+
requireContext: () => requireContext,
|
|
25
25
|
runAsync: () => runAsync,
|
|
26
26
|
runningTasks: () => runningTasks
|
|
27
27
|
});
|
|
28
28
|
module.exports = __toCommonJS(async_exports);
|
|
29
29
|
var import_node_async_hooks = require("node:async_hooks");
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
30
|
+
var import_assert = require("./assert.cjs");
|
|
31
|
+
function runAsync(context, taskName, callback) {
|
|
32
|
+
return storage.run(context, async () => {
|
|
33
|
+
try {
|
|
34
|
+
tasks.add(taskName);
|
|
35
|
+
return await callback();
|
|
36
|
+
} finally {
|
|
37
|
+
tasks.delete(taskName);
|
|
38
|
+
}
|
|
38
39
|
});
|
|
39
40
|
}
|
|
40
|
-
function
|
|
41
|
-
|
|
42
|
-
return (_a = storage.getStore()) == null ? void 0 : _a.task;
|
|
41
|
+
function currentContext() {
|
|
42
|
+
return storage.getStore();
|
|
43
43
|
}
|
|
44
|
-
function
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
function requireContext() {
|
|
45
|
+
const context = storage.getStore();
|
|
46
|
+
(0, import_assert.assert)(context, "Unable to retrieve current context");
|
|
47
|
+
return context;
|
|
47
48
|
}
|
|
48
49
|
function runningTasks() {
|
|
49
50
|
return [...tasks].sort();
|
|
50
51
|
}
|
|
51
52
|
var storage = new import_node_async_hooks.AsyncLocalStorage();
|
|
52
|
-
var tasks =
|
|
53
|
+
var tasks = /* @__PURE__ */ new Set();
|
|
53
54
|
// Annotate the CommonJS export names for ESM import in node:
|
|
54
55
|
0 && (module.exports = {
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
currentContext,
|
|
57
|
+
requireContext,
|
|
57
58
|
runAsync,
|
|
58
59
|
runningTasks
|
|
59
60
|
});
|
package/dist/async.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/async.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAkC;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAkC;AAClC,oBAAuB;AAWhB,SAAS,SACZ,SACA,UACA,UACU;AACZ,SAAO,QAAQ,IAAI,SAAS,YAAY;AACtC,QAAI;AACF,YAAM,IAAI,QAAQ;AAClB,aAAO,MAAM,SAAS;AAAA,IACxB,UAAE;AACA,YAAM,OAAO,QAAQ;AAAA,IACvB;AAAA,EACF,CAAC;AACH;AAMO,SAAS,iBAAsC;AACpD,SAAO,QAAQ,SAAS;AAC1B;AAMO,SAAS,iBAA0B;AACxC,QAAM,UAAU,QAAQ,SAAS;AACjC,4BAAO,SAAS,oCAAoC;AACpD,SAAO;AACT;AAKO,SAAS,eAAyB;AACvC,SAAO,CAAE,GAAG,KAAM,EAAE,KAAK;AAC3B;AAMA,IAAM,UAAU,IAAI,0CAA2B;AAC/C,IAAM,QAAQ,oBAAI;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/async.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Context } from './pipe';
|
|
2
2
|
/**
|
|
3
|
-
* Run the specified `callback` associating the specified {@link
|
|
3
|
+
* Run the specified `callback` associating the specified {@link Context} and task
|
|
4
4
|
* name with the current asynchronous invocation context.
|
|
5
5
|
*/
|
|
6
|
-
export declare function runAsync<T>(
|
|
6
|
+
export declare function runAsync<T>(context: Context, taskName: string, callback: () => Promise<T>): Promise<T>;
|
|
7
7
|
/**
|
|
8
|
-
* Returns the
|
|
9
|
-
* context or `undefined`.
|
|
8
|
+
* Returns the {@link Context} associated with the current asynchronous
|
|
9
|
+
* invocation context or `undefined`.
|
|
10
10
|
*/
|
|
11
|
-
export declare function
|
|
11
|
+
export declare function currentContext(): Context | undefined;
|
|
12
12
|
/**
|
|
13
|
-
* Returns the {@link
|
|
14
|
-
* context
|
|
13
|
+
* Returns the {@link Context} associated with the current asynchronous
|
|
14
|
+
* invocation context and fail if none was found.
|
|
15
15
|
*/
|
|
16
|
-
export declare function
|
|
16
|
+
export declare function requireContext(): Context;
|
|
17
17
|
/**
|
|
18
18
|
* Return an array of all _task names_ currently running
|
|
19
19
|
*/
|
package/dist/async.mjs
CHANGED
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
// async.ts
|
|
2
2
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
3
|
+
import { assert } from "./assert.mjs";
|
|
4
|
+
function runAsync(context, taskName, callback) {
|
|
5
|
+
return storage.run(context, async () => {
|
|
6
|
+
try {
|
|
7
|
+
tasks.add(taskName);
|
|
8
|
+
return await callback();
|
|
9
|
+
} finally {
|
|
10
|
+
tasks.delete(taskName);
|
|
11
|
+
}
|
|
11
12
|
});
|
|
12
13
|
}
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
return (_a = storage.getStore()) == null ? void 0 : _a.task;
|
|
14
|
+
function currentContext() {
|
|
15
|
+
return storage.getStore();
|
|
16
16
|
}
|
|
17
|
-
function
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
function requireContext() {
|
|
18
|
+
const context = storage.getStore();
|
|
19
|
+
assert(context, "Unable to retrieve current context");
|
|
20
|
+
return context;
|
|
20
21
|
}
|
|
21
22
|
function runningTasks() {
|
|
22
23
|
return [...tasks].sort();
|
|
23
24
|
}
|
|
24
25
|
var storage = new AsyncLocalStorage();
|
|
25
|
-
var tasks =
|
|
26
|
+
var tasks = /* @__PURE__ */ new Set();
|
|
26
27
|
export {
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
currentContext,
|
|
29
|
+
requireContext,
|
|
29
30
|
runAsync,
|
|
30
31
|
runningTasks
|
|
31
32
|
};
|
package/dist/async.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/async.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,yBAAyB;
|
|
4
|
+
"mappings": ";AAAA,SAAS,yBAAyB;AAClC,SAAS,cAAc;AAWhB,SAAS,SACZ,SACA,UACA,UACU;AACZ,SAAO,QAAQ,IAAI,SAAS,YAAY;AACtC,QAAI;AACF,YAAM,IAAI,QAAQ;AAClB,aAAO,MAAM,SAAS;AAAA,IACxB,UAAE;AACA,YAAM,OAAO,QAAQ;AAAA,IACvB;AAAA,EACF,CAAC;AACH;AAMO,SAAS,iBAAsC;AACpD,SAAO,QAAQ,SAAS;AAC1B;AAMO,SAAS,iBAA0B;AACxC,QAAM,UAAU,QAAQ,SAAS;AACjC,SAAO,SAAS,oCAAoC;AACpD,SAAO;AACT;AAKO,SAAS,eAAyB;AACvC,SAAO,CAAE,GAAG,KAAM,EAAE,KAAK;AAC3B;AAMA,IAAM,UAAU,IAAI,kBAA2B;AAC/C,IAAM,QAAQ,oBAAI;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/build.cjs
CHANGED
|
@@ -21,136 +21,139 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
21
21
|
var build_exports = {};
|
|
22
22
|
__export(build_exports, {
|
|
23
23
|
build: () => build,
|
|
24
|
-
|
|
24
|
+
call: () => call
|
|
25
25
|
});
|
|
26
26
|
module.exports = __toCommonJS(build_exports);
|
|
27
27
|
var import_assert = require("./assert.cjs");
|
|
28
28
|
var import_async = require("./async.cjs");
|
|
29
29
|
var import_log = require("./log.cjs");
|
|
30
|
-
var import_paths = require("./paths.cjs");
|
|
31
30
|
var import_pipe = require("./pipe.cjs");
|
|
32
|
-
var import_run = require("./run.cjs");
|
|
33
|
-
var import_task = require("./task.cjs");
|
|
34
31
|
var import_caller = require("./utils/caller.cjs");
|
|
35
|
-
var
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const context = { buildFile, buildDir, tasks };
|
|
44
|
-
const result = {};
|
|
45
|
-
for (const name in definition) {
|
|
46
|
-
const def = definition[name];
|
|
47
|
-
const task = "task" in def ? def.task : new import_task.TaskImpl(context, def);
|
|
48
|
-
const call = async (run) => {
|
|
49
|
-
if (!run)
|
|
50
|
-
run = run = new BuildRun(buildDir, buildFile, tasks);
|
|
51
|
-
(0, import_assert.assert)(run instanceof BuildRun, "Incompatible Run specified");
|
|
52
|
-
run.log.notice("Starting build...");
|
|
53
|
-
const now = Date.now();
|
|
54
|
-
let error = void 0;
|
|
55
|
-
try {
|
|
56
|
-
await run.call(name);
|
|
57
|
-
} catch (err) {
|
|
58
|
-
run.log.error(err);
|
|
59
|
-
error = err;
|
|
60
|
-
}
|
|
61
|
-
try {
|
|
62
|
-
await run.finish();
|
|
63
|
-
if (error !== void 0)
|
|
64
|
-
throw error;
|
|
65
|
-
run.log.notice("Build completed", (0, import_log.$ms)(Date.now() - now));
|
|
66
|
-
return run;
|
|
67
|
-
} catch (error2) {
|
|
68
|
-
run.log.error(`Build failed ${(0, import_log.$ms)(Date.now() - now)}`, error2);
|
|
69
|
-
throw (0, import_assert.failure)();
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
Object.defineProperty(call, "name", { enumerable: true, value: name });
|
|
73
|
-
if (name.length > import_log.logOptions.taskLength) {
|
|
74
|
-
import_log.logOptions.taskLength = name.length;
|
|
75
|
-
}
|
|
76
|
-
result[name] = Object.assign(call, { task });
|
|
77
|
-
tasks[name] = task;
|
|
32
|
+
var import_options = require("./utils/options.cjs");
|
|
33
|
+
var PipeImpl = class extends import_pipe.Pipe {
|
|
34
|
+
constructor(context, _promise) {
|
|
35
|
+
super(context, () => _promise.then((result) => {
|
|
36
|
+
(0, import_assert.assert)(result, "Unable to extend pipe");
|
|
37
|
+
return result;
|
|
38
|
+
}));
|
|
39
|
+
this._promise = _promise;
|
|
78
40
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
var BuildRun = class extends import_run.RunImpl {
|
|
83
|
-
constructor(buildDir, buildFile, _tasks, _stack = [], _cache = /* @__PURE__ */ new Map(), taskName = "") {
|
|
84
|
-
super({ taskName, buildDir, buildFile });
|
|
85
|
-
this._tasks = _tasks;
|
|
86
|
-
this._stack = _stack;
|
|
87
|
-
this._cache = _cache;
|
|
41
|
+
[Symbol.toStringTag] = "PipeImpl";
|
|
42
|
+
then(onfulfilled, onrejected) {
|
|
43
|
+
return this._promise.then(onfulfilled, onrejected);
|
|
88
44
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
const promises = [];
|
|
92
|
-
for (const { name, promise } of this._cache.values()) {
|
|
93
|
-
names.push(name);
|
|
94
|
-
promises.push(promise);
|
|
95
|
-
}
|
|
96
|
-
const settlements = await Promise.allSettled(promises);
|
|
97
|
-
const failures = settlements.reduce((failures2, settlement, i) => {
|
|
98
|
-
if (settlement.status === "rejected") {
|
|
99
|
-
const name = names[i];
|
|
100
|
-
(0, import_log.getLogger)(name).error(settlement.reason);
|
|
101
|
-
failures2.push(name);
|
|
102
|
-
}
|
|
103
|
-
return failures2;
|
|
104
|
-
}, []);
|
|
105
|
-
if (failures.length) {
|
|
106
|
-
const message = `${failures.length === 1 ? "task has" : "tasks have"}`;
|
|
107
|
-
const names2 = failures.map((task) => (0, import_log.$t)(task)).join((0, import_log.$gry)(", "));
|
|
108
|
-
this.log.error(failures.length, message, "failed:", names2);
|
|
109
|
-
throw (0, import_assert.failure)();
|
|
110
|
-
}
|
|
45
|
+
catch(onrejected) {
|
|
46
|
+
return this._promise.catch(onrejected);
|
|
111
47
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
48
|
+
finally(onfinally) {
|
|
49
|
+
return this._promise.finally(onfinally);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
var TaskImpl = class {
|
|
53
|
+
constructor(buildFile, tasks, props, _def) {
|
|
54
|
+
this.buildFile = buildFile;
|
|
55
|
+
this.tasks = tasks;
|
|
56
|
+
this.props = props;
|
|
57
|
+
this._def = _def;
|
|
58
|
+
}
|
|
59
|
+
call(state, taskName) {
|
|
60
|
+
(0, import_assert.assert)(!state.stack.includes(this), `Recursion detected calling ${(0, import_log.$t)(taskName)}`);
|
|
61
|
+
const cached = state.cache.get(this);
|
|
118
62
|
if (cached)
|
|
119
|
-
return cached
|
|
120
|
-
const
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
name
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
63
|
+
return cached;
|
|
64
|
+
const props = Object.assign({}, this.props, state.props);
|
|
65
|
+
const tasks = Object.assign({}, this.tasks, state.tasks);
|
|
66
|
+
const stack = [...state.stack, this];
|
|
67
|
+
const cache = state.cache;
|
|
68
|
+
const context = new import_pipe.Context(this.buildFile, taskName);
|
|
69
|
+
const build2 = new Proxy({}, {
|
|
70
|
+
get(_, name) {
|
|
71
|
+
if (name in tasks) {
|
|
72
|
+
return () => {
|
|
73
|
+
const state2 = { stack, cache, tasks, props };
|
|
74
|
+
const promise2 = tasks[name].call(state2, name);
|
|
75
|
+
return new PipeImpl(context, promise2);
|
|
76
|
+
};
|
|
77
|
+
} else if (name in props) {
|
|
78
|
+
return props[name];
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
context.log.info("Running...");
|
|
83
|
+
const now = Date.now();
|
|
84
|
+
const promise = (0, import_async.runAsync)(context, taskName, async () => {
|
|
85
|
+
let result = await this._def.call(build2);
|
|
86
|
+
if (result && "run" in result)
|
|
87
|
+
result = await result.run();
|
|
88
|
+
return result || void 0;
|
|
89
|
+
}).then((result) => {
|
|
90
|
+
context.log.notice(`Success ${(0, import_log.$ms)(Date.now() - now)}`);
|
|
91
|
+
return result;
|
|
92
|
+
}).catch((error) => {
|
|
93
|
+
context.log.error(`Failure ${(0, import_log.$ms)(Date.now() - now)}`, error);
|
|
94
|
+
throw (0, import_assert.failure)();
|
|
95
|
+
});
|
|
96
|
+
cache.set(this, promise);
|
|
130
97
|
return promise;
|
|
131
98
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
99
|
+
};
|
|
100
|
+
var buildMarker = Symbol.for("plugjs:isBuild");
|
|
101
|
+
function build(def) {
|
|
102
|
+
const buildFile = (0, import_caller.findCaller)(build);
|
|
103
|
+
const tasks = {};
|
|
104
|
+
const props = {};
|
|
105
|
+
for (const [key, val] of Object.entries(def)) {
|
|
106
|
+
let len = 0;
|
|
107
|
+
if (typeof val === "string") {
|
|
108
|
+
props[key] = val;
|
|
109
|
+
} else if (typeof val === "function") {
|
|
110
|
+
tasks[key] = new TaskImpl(buildFile, tasks, props, val);
|
|
111
|
+
len = key.length;
|
|
112
|
+
} else if (val instanceof TaskImpl) {
|
|
113
|
+
tasks[key] = val;
|
|
114
|
+
len = key.length;
|
|
140
115
|
}
|
|
116
|
+
if (len > import_log.logOptions.taskLength)
|
|
117
|
+
import_log.logOptions.taskLength = len;
|
|
118
|
+
}
|
|
119
|
+
const call2 = async function call3(taskNames, overrideProps = {}) {
|
|
120
|
+
const logger = (0, import_log.getLogger)("");
|
|
121
|
+
const state = {
|
|
122
|
+
cache: /* @__PURE__ */ new Map(),
|
|
123
|
+
stack: [],
|
|
124
|
+
props: Object.assign({}, props, overrideProps),
|
|
125
|
+
tasks
|
|
126
|
+
};
|
|
127
|
+
logger.notice("Starting...");
|
|
128
|
+
const now = Date.now();
|
|
141
129
|
try {
|
|
142
|
-
const
|
|
143
|
-
|
|
144
|
-
|
|
130
|
+
for (const taskName of taskNames) {
|
|
131
|
+
if (taskName in tasks) {
|
|
132
|
+
await tasks[taskName].call(state, taskName);
|
|
133
|
+
} else {
|
|
134
|
+
(0, import_assert.fail)(`Task ${(0, import_log.$t)(taskName)} not found in build`);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
logger.notice(`Build successful ${(0, import_log.$ms)(Date.now() - now)}`);
|
|
145
138
|
} catch (error) {
|
|
146
|
-
|
|
139
|
+
logger.error(`Build failed ${(0, import_log.$ms)(Date.now() - now)}`, error);
|
|
147
140
|
throw (0, import_assert.failure)();
|
|
148
141
|
}
|
|
149
|
-
}
|
|
150
|
-
};
|
|
142
|
+
};
|
|
143
|
+
const compiled = Object.assign({}, props, tasks);
|
|
144
|
+
Object.defineProperty(compiled, buildMarker, { value: call2 });
|
|
145
|
+
return compiled;
|
|
146
|
+
}
|
|
147
|
+
function call(build2, ...args) {
|
|
148
|
+
const { params: tasks, options: props } = (0, import_options.parseOptions)(args, {});
|
|
149
|
+
const call2 = build2[buildMarker];
|
|
150
|
+
if (typeof call2 !== "function")
|
|
151
|
+
(0, import_assert.fail)("Unknown build type");
|
|
152
|
+
return call2(tasks, props);
|
|
153
|
+
}
|
|
151
154
|
// Annotate the CommonJS export names for ESM import in node:
|
|
152
155
|
0 && (module.exports = {
|
|
153
156
|
build,
|
|
154
|
-
|
|
157
|
+
call
|
|
155
158
|
});
|
|
156
159
|
//# sourceMappingURL=build.cjs.map
|
package/dist/build.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/build.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
5
|
-
"names": ["build", "
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["build", "state", "promise", "call"]
|
|
6
6
|
}
|
package/dist/build.d.ts
CHANGED
|
@@ -1,56 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
/** A record of all tasks keyed by name */
|
|
16
|
-
readonly tasks: Readonly<Record<string, Task>>;
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* A {@link TaskDefinition} is a _function_ defining a {@link Task}.
|
|
20
|
-
*/
|
|
21
|
-
export declare type TaskDefinition<B> = (this: ThisBuild<B>, self: ThisBuild<B>, run: Run) => Files | undefined | void | Promise<Files | undefined | void>;
|
|
22
|
-
/**
|
|
23
|
-
* A {@link TaskCall} describes a _function_ calling a {@link Task}, and
|
|
24
|
-
* it is exposed to outside users of the {@link Build}.
|
|
25
|
-
*/
|
|
26
|
-
export declare type TaskCall<T extends Files | undefined> = ((run?: Run) => Promise<Run>) & {
|
|
27
|
-
readonly task: Task<T>;
|
|
28
|
-
};
|
|
29
|
-
/**
|
|
30
|
-
* A {@link Build} is a collection of {@link TaskCall | TaskCalls}, as produced
|
|
31
|
-
* by the {@link build} function from a {@link BuildDefinition}.
|
|
32
|
-
*/
|
|
33
|
-
export declare type Build<B> = {
|
|
34
|
-
[K in keyof B]: B[K] extends TaskCall<infer T> ? TaskCall<T> : B[K] extends () => Files | Promise<Files> ? TaskCall<Files> : B[K] extends () => undefined | void | Promise<undefined | void> ? TaskCall<undefined> : never;
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* The type supplied as `this` to a {@link TaskDefinition} when invoking it.
|
|
38
|
-
*/
|
|
39
|
-
export declare type ThisBuild<B> = {
|
|
40
|
-
[K in keyof B]: B[K] extends () => Files | Promise<Files> ? () => Pipe & Promise<Files> : B[K] extends () => undefined | void | Promise<undefined | void> ? () => Promise<undefined> : B[K] extends TaskCall<infer T> ? () => T : never;
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* A {@link BuildDefinition} is a collection of
|
|
44
|
-
* {@link TaskDefinition | TaskDefinitions} that the {@link build} function will
|
|
45
|
-
* use to create a {@link Build}.
|
|
46
|
-
*
|
|
47
|
-
* A {@link BuildDefinition} can also include other {@link TaskCall | TaskCalls},
|
|
48
|
-
* thus giving the ability to extend other {@link Build | Builds}.
|
|
49
|
-
*/
|
|
50
|
-
export declare type BuildDefinition<B> = {
|
|
51
|
-
[K in keyof B]: TaskDefinition<B> | TaskCall<Files | undefined>;
|
|
52
|
-
};
|
|
53
|
-
/** Check if the specified build is actually a {@link Build} */
|
|
54
|
-
export declare function isBuild(build: any): build is Build<any>;
|
|
55
|
-
/** Create a new {@link Build} from its {@link BuildDefinition}. */
|
|
56
|
-
export declare function build<D extends BuildDefinition<D>>(definition: D & ThisType<ThisBuild<D>>): Build<D>;
|
|
1
|
+
import type { Build, BuildDef, Task, ThisBuild } from './types';
|
|
2
|
+
/** Compile a {@link BuildDef | build definition} into a {@link Build} */
|
|
3
|
+
export declare function build<D extends BuildDef, B extends ThisBuild<D>>(def: D & ThisType<B>): Build<D>;
|
|
4
|
+
/** Internal type identifying all _task names_ in a {@link Build} */
|
|
5
|
+
declare type TaskNames<B extends Build> = string & keyof {
|
|
6
|
+
[k in keyof B as B[k] extends Task ? k : never]?: B[k];
|
|
7
|
+
};
|
|
8
|
+
/** Internal type identifying all _property names_ in a {@link Build} */
|
|
9
|
+
declare type OverrideProps<B extends Build> = {
|
|
10
|
+
[k in keyof B as B[k] extends string ? k : never]?: string;
|
|
11
|
+
};
|
|
12
|
+
/** Serially invoke tasks in a {@link Build} optionally overriding properties */
|
|
13
|
+
export declare function call<B extends Build>(build: B, ...args: [...taskNames: [TaskNames<B>, ...TaskNames<B>[]]] | [...taskNames: [TaskNames<B>, ...TaskNames<B>[]], options: OverrideProps<B>]): Promise<void>;
|
|
14
|
+
export {};
|