hammerkit 1.4.0-beta.6 → 1.5.0-alpha.0
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/.devcontainer/Dockerfile +5 -0
- package/.devcontainer/devcontainer.json +40 -0
- package/Dockerfile +1 -1
- package/README.md +13 -86
- package/SUMMARY.md +43 -0
- package/build.schema.json +56 -2
- package/dist/cli.js +97 -0
- package/dist/cli.spec.js +5 -0
- package/dist/console/console-context-mock.js +11 -0
- package/dist/console/get-logger.js +23 -0
- package/dist/docker/pull.js +5 -5
- package/dist/docker/remove-container.js +21 -0
- package/dist/docker/stream.js +19 -21
- package/dist/docker/using-container.js +28 -0
- package/dist/environment/get-process-env.js +4 -4
- package/dist/environment/replace-env-variables.js +2 -3
- package/dist/executer/abort.js +13 -0
- package/dist/executer/check-readiness.js +25 -0
- package/dist/executer/create-scheduler-state.js +32 -0
- package/dist/executer/docker-node.js +123 -0
- package/dist/executer/docker-service.js +113 -0
- package/dist/executer/environment-mock.js +17 -0
- package/dist/executer/event-cache.js +165 -0
- package/dist/executer/execute-command.js +42 -0
- package/dist/executer/execute-docker.js +73 -223
- package/dist/executer/execute.spec.js +37 -37
- package/dist/executer/execution-steps.js +57 -0
- package/dist/executer/get-docker-executor.js +21 -20
- package/dist/executer/hierarchy-scheduler.js +94 -0
- package/dist/executer/kubernetes-service.js +64 -0
- package/dist/executer/label-values.js +65 -0
- package/dist/executer/local-node.js +57 -0
- package/dist/executer/print-container-options.js +17 -0
- package/dist/{logging/log-strategy.js → executer/process-item.js} +1 -1
- package/dist/executer/process-listener.js +3 -0
- package/dist/executer/process-manager.js +111 -0
- package/dist/executer/process-manager.spec.js +91 -0
- package/dist/executer/{executor.js → process.js} +1 -1
- package/dist/executer/{execute-result.js → readonly-state.js} +1 -1
- package/dist/executer/schedule.js +139 -0
- package/dist/executer/scheduler/check-for-loop.js +21 -0
- package/dist/executer/scheduler/enqueue-next.js +27 -0
- package/dist/{testing/test-context.js → executer/scheduler/node-state.js} +1 -1
- package/dist/executer/scheduler/scheduler-result.js +3 -0
- package/dist/executer/scheduler/scheduler-state.js +3 -0
- package/dist/executer/scheduler/service-state.js +3 -0
- package/dist/executer/service-dns.js +6 -0
- package/dist/executer/set-user-permission.js +16 -0
- package/dist/executer/start-node.js +59 -0
- package/dist/executer/state-listener.js +3 -0
- package/dist/executer/state.js +49 -0
- package/dist/executer/states.js +4 -129
- package/dist/executer/watch-node.js +57 -0
- package/dist/executer/watch-service.js +54 -0
- package/dist/executer/work-scope.js +10 -0
- package/dist/file/get-file-context-mock.js +1 -0
- package/dist/file/get-file-context-mock.spec.js +28 -27
- package/dist/file/get-file-context.js +73 -63
- package/dist/file/move-files.js +1 -1
- package/dist/get-work-context.js +29 -0
- package/dist/index.js +11 -10
- package/dist/log.js +209 -52
- package/dist/logging/grouped-logger.js +31 -19
- package/dist/logging/interactive-logger.js +20 -23
- package/dist/logging/live-logger.js +7 -17
- package/dist/optimizer/calculate-checksum.js +1 -1
- package/dist/optimizer/get-cache-directory.js +8 -13
- package/dist/optimizer/get-work-node-cache-stats.js +68 -21
- package/dist/optimizer/read-work-node-cache.js +2 -2
- package/dist/optimizer/work-node-cache-description.js +12 -11
- package/dist/optimizer/write-work-node-cache.js +9 -8
- package/dist/{executer/execution-context.js → parser/build-file-service.js} +1 -1
- package/dist/{optimizer → parser}/cache-method.js +0 -0
- package/dist/parser/get-build-file.js +1 -1
- package/dist/parser/parse-boolean.js +29 -0
- package/dist/parser/parse-boolean.spec.js +48 -0
- package/dist/parser/parse-build-file-references.js +2 -2
- package/dist/parser/parse-build-file-services.js +58 -0
- package/dist/parser/parse-build-file-task-command.js +6 -5
- package/dist/parser/parse-build-file-task-source.js +5 -5
- package/dist/parser/parse-build-file.js +29 -17
- package/dist/parser/parse-context.js +13 -0
- package/dist/parser/parse-envs.js +4 -3
- package/dist/parser/parse-healthcheck.js +28 -0
- package/dist/parser/parse-label-arguments.js +23 -0
- package/dist/parser/parse-service-selector.js +39 -0
- package/dist/parser/parse-string-array.js +6 -5
- package/dist/parser/parse-string-map.js +30 -0
- package/dist/parser/parse-string.js +20 -0
- package/dist/parser/read-build-file.js +16 -5
- package/dist/parser/read-env-file.js +7 -7
- package/dist/planner/utils/get-container-mounts.js +24 -0
- package/dist/planner/utils/normalize-path.js +17 -0
- package/dist/planner/utils/parse-work-node-mount.js +3 -14
- package/dist/planner/utils/parse-work-node-mount.spec.js +10 -10
- package/dist/planner/utils/parse-work-service-volume.js +21 -0
- package/dist/planner/utils/plan-work-command.js +1 -1
- package/dist/planner/utils/plan-work-dependency.js +29 -24
- package/dist/planner/utils/plan-work-node.js +203 -120
- package/dist/planner/utils/plan-work-nodes.js +60 -12
- package/dist/planner/utils/plan-work-tree.js +8 -4
- package/dist/planner/utils/plan-work-volume.js +25 -0
- package/dist/planner/validate.js +56 -8
- package/dist/planner/work-context.js +20 -0
- package/dist/planner/work-mount.js +3 -0
- package/dist/planner/work-node-id.js +4 -4
- package/dist/planner/work-node-id.spec.js +11 -8
- package/dist/planner/work-node-path.js +0 -1
- package/dist/planner/work-node-status.js +121 -18
- package/dist/planner/work-node.js +3 -3
- package/dist/planner/work-service-id.js +13 -0
- package/dist/planner/work-service-volume.js +3 -0
- package/dist/planner/work-service.js +6 -0
- package/dist/planner/work-services.js +3 -0
- package/dist/planner/work-volume.js +3 -0
- package/dist/program.js +155 -91
- package/dist/program.spec.js +20 -0
- package/dist/start-watch-processes.js +28 -0
- package/dist/testing/cli.js +73 -0
- package/dist/testing/create-build-file.js +1 -1
- package/dist/testing/example-test-suite.js +54 -0
- package/dist/testing/expect.js +30 -18
- package/dist/testing/get-logger.js +23 -0
- package/dist/testing/get-node.js +2 -2
- package/dist/testing/get-test-context.js +6 -5
- package/dist/testing/get-test-suite.js +2 -51
- package/dist/testing/integration/cache.spec.js +25 -28
- package/dist/testing/integration/cancellation.spec.js +19 -21
- package/dist/testing/integration/clean.spec.js +29 -13
- package/dist/testing/integration/cmd.spec.js +5 -8
- package/dist/testing/integration/concurrency.spec.js +8 -17
- package/dist/testing/integration/docker.spec.js +6 -9
- package/dist/testing/integration/env.spec.js +27 -34
- package/dist/testing/integration/error.spec.js +5 -9
- package/dist/testing/integration/extend.spec.js +32 -0
- package/dist/testing/integration/glob.spec.js +35 -28
- package/dist/testing/integration/include.spec.js +17 -16
- package/dist/testing/integration/invalid.spec.js +3 -2
- package/dist/testing/integration/invalid_loop.spec.js +13 -0
- package/dist/testing/integration/kubernetes.spec.js +15 -0
- package/dist/testing/integration/labels.spec.js +47 -0
- package/dist/testing/integration/local.spec.js +4 -7
- package/dist/testing/integration/monorepo.spec.js +6 -30
- package/dist/testing/integration/multi-line.spec.js +4 -4
- package/dist/testing/integration/program.spec.js +3 -10
- package/dist/testing/integration/reference.spec.js +10 -13
- package/dist/testing/integration/services.spec.js +14 -0
- package/dist/testing/integration/store.spec.js +42 -35
- package/dist/testing/integration/unknown.spec.js +4 -4
- package/dist/testing/integration/validate.spec.js +4 -4
- package/dist/testing/integration/watch.spec.js +25 -23
- package/dist/testing/lazy.js +17 -0
- package/dist/testing/start-watch-processes.js +29 -0
- package/dist/testing/test-suite-setup.js +3 -0
- package/dist/utils/abort-event.js +24 -0
- package/dist/utils/abortable-function.js +71 -0
- package/dist/utils/debouncer.spec.js +8 -8
- package/dist/utils/environment-config.js +13 -0
- package/dist/utils/fail-never.js +1 -1
- package/dist/utils/sleep.spec.js +3 -3
- package/package.json +24 -21
- package/dist/console/get-console-context-mock.js +0 -33
- package/dist/executer/clean.js +0 -22
- package/dist/executer/execute-local.js +0 -58
- package/dist/executer/execute.js +0 -95
- package/dist/executer/execution-context-event.js +0 -3
- package/dist/executer/execution-context-mock.js +0 -3
- package/dist/executer/executor-mock.js +0 -39
- package/dist/executer/get-environment-mock.js +0 -17
- package/dist/executer/get-execution-context-mock.js +0 -19
- package/dist/executer/get-local-executor.js +0 -22
- package/dist/executer/get-ready-work-nodes.js +0 -15
- package/dist/executer/restore.js +0 -22
- package/dist/executer/store.js +0 -23
- package/dist/logging/get-logger.js +0 -23
- package/dist/logging/message-to-console.js +0 -16
- package/dist/optimizer/optimize.js +0 -32
- package/dist/optimizer/work-node-description.js +0 -12
- package/dist/planner/utils/find-build-task.js +0 -18
- package/dist/testing/create-work-tree.js +0 -11
- package/dist/utils/defer.js +0 -57
- package/dist/utils/defer.spec.js +0 -76
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getExecutorMock = void 0;
|
|
4
|
-
const defer_1 = require("../utils/defer");
|
|
5
|
-
function getExecutorMock() {
|
|
6
|
-
const waits = {};
|
|
7
|
-
const execs = {};
|
|
8
|
-
return {
|
|
9
|
-
exec(node, context, cancelDefer) {
|
|
10
|
-
const resultDefer = new defer_1.Defer();
|
|
11
|
-
cancelDefer.promise.then(() => {
|
|
12
|
-
if (resultDefer.isResolved) {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
resultDefer.reject(new Error('canceled'));
|
|
16
|
-
});
|
|
17
|
-
if (waits[node.id]) {
|
|
18
|
-
waits[node.id].resolve(resultDefer);
|
|
19
|
-
delete waits[node.id];
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
execs[node.id] = resultDefer;
|
|
23
|
-
}
|
|
24
|
-
return resultDefer.promise;
|
|
25
|
-
},
|
|
26
|
-
async waitFor(nodeId) {
|
|
27
|
-
const currentExecs = execs[nodeId];
|
|
28
|
-
if (currentExecs) {
|
|
29
|
-
delete execs[nodeId];
|
|
30
|
-
return currentExecs;
|
|
31
|
-
}
|
|
32
|
-
const resultDefer = new defer_1.Defer();
|
|
33
|
-
waits[nodeId] = resultDefer;
|
|
34
|
-
return resultDefer.promise;
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
exports.getExecutorMock = getExecutorMock;
|
|
39
|
-
//# sourceMappingURL=executor-mock.js.map
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getEnvironmentMock = void 0;
|
|
4
|
-
const get_file_context_mock_1 = require("../file/get-file-context-mock");
|
|
5
|
-
const get_console_context_mock_1 = require("../console/get-console-context-mock");
|
|
6
|
-
const defer_1 = require("../utils/defer");
|
|
7
|
-
function getEnvironmentMock() {
|
|
8
|
-
return {
|
|
9
|
-
cwd: '/home/user',
|
|
10
|
-
file: get_file_context_mock_1.getFileContextMock(),
|
|
11
|
-
console: get_console_context_mock_1.getConsoleContextMock(),
|
|
12
|
-
cancelDefer: new defer_1.Defer(),
|
|
13
|
-
processEnvs: {},
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
exports.getEnvironmentMock = getEnvironmentMock;
|
|
17
|
-
//# sourceMappingURL=get-environment-mock.js.map
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getExecutionContextMock = void 0;
|
|
4
|
-
const get_environment_mock_1 = require("./get-environment-mock");
|
|
5
|
-
const emitter_1 = require("../utils/emitter");
|
|
6
|
-
const executor_mock_1 = require("./executor-mock");
|
|
7
|
-
function getExecutionContextMock() {
|
|
8
|
-
return {
|
|
9
|
-
environment: get_environment_mock_1.getEnvironmentMock(),
|
|
10
|
-
events: emitter_1.emitter(),
|
|
11
|
-
executor: executor_mock_1.getExecutorMock(),
|
|
12
|
-
cacheMethod: 'checksum',
|
|
13
|
-
watch: false,
|
|
14
|
-
runningNodes: {},
|
|
15
|
-
workers: 0,
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
exports.getExecutionContextMock = getExecutionContextMock;
|
|
19
|
-
//# sourceMappingURL=get-execution-context-mock.js.map
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getLocalExecutor = void 0;
|
|
4
|
-
const work_node_1 = require("../planner/work-node");
|
|
5
|
-
const execute_local_1 = require("./execute-local");
|
|
6
|
-
const replace_env_variables_1 = require("../environment/replace-env-variables");
|
|
7
|
-
function getLocalExecutor() {
|
|
8
|
-
return {
|
|
9
|
-
async exec(node, context, cancelDefer) {
|
|
10
|
-
const envs = replace_env_variables_1.replaceEnvVariables(node, context.environment.processEnvs);
|
|
11
|
-
if (work_node_1.isContainerWorkNode(node)) {
|
|
12
|
-
node.status.console.write('internal', 'debug', `${node.name} is executed locally instead inside of a container`);
|
|
13
|
-
}
|
|
14
|
-
await execute_local_1.executeLocal({
|
|
15
|
-
...node,
|
|
16
|
-
envs,
|
|
17
|
-
}, context, cancelDefer);
|
|
18
|
-
},
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
exports.getLocalExecutor = getLocalExecutor;
|
|
22
|
-
//# sourceMappingURL=get-local-executor.js.map
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getReadyWorkNodes = void 0;
|
|
4
|
-
const plan_work_nodes_1 = require("../planner/utils/plan-work-nodes");
|
|
5
|
-
function getReadyWorkNodes(workTree) {
|
|
6
|
-
const result = [];
|
|
7
|
-
for (const node of plan_work_nodes_1.iterateWorkNodes(workTree.nodes)) {
|
|
8
|
-
if (node.status.state.type === 'pending' && Object.keys(node.status.pendingDependencies).length === 0) {
|
|
9
|
-
result.push(node);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
return result;
|
|
13
|
-
}
|
|
14
|
-
exports.getReadyWorkNodes = getReadyWorkNodes;
|
|
15
|
-
//# sourceMappingURL=get-ready-work-nodes.js.map
|
package/dist/executer/restore.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.restore = void 0;
|
|
4
|
-
const path_1 = require("path");
|
|
5
|
-
const move_files_1 = require("../file/move-files");
|
|
6
|
-
const plan_work_nodes_1 = require("../planner/utils/plan-work-nodes");
|
|
7
|
-
const get_cache_directory_1 = require("../optimizer/get-cache-directory");
|
|
8
|
-
async function restore(workNodes, targetDirectory, context) {
|
|
9
|
-
for (const node of plan_work_nodes_1.iterateWorkNodes(workNodes)) {
|
|
10
|
-
const cachePath = get_cache_directory_1.getCacheDirectory(node.id);
|
|
11
|
-
const sourceCacheDir = path_1.join(targetDirectory, 'cache', node.id);
|
|
12
|
-
await move_files_1.moveFiles(node, context, function* () {
|
|
13
|
-
yield { from: sourceCacheDir, to: cachePath };
|
|
14
|
-
for (const targetPath of node.generates) {
|
|
15
|
-
const sourcePath = path_1.join(targetDirectory, path_1.relative(node.buildFile.path, targetPath));
|
|
16
|
-
yield { from: sourcePath, to: targetPath };
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
exports.restore = restore;
|
|
22
|
-
//# sourceMappingURL=restore.js.map
|
package/dist/executer/store.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.store = void 0;
|
|
4
|
-
const path_1 = require("path");
|
|
5
|
-
const move_files_1 = require("../file/move-files");
|
|
6
|
-
const plan_work_nodes_1 = require("../planner/utils/plan-work-nodes");
|
|
7
|
-
const get_cache_directory_1 = require("../optimizer/get-cache-directory");
|
|
8
|
-
async function store(workNodes, targetDirectory, context) {
|
|
9
|
-
for (const node of plan_work_nodes_1.iterateWorkNodes(workNodes)) {
|
|
10
|
-
const cachePath = get_cache_directory_1.getCacheDirectory(node.id);
|
|
11
|
-
const sourceCacheDir = path_1.join(targetDirectory, 'cache', node.id);
|
|
12
|
-
await move_files_1.moveFiles(node, context, function* () {
|
|
13
|
-
yield { from: cachePath, to: sourceCacheDir };
|
|
14
|
-
for (const sourcePath of node.generates) {
|
|
15
|
-
const relativePath = path_1.relative(node.buildFile.path, sourcePath);
|
|
16
|
-
const targetPath = path_1.join(targetDirectory, relativePath);
|
|
17
|
-
yield { from: sourcePath, to: targetPath };
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
exports.store = store;
|
|
23
|
-
//# sourceMappingURL=store.js.map
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getLogger = void 0;
|
|
4
|
-
const fail_never_1 = require("../utils/fail-never");
|
|
5
|
-
const live_logger_1 = require("./live-logger");
|
|
6
|
-
const interactive_logger_1 = require("./interactive-logger");
|
|
7
|
-
const grouped_logger_1 = require("./grouped-logger");
|
|
8
|
-
function getLogger(mode) {
|
|
9
|
-
if (mode === 'interactive') {
|
|
10
|
-
return interactive_logger_1.interactiveLogger();
|
|
11
|
-
}
|
|
12
|
-
else if (mode === 'live') {
|
|
13
|
-
return live_logger_1.liveLogger();
|
|
14
|
-
}
|
|
15
|
-
else if (mode === 'grouped') {
|
|
16
|
-
return grouped_logger_1.groupedLogger();
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
fail_never_1.failNever(`Unknown logging mode ${mode}`);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
exports.getLogger = getLogger;
|
|
23
|
-
//# sourceMappingURL=get-logger.js.map
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.logMessageToConsole = void 0;
|
|
7
|
-
const log_1 = require("../log");
|
|
8
|
-
const colors_1 = __importDefault(require("colors"));
|
|
9
|
-
function logMessageToConsole(node, log, maxNodeNameLength) {
|
|
10
|
-
if (!log_1.isVerbose && log.level === 'debug') {
|
|
11
|
-
return;
|
|
12
|
-
}
|
|
13
|
-
process.stdout.write(`${colors_1.default.grey('task:')} ${log_1.getNodeName(node, maxNodeNameLength)} - ${log.date.toLocaleTimeString()} - ${log_1.getLogLevel(log.level)} - ${log.message}\n`);
|
|
14
|
-
}
|
|
15
|
-
exports.logMessageToConsole = logMessageToConsole;
|
|
16
|
-
//# sourceMappingURL=message-to-console.js.map
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.optimize = void 0;
|
|
4
|
-
const read_work_node_cache_1 = require("./read-work-node-cache");
|
|
5
|
-
const get_work_node_cache_stats_1 = require("./get-work-node-cache-stats");
|
|
6
|
-
const states_1 = require("../executer/states");
|
|
7
|
-
async function optimize(workTree, context) {
|
|
8
|
-
if (context.cacheMethod === 'none') {
|
|
9
|
-
return workTree;
|
|
10
|
-
}
|
|
11
|
-
for (const key of Object.keys(workTree.nodes)) {
|
|
12
|
-
const node = workTree.nodes[key];
|
|
13
|
-
if (node.src.length === 0) {
|
|
14
|
-
continue;
|
|
15
|
-
}
|
|
16
|
-
const cache = await read_work_node_cache_1.readCache(node, context.environment);
|
|
17
|
-
if (!cache) {
|
|
18
|
-
node.status.console.write('internal', 'debug', `${node.name} can't be skipped because there is no cache`);
|
|
19
|
-
continue;
|
|
20
|
-
}
|
|
21
|
-
const currentStats = await get_work_node_cache_stats_1.getWorkNodeCacheStats(node, context.environment);
|
|
22
|
-
const changed = await get_work_node_cache_stats_1.hasStatsChanged(node, cache, currentStats, context.cacheMethod);
|
|
23
|
-
if (changed) {
|
|
24
|
-
continue;
|
|
25
|
-
}
|
|
26
|
-
node.status.console.write('internal', 'debug', `${node.name} is skipped because it's cache is up to date`);
|
|
27
|
-
states_1.completeNode(workTree, key, context, false);
|
|
28
|
-
}
|
|
29
|
-
return workTree;
|
|
30
|
-
}
|
|
31
|
-
exports.optimize = optimize;
|
|
32
|
-
//# sourceMappingURL=optimize.js.map
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getWorkDescription = void 0;
|
|
4
|
-
const work_node_cache_description_1 = require("./work-node-cache-description");
|
|
5
|
-
function getWorkDescription(cwd, task, deps) {
|
|
6
|
-
return {
|
|
7
|
-
cwd,
|
|
8
|
-
...work_node_cache_description_1.getWorkNodeCacheDescription(task, deps),
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
exports.getWorkDescription = getWorkDescription;
|
|
12
|
-
//# sourceMappingURL=work-node-description.js.map
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.findBuildTask = void 0;
|
|
4
|
-
const split_name_1 = require("./split-name");
|
|
5
|
-
function findBuildTask(build, taskName) {
|
|
6
|
-
if (build.tasks[taskName]) {
|
|
7
|
-
return { task: build.tasks[taskName], build };
|
|
8
|
-
}
|
|
9
|
-
else {
|
|
10
|
-
const ref = split_name_1.splitName(taskName);
|
|
11
|
-
if (ref.prefix && build.includes[ref.prefix]) {
|
|
12
|
-
return findBuildTask(build.includes[ref.prefix], ref.taskName);
|
|
13
|
-
}
|
|
14
|
-
throw new Error(`unable to find ${taskName} in ${build.path}`);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
exports.findBuildTask = findBuildTask;
|
|
18
|
-
//# sourceMappingURL=find-build-task.js.map
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createWorkTree = void 0;
|
|
4
|
-
const plan_work_tree_1 = require("../planner/utils/plan-work-tree");
|
|
5
|
-
const create_build_file_1 = require("./create-build-file");
|
|
6
|
-
async function createWorkTree(environment, buildFile, rootNodeName) {
|
|
7
|
-
const file = await create_build_file_1.createBuildFile(environment, buildFile);
|
|
8
|
-
return plan_work_tree_1.planWorkTree(file, rootNodeName);
|
|
9
|
-
}
|
|
10
|
-
exports.createWorkTree = createWorkTree;
|
|
11
|
-
//# sourceMappingURL=create-work-tree.js.map
|
package/dist/utils/defer.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Defer = void 0;
|
|
4
|
-
class Defer {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.resolveFn = null;
|
|
7
|
-
this.rejectFn = null;
|
|
8
|
-
this.promiseResolved = false;
|
|
9
|
-
this.promiseRejected = false;
|
|
10
|
-
this.promiseResult = null;
|
|
11
|
-
this.promiseError = null;
|
|
12
|
-
this.promise = new Promise((resolve, reject) => {
|
|
13
|
-
this.rejectFn = reject;
|
|
14
|
-
this.resolveFn = resolve;
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
get isResolved() {
|
|
18
|
-
return this.promiseResolved;
|
|
19
|
-
}
|
|
20
|
-
get isRejected() {
|
|
21
|
-
return this.promiseRejected;
|
|
22
|
-
}
|
|
23
|
-
get resolvedResult() {
|
|
24
|
-
return this.promiseResult;
|
|
25
|
-
}
|
|
26
|
-
get rejectedError() {
|
|
27
|
-
return this.promiseError;
|
|
28
|
-
}
|
|
29
|
-
resolve(value) {
|
|
30
|
-
if (this.promiseResolved) {
|
|
31
|
-
throw new Error('defer already resolved');
|
|
32
|
-
}
|
|
33
|
-
if (this.promiseRejected) {
|
|
34
|
-
throw new Error('defer already rejected');
|
|
35
|
-
}
|
|
36
|
-
this.promiseResolved = true;
|
|
37
|
-
this.promiseResult = value ?? null;
|
|
38
|
-
if (this.resolveFn) {
|
|
39
|
-
this.resolveFn(value);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
reject(err) {
|
|
43
|
-
if (this.promiseResolved) {
|
|
44
|
-
throw new Error('defer already resolved');
|
|
45
|
-
}
|
|
46
|
-
if (this.promiseRejected) {
|
|
47
|
-
throw new Error('defer already rejected');
|
|
48
|
-
}
|
|
49
|
-
this.promiseRejected = true;
|
|
50
|
-
this.promiseError = err;
|
|
51
|
-
if (this.rejectFn) {
|
|
52
|
-
this.rejectFn(err);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
exports.Defer = Defer;
|
|
57
|
-
//# sourceMappingURL=defer.js.map
|
package/dist/utils/defer.spec.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const defer_1 = require("./defer");
|
|
4
|
-
describe('utils/defer', () => {
|
|
5
|
-
it('should resolve', async () => {
|
|
6
|
-
const defer = new defer_1.Defer();
|
|
7
|
-
expect(defer.isResolved).toBeFalsy();
|
|
8
|
-
expect(defer.isRejected).toBeFalsy();
|
|
9
|
-
defer.resolve('foo');
|
|
10
|
-
const result = await defer.promise;
|
|
11
|
-
expect(result).toEqual('foo');
|
|
12
|
-
expect(defer.resolvedResult).toEqual('foo');
|
|
13
|
-
expect(defer.isResolved).toBeTruthy();
|
|
14
|
-
expect(defer.isRejected).toBeFalsy();
|
|
15
|
-
});
|
|
16
|
-
it('should reject', async () => {
|
|
17
|
-
const defer = new defer_1.Defer();
|
|
18
|
-
expect(defer.isResolved).toBeFalsy();
|
|
19
|
-
expect(defer.isRejected).toBeFalsy();
|
|
20
|
-
defer.reject(new Error('err'));
|
|
21
|
-
expect(defer.isResolved).toBeFalsy();
|
|
22
|
-
expect(defer.isRejected).toBeTruthy();
|
|
23
|
-
try {
|
|
24
|
-
await defer.promise;
|
|
25
|
-
expect(true).toEqual(false);
|
|
26
|
-
}
|
|
27
|
-
catch (e) {
|
|
28
|
-
expect(e.message).toEqual('err');
|
|
29
|
-
}
|
|
30
|
-
expect(defer.rejectedError).toEqual(new Error('err'));
|
|
31
|
-
});
|
|
32
|
-
it('should throw on second resolve', async () => {
|
|
33
|
-
const defer = new defer_1.Defer();
|
|
34
|
-
defer.resolve('foo');
|
|
35
|
-
expect(() => defer.resolve('bar')).toThrow();
|
|
36
|
-
});
|
|
37
|
-
it('should have result null if none defined', async () => {
|
|
38
|
-
const defer = new defer_1.Defer();
|
|
39
|
-
defer.resolve();
|
|
40
|
-
expect(defer.resolvedResult).toBe(null);
|
|
41
|
-
});
|
|
42
|
-
it('should throw on resolve after reject', (done) => {
|
|
43
|
-
const defer = new defer_1.Defer();
|
|
44
|
-
defer.reject(new Error('test'));
|
|
45
|
-
try {
|
|
46
|
-
defer.resolve('bar');
|
|
47
|
-
done.fail('should haven thrown an error');
|
|
48
|
-
}
|
|
49
|
-
catch (e) {
|
|
50
|
-
done();
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
it('should throw on second reject', (done) => {
|
|
54
|
-
const defer = new defer_1.Defer();
|
|
55
|
-
defer.reject(new Error('test'));
|
|
56
|
-
try {
|
|
57
|
-
defer.reject(new Error('test2'));
|
|
58
|
-
done.fail('should haven thrown an error');
|
|
59
|
-
}
|
|
60
|
-
catch (e) {
|
|
61
|
-
done();
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
it('should throw on reject after resolve', (done) => {
|
|
65
|
-
const defer = new defer_1.Defer();
|
|
66
|
-
defer.resolve('foo');
|
|
67
|
-
try {
|
|
68
|
-
defer.reject(new Error('test2'));
|
|
69
|
-
done.fail('should haven thrown an error');
|
|
70
|
-
}
|
|
71
|
-
catch (e) {
|
|
72
|
-
done();
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
//# sourceMappingURL=defer.spec.js.map
|