@modern-js/monorepo-tools 2.4.1-beta.0 → 2.5.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/CHANGELOG.md +19 -8
- package/cli.js +1 -1
- package/dist/{js/node → cjs}/cli/build-watch.js +3 -23
- package/dist/{js/node → cjs}/cli/build.js +3 -23
- package/dist/{js/node → cjs}/cli/clear.js +3 -23
- package/dist/{js/node → cjs}/cli/deploy.js +3 -23
- package/dist/{js/node → cjs}/cli/index.js +0 -0
- package/dist/cjs/cli/install.js +34 -0
- package/dist/{js/node → cjs}/cli/new.js +3 -40
- package/dist/{js/node → cjs}/commands/build-watch.js +4 -24
- package/dist/{js/node → cjs}/commands/build.js +8 -41
- package/dist/{js/node → cjs}/commands/clear.js +3 -23
- package/dist/{js/node → cjs}/commands/deploy.js +4 -24
- package/dist/{js/node → cjs}/commands/index.js +0 -0
- package/dist/{js/node → cjs}/commands/install.js +4 -24
- package/dist/{js/node → cjs}/constants.js +0 -0
- package/dist/{js/node → cjs}/dag/create.js +5 -15
- package/dist/{js/node → cjs}/dag/edge-manager.js +0 -0
- package/dist/{js/node → cjs}/dag/index.js +0 -0
- package/dist/cjs/dag/operator.js +232 -0
- package/dist/{js/node → cjs}/dag/task.js +29 -53
- package/dist/{js/node → cjs}/dag/utils.js +0 -0
- package/dist/{js/node → cjs}/features/build/index.js +13 -33
- package/dist/{js/node → cjs}/features/clear/index.js +0 -0
- package/dist/{js/node → cjs}/features/deploy/index.js +10 -30
- package/dist/{js/node → cjs}/features/dev/cmds.js +0 -0
- package/dist/{js/node → cjs}/features/dev/create-task.js +6 -26
- package/dist/{js/node → cjs}/features/dev/index.js +14 -34
- package/dist/{js/node → cjs}/features/dev/watch-projects-state.js +3 -19
- package/dist/{js/node → cjs}/features/install/index.js +3 -23
- package/dist/{js/node → cjs}/hooks/index.js +0 -0
- package/dist/{js/node → cjs}/index.js +0 -0
- package/dist/{js/node → cjs}/locale/en.js +0 -0
- package/dist/{js/node → cjs}/locale/index.js +0 -0
- package/dist/{js/node → cjs}/locale/zh.js +0 -0
- package/dist/{js/node → cjs}/log/error.js +0 -0
- package/dist/{js/node → cjs}/log/multi-tasks-log.js +0 -0
- package/dist/{js/node → cjs}/log/time.js +1 -15
- package/dist/{js/node → cjs}/log/utils.js +0 -0
- package/dist/{js/node → cjs}/package/index.js +0 -0
- package/dist/{js/node → cjs}/parse-config/index.js +4 -38
- package/dist/{js/node → cjs}/parse-config/monorepo.js +0 -0
- package/dist/{js/node → cjs}/projects/check-project-change.js +12 -32
- package/dist/{js/node → cjs}/projects/clear-memory-files.js +0 -0
- package/dist/{js/node → cjs}/projects/get-projects-by-packages-config.js +11 -45
- package/dist/{js/node → cjs}/projects/get-projects-by-workspace-file.js +4 -24
- package/dist/{js/node → cjs}/projects/get-projects.js +15 -47
- package/dist/{js/node → cjs}/type.js +0 -0
- package/dist/{js/node → cjs}/utils/install.js +4 -24
- package/dist/{js/node → cjs}/utils/language.js +0 -0
- package/dist/{js/node → cjs}/utils/types.js +0 -0
- package/dist/esm/cli/build-watch.js +11 -0
- package/dist/esm/cli/build.js +12 -0
- package/dist/esm/cli/clear.js +11 -0
- package/dist/esm/cli/deploy.js +16 -0
- package/dist/{js/modern → esm}/cli/index.js +0 -0
- package/dist/esm/cli/install.js +11 -0
- package/dist/esm/cli/new.js +18 -0
- package/dist/esm/commands/build-watch.js +24 -0
- package/dist/esm/commands/build.js +55 -0
- package/dist/esm/commands/clear.js +19 -0
- package/dist/{js/modern → esm}/commands/deploy.js +4 -24
- package/dist/{js/modern → esm}/commands/index.js +0 -0
- package/dist/esm/commands/install.js +23 -0
- package/dist/{js/modern → esm}/constants.js +0 -0
- package/dist/{js/modern → esm}/dag/create.js +5 -17
- package/dist/{js/modern → esm}/dag/edge-manager.js +0 -0
- package/dist/{js/modern → esm}/dag/index.js +0 -0
- package/dist/esm/dag/operator.js +203 -0
- package/dist/esm/dag/task.js +55 -0
- package/dist/{js/modern → esm}/dag/utils.js +0 -0
- package/dist/{js/modern → esm}/features/build/index.js +13 -33
- package/dist/{js/modern → esm}/features/clear/index.js +0 -0
- package/dist/{js/modern → esm}/features/deploy/index.js +10 -30
- package/dist/{js/modern → esm}/features/dev/cmds.js +0 -0
- package/dist/{js/modern → esm}/features/dev/create-task.js +6 -26
- package/dist/{js/modern → esm}/features/dev/index.js +14 -34
- package/dist/{js/modern → esm}/features/dev/watch-projects-state.js +3 -21
- package/dist/{js/modern → esm}/features/install/index.js +3 -23
- package/dist/{js/modern → esm}/hooks/index.js +0 -0
- package/dist/{js/modern → esm}/index.js +0 -0
- package/dist/{js/modern → esm}/locale/en.js +0 -0
- package/dist/{js/modern → esm}/locale/index.js +0 -0
- package/dist/{js/modern → esm}/locale/zh.js +0 -0
- package/dist/{js/modern → esm}/log/error.js +0 -0
- package/dist/{js/modern → esm}/log/multi-tasks-log.js +0 -0
- package/dist/esm/log/time.js +13 -0
- package/dist/{js/modern → esm}/log/utils.js +0 -0
- package/dist/{js/modern → esm}/package/index.js +0 -0
- package/dist/esm/parse-config/index.js +15 -0
- package/dist/{js/modern → esm}/parse-config/monorepo.js +0 -0
- package/dist/{js/modern → esm}/projects/check-project-change.js +12 -32
- package/dist/{js/modern → esm}/projects/clear-memory-files.js +0 -0
- package/dist/{js/modern → esm}/projects/get-projects-by-packages-config.js +11 -47
- package/dist/{js/modern → esm}/projects/get-projects-by-workspace-file.js +4 -24
- package/dist/{js/modern → esm}/projects/get-projects.js +15 -49
- package/dist/{js/modern → esm}/type.js +0 -0
- package/dist/esm/utils/install.js +27 -0
- package/dist/{js/modern → esm}/utils/language.js +0 -0
- package/dist/{js/modern → esm}/utils/types.js +0 -0
- package/package.json +16 -16
- package/dist/js/modern/cli/build-watch.js +0 -31
- package/dist/js/modern/cli/build.js +0 -32
- package/dist/js/modern/cli/clear.js +0 -31
- package/dist/js/modern/cli/deploy.js +0 -36
- package/dist/js/modern/cli/install.js +0 -31
- package/dist/js/modern/cli/new.js +0 -57
- package/dist/js/modern/commands/build-watch.js +0 -44
- package/dist/js/modern/commands/build.js +0 -90
- package/dist/js/modern/commands/clear.js +0 -39
- package/dist/js/modern/commands/install.js +0 -43
- package/dist/js/modern/dag/operator.js +0 -251
- package/dist/js/modern/dag/task.js +0 -79
- package/dist/js/modern/log/time.js +0 -29
- package/dist/js/modern/parse-config/index.js +0 -51
- package/dist/js/modern/utils/install.js +0 -47
- package/dist/js/node/cli/install.js +0 -54
- package/dist/js/node/dag/operator.js +0 -278
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
-
var __spreadValues = (a, b) => {
|
|
7
|
-
for (var prop in b || (b = {}))
|
|
8
|
-
if (__hasOwnProp.call(b, prop))
|
|
9
|
-
__defNormalProp(a, prop, b[prop]);
|
|
10
|
-
if (__getOwnPropSymbols)
|
|
11
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
12
|
-
if (__propIsEnum.call(b, prop))
|
|
13
|
-
__defNormalProp(a, prop, b[prop]);
|
|
14
|
-
}
|
|
15
|
-
return a;
|
|
16
|
-
};
|
|
17
|
-
import { Signale } from "@modern-js/utils";
|
|
18
|
-
const initTimeLog = (option = {}) => new Signale(__spreadValues({ interactive: true, scope: "time-log" }, option));
|
|
19
|
-
const startTime = (signaleInstance, prefix = "") => {
|
|
20
|
-
signaleInstance.time(prefix);
|
|
21
|
-
};
|
|
22
|
-
const endTime = (signaleInstance, prefix = "") => {
|
|
23
|
-
signaleInstance.timeEnd(prefix);
|
|
24
|
-
};
|
|
25
|
-
export {
|
|
26
|
-
endTime,
|
|
27
|
-
initTimeLog,
|
|
28
|
-
startTime
|
|
29
|
-
};
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
-
var __spreadValues = (a, b) => {
|
|
7
|
-
for (var prop in b || (b = {}))
|
|
8
|
-
if (__hasOwnProp.call(b, prop))
|
|
9
|
-
__defNormalProp(a, prop, b[prop]);
|
|
10
|
-
if (__getOwnPropSymbols)
|
|
11
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
12
|
-
if (__propIsEnum.call(b, prop))
|
|
13
|
-
__defNormalProp(a, prop, b[prop]);
|
|
14
|
-
}
|
|
15
|
-
return a;
|
|
16
|
-
};
|
|
17
|
-
var __async = (__this, __arguments, generator) => {
|
|
18
|
-
return new Promise((resolve, reject) => {
|
|
19
|
-
var fulfilled = (value) => {
|
|
20
|
-
try {
|
|
21
|
-
step(generator.next(value));
|
|
22
|
-
} catch (e) {
|
|
23
|
-
reject(e);
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
var rejected = (value) => {
|
|
27
|
-
try {
|
|
28
|
-
step(generator.throw(value));
|
|
29
|
-
} catch (e) {
|
|
30
|
-
reject(e);
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
34
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
35
|
-
});
|
|
36
|
-
};
|
|
37
|
-
import * as path from "path";
|
|
38
|
-
import { JsonFile } from "@rushstack/node-core-library";
|
|
39
|
-
import { getMonorepoBaseData } from "./monorepo";
|
|
40
|
-
const defaultConfig = {};
|
|
41
|
-
const getFinalConfig = (..._0) => __async(void 0, [..._0], function* (currentPath = process.cwd()) {
|
|
42
|
-
const monorepo = getMonorepoBaseData(currentPath);
|
|
43
|
-
const userConfig = yield JsonFile.loadAsync(
|
|
44
|
-
path.resolve(monorepo.rootPath, "mono-config.json")
|
|
45
|
-
);
|
|
46
|
-
const config = __spreadValues(__spreadValues({}, defaultConfig), userConfig);
|
|
47
|
-
return { monorepo, config };
|
|
48
|
-
});
|
|
49
|
-
export {
|
|
50
|
-
getFinalConfig
|
|
51
|
-
};
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
var __async = (__this, __arguments, generator) => {
|
|
2
|
-
return new Promise((resolve, reject) => {
|
|
3
|
-
var fulfilled = (value) => {
|
|
4
|
-
try {
|
|
5
|
-
step(generator.next(value));
|
|
6
|
-
} catch (e) {
|
|
7
|
-
reject(e);
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
var rejected = (value) => {
|
|
11
|
-
try {
|
|
12
|
-
step(generator.throw(value));
|
|
13
|
-
} catch (e) {
|
|
14
|
-
reject(e);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
import * as path from "path";
|
|
22
|
-
import { fs, execa } from "@modern-js/utils";
|
|
23
|
-
import { LOCK_FILE } from "../constants";
|
|
24
|
-
const removeLockFile = (rootPath, packageManager) => {
|
|
25
|
-
if (packageManager === "pnpm") {
|
|
26
|
-
fs.removeSync(path.join(rootPath, LOCK_FILE.PNPM));
|
|
27
|
-
} else if (packageManager === "yarn") {
|
|
28
|
-
fs.removeSync(path.join(rootPath, LOCK_FILE.YARN));
|
|
29
|
-
} else if (packageManager === "npm") {
|
|
30
|
-
fs.removeSync(path.join(rootPath, LOCK_FILE.NPM));
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
const installByPackageManager = (_0, _1) => __async(void 0, [_0, _1], function* (packageManager, { rootPath, removeLock }) {
|
|
34
|
-
if (removeLock) {
|
|
35
|
-
removeLockFile(rootPath, packageManager);
|
|
36
|
-
}
|
|
37
|
-
if (packageManager === "pnpm") {
|
|
38
|
-
yield execa("pnpm", ["install"], { stdio: "inherit" });
|
|
39
|
-
}
|
|
40
|
-
if (packageManager === "yarn") {
|
|
41
|
-
yield execa("yarn", ["install"], { stdio: "inherit" });
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
export {
|
|
45
|
-
installByPackageManager,
|
|
46
|
-
removeLockFile
|
|
47
|
-
};
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var __async = (__this, __arguments, generator) => {
|
|
19
|
-
return new Promise((resolve, reject) => {
|
|
20
|
-
var fulfilled = (value) => {
|
|
21
|
-
try {
|
|
22
|
-
step(generator.next(value));
|
|
23
|
-
} catch (e) {
|
|
24
|
-
reject(e);
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
var rejected = (value) => {
|
|
28
|
-
try {
|
|
29
|
-
step(generator.throw(value));
|
|
30
|
-
} catch (e) {
|
|
31
|
-
reject(e);
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
35
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
|
-
var install_exports = {};
|
|
39
|
-
__export(install_exports, {
|
|
40
|
-
installCli: () => installCli
|
|
41
|
-
});
|
|
42
|
-
module.exports = __toCommonJS(install_exports);
|
|
43
|
-
var import_commands = require("../commands");
|
|
44
|
-
const installCli = (program, api) => {
|
|
45
|
-
program.command("install [project...]").usage("[options]").description("install deps for some projects").action(
|
|
46
|
-
(installProjectNames, option) => __async(void 0, null, function* () {
|
|
47
|
-
yield (0, import_commands.install)(installProjectNames, option, api);
|
|
48
|
-
})
|
|
49
|
-
);
|
|
50
|
-
};
|
|
51
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
52
|
-
0 && (module.exports = {
|
|
53
|
-
installCli
|
|
54
|
-
});
|
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __defProps = Object.defineProperties;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
-
var __spreadValues = (a, b) => {
|
|
13
|
-
for (var prop in b || (b = {}))
|
|
14
|
-
if (__hasOwnProp.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
if (__getOwnPropSymbols)
|
|
17
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
-
if (__propIsEnum.call(b, prop))
|
|
19
|
-
__defNormalProp(a, prop, b[prop]);
|
|
20
|
-
}
|
|
21
|
-
return a;
|
|
22
|
-
};
|
|
23
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
-
var __export = (target, all) => {
|
|
25
|
-
for (var name in all)
|
|
26
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
27
|
-
};
|
|
28
|
-
var __copyProps = (to, from, except, desc) => {
|
|
29
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
30
|
-
for (let key of __getOwnPropNames(from))
|
|
31
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
32
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
33
|
-
}
|
|
34
|
-
return to;
|
|
35
|
-
};
|
|
36
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
37
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
38
|
-
mod
|
|
39
|
-
));
|
|
40
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
41
|
-
var __async = (__this, __arguments, generator) => {
|
|
42
|
-
return new Promise((resolve, reject) => {
|
|
43
|
-
var fulfilled = (value) => {
|
|
44
|
-
try {
|
|
45
|
-
step(generator.next(value));
|
|
46
|
-
} catch (e) {
|
|
47
|
-
reject(e);
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
var rejected = (value) => {
|
|
51
|
-
try {
|
|
52
|
-
step(generator.throw(value));
|
|
53
|
-
} catch (e) {
|
|
54
|
-
reject(e);
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
58
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
59
|
-
});
|
|
60
|
-
};
|
|
61
|
-
var operator_exports = {};
|
|
62
|
-
__export(operator_exports, {
|
|
63
|
-
DagOperator: () => DagOperator
|
|
64
|
-
});
|
|
65
|
-
module.exports = __toCommonJS(operator_exports);
|
|
66
|
-
var import_p_map = __toESM(require("p-map"));
|
|
67
|
-
var import_error = require("../log/error");
|
|
68
|
-
var import_task = require("./task");
|
|
69
|
-
var import_edge_manager = require("./edge-manager");
|
|
70
|
-
var import_utils = require("./utils");
|
|
71
|
-
class DagOperator {
|
|
72
|
-
constructor(projects, projectsMap) {
|
|
73
|
-
this._createTask = (project, task) => (stopTask = () => void 0) => __async(this, null, function* () {
|
|
74
|
-
yield task(project, project.dependency || [], () => stopTask());
|
|
75
|
-
return project.name;
|
|
76
|
-
});
|
|
77
|
-
this._projects = projects;
|
|
78
|
-
this._projectsMap = projectsMap;
|
|
79
|
-
this._sortedProjects = [];
|
|
80
|
-
}
|
|
81
|
-
checkNodeDataExist(name) {
|
|
82
|
-
return this._projectsMap.has(name);
|
|
83
|
-
}
|
|
84
|
-
getNodeData(name, option = { checkExist: false }) {
|
|
85
|
-
if (option.checkExist) {
|
|
86
|
-
if (this._projectsMap.has(name)) {
|
|
87
|
-
return this._projectsMap.get(name);
|
|
88
|
-
} else {
|
|
89
|
-
(0, import_error.errorLog)(`No '${name}' project exist`);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return this._projectsMap.get(name);
|
|
93
|
-
}
|
|
94
|
-
getNodeDependencyData(name) {
|
|
95
|
-
var _a;
|
|
96
|
-
return ((_a = this._projectsMap.get(name)) == null ? void 0 : _a.dependency) || [];
|
|
97
|
-
}
|
|
98
|
-
getNodeDependentData(name) {
|
|
99
|
-
var _a;
|
|
100
|
-
return ((_a = this._projectsMap.get(name)) == null ? void 0 : _a.dependent) || [];
|
|
101
|
-
}
|
|
102
|
-
getNodeAllDependencyData(name, option = { skipCircleCheck: false }) {
|
|
103
|
-
const { skipCircleCheck } = option;
|
|
104
|
-
if (!skipCircleCheck) {
|
|
105
|
-
this.checkCircle();
|
|
106
|
-
}
|
|
107
|
-
if (!this._projectsMap.has(name)) {
|
|
108
|
-
(0, import_error.errorLog)(`No '${name}' project exist`);
|
|
109
|
-
}
|
|
110
|
-
const currentNode = this._projectsMap.get(name);
|
|
111
|
-
return (0, import_utils.recursiveGetDependency)(currentNode, skipCircleCheck);
|
|
112
|
-
}
|
|
113
|
-
setNodeData(name, task) {
|
|
114
|
-
if (this._projectsMap.has(name)) {
|
|
115
|
-
task(this._projectsMap.get(name));
|
|
116
|
-
} else {
|
|
117
|
-
(0, import_error.errorLog)(`No '${name}' project exist`);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
traverseAllNodes(task) {
|
|
121
|
-
return __async(this, null, function* () {
|
|
122
|
-
const sortedNodes = this._sortedProjects.length > 0 ? this._sortedProjects : (0, import_utils.sortProjects)(this._projects);
|
|
123
|
-
const finishTaskHash = {};
|
|
124
|
-
let preNodes = [];
|
|
125
|
-
let earlyFinish = false;
|
|
126
|
-
for (const projects of sortedNodes) {
|
|
127
|
-
if (earlyFinish) {
|
|
128
|
-
break;
|
|
129
|
-
}
|
|
130
|
-
yield (0, import_p_map.default)(
|
|
131
|
-
projects,
|
|
132
|
-
(project) => __async(this, null, function* () {
|
|
133
|
-
if (!finishTaskHash[project.name]) {
|
|
134
|
-
finishTaskHash[project.name] = true;
|
|
135
|
-
yield task(
|
|
136
|
-
project,
|
|
137
|
-
this._getProjectPreviousNode(project.dependent || [], preNodes),
|
|
138
|
-
() => earlyFinish = true
|
|
139
|
-
);
|
|
140
|
-
}
|
|
141
|
-
}),
|
|
142
|
-
{ concurrency: projects.length }
|
|
143
|
-
);
|
|
144
|
-
preNodes = [...projects];
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
checkCircle() {
|
|
149
|
-
this._checkForCyclicDependencies(this._projects, [], /* @__PURE__ */ new Set());
|
|
150
|
-
}
|
|
151
|
-
traverseDependenciesToProjectToDependent(_0, _1) {
|
|
152
|
-
return __async(this, arguments, function* (name, task, config = {}) {
|
|
153
|
-
yield this.traverseDependenciesToProject(name, task, config);
|
|
154
|
-
yield this.traverseProjectToDependent(name, task, __spreadProps(__spreadValues({}, config), {
|
|
155
|
-
withSelf: false
|
|
156
|
-
}));
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
traverseProjectToDependent(_0, _1) {
|
|
160
|
-
return __async(this, arguments, function* (name, task, { withSelf = false, runTaskConcurrency } = {}) {
|
|
161
|
-
if (!this._projectsMap.has(name)) {
|
|
162
|
-
(0, import_error.errorLog)(`No '${name}' project exist`);
|
|
163
|
-
}
|
|
164
|
-
const traverseTargetNode = this._projectsMap.get(name);
|
|
165
|
-
const leafNodeTasks = [
|
|
166
|
-
withSelf ? this._createTask(traverseTargetNode, task) : () => __async(this, null, function* () {
|
|
167
|
-
return Promise.resolve(traverseTargetNode.name);
|
|
168
|
-
})
|
|
169
|
-
];
|
|
170
|
-
const taskRunner = new import_task.TaskRunner(leafNodeTasks, {
|
|
171
|
-
concurrency: runTaskConcurrency
|
|
172
|
-
});
|
|
173
|
-
const edgeManager = new import_edge_manager.EdgeManager();
|
|
174
|
-
taskRunner.on(import_task.TaskRunner.TASK_FINISH, (projectName) => {
|
|
175
|
-
const projectNode = this.getNodeData(projectName);
|
|
176
|
-
const dependent = projectNode.dependent || [];
|
|
177
|
-
for (const dependentProject of dependent) {
|
|
178
|
-
const dependency = dependentProject.dependency || [];
|
|
179
|
-
const removeNodes = dependency.filter(
|
|
180
|
-
(dependencyProject) => ![projectName, ...dependent.map((p) => p.name)].includes(
|
|
181
|
-
dependencyProject.name
|
|
182
|
-
)
|
|
183
|
-
);
|
|
184
|
-
edgeManager.reduceEdges(dependentProject, removeNodes.length + 1);
|
|
185
|
-
if (edgeManager.getEdge(dependentProject) === 0) {
|
|
186
|
-
taskRunner.addTask(this._createTask(dependentProject, task));
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
});
|
|
190
|
-
yield taskRunner.run();
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
traverseDependenciesToProject(_0, _1) {
|
|
194
|
-
return __async(this, arguments, function* (name, task, { withSelf = false, runTaskConcurrency } = {}) {
|
|
195
|
-
if (!this._projectsMap.has(name)) {
|
|
196
|
-
(0, import_error.errorLog)(`No '${name}' project exist`);
|
|
197
|
-
}
|
|
198
|
-
const traverseTargetNode = this._projectsMap.get(name);
|
|
199
|
-
const leafNodes = this._getDependencyLeafNodes(traverseTargetNode);
|
|
200
|
-
if ((leafNodes == null ? void 0 : leafNodes.length) === 0) {
|
|
201
|
-
yield this._createTask(traverseTargetNode, task)();
|
|
202
|
-
return;
|
|
203
|
-
}
|
|
204
|
-
const leafNodeTasks = leafNodes.map(
|
|
205
|
-
(project) => this._createTask(project, task)
|
|
206
|
-
);
|
|
207
|
-
const taskRunner = new import_task.TaskRunner(leafNodeTasks, {
|
|
208
|
-
concurrency: runTaskConcurrency
|
|
209
|
-
});
|
|
210
|
-
const edgeManager = new import_edge_manager.EdgeManager();
|
|
211
|
-
taskRunner.on(import_task.TaskRunner.TASK_FINISH, (projectName) => {
|
|
212
|
-
const projectNode = this.getNodeData(projectName);
|
|
213
|
-
const dependent = projectNode.dependent || [];
|
|
214
|
-
for (const dependentProject of dependent) {
|
|
215
|
-
if (![traverseTargetNode, ...leafNodes].some(
|
|
216
|
-
(n) => n.name === dependentProject.name
|
|
217
|
-
)) {
|
|
218
|
-
continue;
|
|
219
|
-
}
|
|
220
|
-
edgeManager.reduceOneEdge(dependentProject);
|
|
221
|
-
if (dependentProject.name === traverseTargetNode.name && !withSelf) {
|
|
222
|
-
continue;
|
|
223
|
-
}
|
|
224
|
-
if (edgeManager.getEdge(dependentProject) === 0) {
|
|
225
|
-
taskRunner.addTask(this._createTask(dependentProject, task));
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
});
|
|
229
|
-
yield taskRunner.run();
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
_checkForCyclicDependencies(projects, dependencyChain, alreadyCheckedProjects) {
|
|
233
|
-
for (const project of projects) {
|
|
234
|
-
if (dependencyChain.includes(project.name)) {
|
|
235
|
-
throw new Error(
|
|
236
|
-
`${"A cyclic dependency was encountered:\n"} ${[
|
|
237
|
-
...dependencyChain,
|
|
238
|
-
project.name
|
|
239
|
-
].reverse().join("\n -> ")}
|
|
240
|
-
`
|
|
241
|
-
);
|
|
242
|
-
}
|
|
243
|
-
if (!alreadyCheckedProjects.has(project.name)) {
|
|
244
|
-
alreadyCheckedProjects.add(project.name);
|
|
245
|
-
dependencyChain.push(project.name);
|
|
246
|
-
this._checkForCyclicDependencies(
|
|
247
|
-
project.dependent,
|
|
248
|
-
dependencyChain,
|
|
249
|
-
alreadyCheckedProjects
|
|
250
|
-
);
|
|
251
|
-
dependencyChain.pop();
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
_getDependencyLeafNodes(node) {
|
|
256
|
-
const dependency = node.dependency;
|
|
257
|
-
if (dependency.length === 0) {
|
|
258
|
-
return [];
|
|
259
|
-
}
|
|
260
|
-
let leafNodes = [...dependency];
|
|
261
|
-
for (const dependencyNode of dependency) {
|
|
262
|
-
leafNodes = [
|
|
263
|
-
...leafNodes,
|
|
264
|
-
...this._getDependencyLeafNodes(dependencyNode)
|
|
265
|
-
];
|
|
266
|
-
}
|
|
267
|
-
return leafNodes;
|
|
268
|
-
}
|
|
269
|
-
_getProjectPreviousNode(searchProjects, preNodes) {
|
|
270
|
-
return searchProjects.filter(
|
|
271
|
-
(p) => preNodes.map((preP) => preP.name).includes(p.name)
|
|
272
|
-
);
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
276
|
-
0 && (module.exports = {
|
|
277
|
-
DagOperator
|
|
278
|
-
});
|