@modern-js/monorepo-tools 2.4.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 +24 -0
- 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,36 +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 { deploy } from "../commands";
|
|
22
|
-
const deployCli = (program, api) => {
|
|
23
|
-
program.command("deploy [project...]").usage("[options]").option(
|
|
24
|
-
"-p, --path [path]",
|
|
25
|
-
"Specify the path of the product output",
|
|
26
|
-
"output"
|
|
27
|
-
).description("deploy project").action(
|
|
28
|
-
(deployProjectNames, option) => __async(void 0, null, function* () {
|
|
29
|
-
const ignoreMatchs = ["**/output/**"];
|
|
30
|
-
yield deploy(api, deployProjectNames, option, ignoreMatchs);
|
|
31
|
-
})
|
|
32
|
-
);
|
|
33
|
-
};
|
|
34
|
-
export {
|
|
35
|
-
deployCli
|
|
36
|
-
};
|
|
@@ -1,31 +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 { install } from "../commands";
|
|
22
|
-
const installCli = (program, api) => {
|
|
23
|
-
program.command("install [project...]").usage("[options]").description("install deps for some projects").action(
|
|
24
|
-
(installProjectNames, option) => __async(void 0, null, function* () {
|
|
25
|
-
yield install(installProjectNames, option, api);
|
|
26
|
-
})
|
|
27
|
-
);
|
|
28
|
-
};
|
|
29
|
-
export {
|
|
30
|
-
installCli
|
|
31
|
-
};
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
-
var __spreadValues = (a, b) => {
|
|
9
|
-
for (var prop in b || (b = {}))
|
|
10
|
-
if (__hasOwnProp.call(b, prop))
|
|
11
|
-
__defNormalProp(a, prop, b[prop]);
|
|
12
|
-
if (__getOwnPropSymbols)
|
|
13
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
}
|
|
17
|
-
return a;
|
|
18
|
-
};
|
|
19
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
var __async = (__this, __arguments, generator) => {
|
|
21
|
-
return new Promise((resolve, reject) => {
|
|
22
|
-
var fulfilled = (value) => {
|
|
23
|
-
try {
|
|
24
|
-
step(generator.next(value));
|
|
25
|
-
} catch (e) {
|
|
26
|
-
reject(e);
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
var rejected = (value) => {
|
|
30
|
-
try {
|
|
31
|
-
step(generator.throw(value));
|
|
32
|
-
} catch (e) {
|
|
33
|
-
reject(e);
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
37
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
38
|
-
});
|
|
39
|
-
};
|
|
40
|
-
import { MonorepoNewAction } from "@modern-js/new-action";
|
|
41
|
-
import { i18n, localeKeys } from "../locale";
|
|
42
|
-
const newCli = (program, locale) => {
|
|
43
|
-
program.command("new").usage("[options]").description(i18n.t(localeKeys.command.new.describe)).option("-d, --debug", i18n.t(localeKeys.command.new.debug), false).option("-c, --config <config>", i18n.t(localeKeys.command.new.config)).option(
|
|
44
|
-
"-p, --plugin <plugin>",
|
|
45
|
-
i18n.t(localeKeys.command.new.plugin),
|
|
46
|
-
(val, memo) => {
|
|
47
|
-
memo.push(val);
|
|
48
|
-
return memo;
|
|
49
|
-
},
|
|
50
|
-
[]
|
|
51
|
-
).option("--lang <lang>", i18n.t(localeKeys.command.new.lang)).option("--dist-tag <tag>", i18n.t(localeKeys.command.new.distTag)).option("--registry", i18n.t(localeKeys.command.new.registry)).action((options) => __async(void 0, null, function* () {
|
|
52
|
-
yield MonorepoNewAction(__spreadProps(__spreadValues({}, options), { locale: options.lang || locale }));
|
|
53
|
-
}));
|
|
54
|
-
};
|
|
55
|
-
export {
|
|
56
|
-
newCli
|
|
57
|
-
};
|
|
@@ -1,44 +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 { getMonorepoBaseData } from "../parse-config/monorepo";
|
|
22
|
-
import { runBuildWatchTask } from "../features/dev";
|
|
23
|
-
import { getProjects } from "../projects/get-projects";
|
|
24
|
-
import { initDAG } from "../dag";
|
|
25
|
-
const buildWatch = (targetProjectName, option, api) => __async(void 0, null, function* () {
|
|
26
|
-
const { appDirectory } = api.useAppContext();
|
|
27
|
-
const { onlySelf = false, init = false } = option;
|
|
28
|
-
const projects = yield getProjects(
|
|
29
|
-
{ packagesMatchs: { enableAutoFinder: true } },
|
|
30
|
-
appDirectory
|
|
31
|
-
);
|
|
32
|
-
const operator = initDAG(projects);
|
|
33
|
-
operator.checkCircle();
|
|
34
|
-
const { rootPath, packageManager } = getMonorepoBaseData(process.cwd());
|
|
35
|
-
yield runBuildWatchTask(targetProjectName, operator, {
|
|
36
|
-
rootPath,
|
|
37
|
-
packageManager,
|
|
38
|
-
onlySelf,
|
|
39
|
-
needInit: init
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
export {
|
|
43
|
-
buildWatch
|
|
44
|
-
};
|
|
@@ -1,90 +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 { getMonorepoBaseData } from "../parse-config/monorepo";
|
|
38
|
-
import { runBuildTask, runAllBuildTask } from "../features/build";
|
|
39
|
-
import { getProjects } from "../projects/get-projects";
|
|
40
|
-
import { initDAG } from "../dag";
|
|
41
|
-
const build = (targetProjectName, option, api) => __async(void 0, null, function* () {
|
|
42
|
-
const { appDirectory } = api.useAppContext();
|
|
43
|
-
const {
|
|
44
|
-
self = true,
|
|
45
|
-
dept = false,
|
|
46
|
-
deps = true,
|
|
47
|
-
onlySelf = false,
|
|
48
|
-
all = false,
|
|
49
|
-
contentHash = false,
|
|
50
|
-
gitHash = false
|
|
51
|
-
} = option;
|
|
52
|
-
const projects = yield getProjects(
|
|
53
|
-
{ packagesMatchs: { enableAutoFinder: true } },
|
|
54
|
-
appDirectory
|
|
55
|
-
);
|
|
56
|
-
const operator = initDAG(projects);
|
|
57
|
-
operator.checkCircle();
|
|
58
|
-
const { rootPath, packageManager } = getMonorepoBaseData(appDirectory);
|
|
59
|
-
const overrideConfig = {};
|
|
60
|
-
if (all) {
|
|
61
|
-
overrideConfig.disableWithDeps = false;
|
|
62
|
-
overrideConfig.withSelf = true;
|
|
63
|
-
overrideConfig.withDept = true;
|
|
64
|
-
}
|
|
65
|
-
if (targetProjectName) {
|
|
66
|
-
runBuildTask(targetProjectName, operator, __spreadValues({
|
|
67
|
-
rootPath,
|
|
68
|
-
packageManager,
|
|
69
|
-
withSelf: self,
|
|
70
|
-
withDept: dept,
|
|
71
|
-
onlySelf,
|
|
72
|
-
disableWithDeps: !deps,
|
|
73
|
-
disableContentHash: !contentHash,
|
|
74
|
-
enableGitHash: gitHash
|
|
75
|
-
}, overrideConfig));
|
|
76
|
-
} else {
|
|
77
|
-
const currentDir = process.cwd();
|
|
78
|
-
if (currentDir === appDirectory) {
|
|
79
|
-
yield runAllBuildTask(operator, {
|
|
80
|
-
rootPath: currentDir,
|
|
81
|
-
packageManager,
|
|
82
|
-
disableContentHash: !contentHash,
|
|
83
|
-
enableGitHash: gitHash
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
export {
|
|
89
|
-
build
|
|
90
|
-
};
|
|
@@ -1,39 +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 { getProjects } from "../projects/get-projects";
|
|
22
|
-
import { getMonorepoBaseData } from "../parse-config/monorepo";
|
|
23
|
-
import { runClearTask } from "../features/clear";
|
|
24
|
-
const clear = (projectNames, option, api) => __async(void 0, null, function* () {
|
|
25
|
-
const { removeDirs } = option;
|
|
26
|
-
const { appDirectory } = api.useAppContext();
|
|
27
|
-
const projects = yield getProjects(
|
|
28
|
-
{ packagesMatchs: { enableAutoFinder: true } },
|
|
29
|
-
appDirectory
|
|
30
|
-
);
|
|
31
|
-
const { rootPath } = getMonorepoBaseData(appDirectory);
|
|
32
|
-
runClearTask(projectNames, projects, {
|
|
33
|
-
rootPath,
|
|
34
|
-
removeDirs
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
export {
|
|
38
|
-
clear
|
|
39
|
-
};
|
|
@@ -1,43 +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 { runInstallTask } from "../features/install";
|
|
22
|
-
import { getMonorepoBaseData } from "../parse-config/monorepo";
|
|
23
|
-
import { getProjects } from "../projects/get-projects";
|
|
24
|
-
import { initDAG } from "../dag";
|
|
25
|
-
const install = (..._0) => __async(void 0, [..._0], function* (projectNames = [], option, api) {
|
|
26
|
-
const { appDirectory } = api.useAppContext();
|
|
27
|
-
const { auto } = option;
|
|
28
|
-
const projects = yield getProjects(
|
|
29
|
-
{ packagesMatchs: { enableAutoFinder: true } },
|
|
30
|
-
appDirectory
|
|
31
|
-
);
|
|
32
|
-
const operator = initDAG(projects);
|
|
33
|
-
operator.checkCircle();
|
|
34
|
-
const { rootPath, packageManager } = getMonorepoBaseData(appDirectory);
|
|
35
|
-
yield runInstallTask(projectNames, operator, {
|
|
36
|
-
packageManager,
|
|
37
|
-
rootPath,
|
|
38
|
-
auto
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
export {
|
|
42
|
-
install
|
|
43
|
-
};
|
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
-
var __spreadValues = (a, b) => {
|
|
9
|
-
for (var prop in b || (b = {}))
|
|
10
|
-
if (__hasOwnProp.call(b, prop))
|
|
11
|
-
__defNormalProp(a, prop, b[prop]);
|
|
12
|
-
if (__getOwnPropSymbols)
|
|
13
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
}
|
|
17
|
-
return a;
|
|
18
|
-
};
|
|
19
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
var __async = (__this, __arguments, generator) => {
|
|
21
|
-
return new Promise((resolve, reject) => {
|
|
22
|
-
var fulfilled = (value) => {
|
|
23
|
-
try {
|
|
24
|
-
step(generator.next(value));
|
|
25
|
-
} catch (e) {
|
|
26
|
-
reject(e);
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
var rejected = (value) => {
|
|
30
|
-
try {
|
|
31
|
-
step(generator.throw(value));
|
|
32
|
-
} catch (e) {
|
|
33
|
-
reject(e);
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
37
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
38
|
-
});
|
|
39
|
-
};
|
|
40
|
-
import pMap from "p-map";
|
|
41
|
-
import { errorLog } from "../log/error";
|
|
42
|
-
import { TaskRunner } from "./task";
|
|
43
|
-
import { EdgeManager } from "./edge-manager";
|
|
44
|
-
import { recursiveGetDependency, sortProjects } from "./utils";
|
|
45
|
-
class DagOperator {
|
|
46
|
-
constructor(projects, projectsMap) {
|
|
47
|
-
this._createTask = (project, task) => (stopTask = () => void 0) => __async(this, null, function* () {
|
|
48
|
-
yield task(project, project.dependency || [], () => stopTask());
|
|
49
|
-
return project.name;
|
|
50
|
-
});
|
|
51
|
-
this._projects = projects;
|
|
52
|
-
this._projectsMap = projectsMap;
|
|
53
|
-
this._sortedProjects = [];
|
|
54
|
-
}
|
|
55
|
-
checkNodeDataExist(name) {
|
|
56
|
-
return this._projectsMap.has(name);
|
|
57
|
-
}
|
|
58
|
-
getNodeData(name, option = { checkExist: false }) {
|
|
59
|
-
if (option.checkExist) {
|
|
60
|
-
if (this._projectsMap.has(name)) {
|
|
61
|
-
return this._projectsMap.get(name);
|
|
62
|
-
} else {
|
|
63
|
-
errorLog(`No '${name}' project exist`);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return this._projectsMap.get(name);
|
|
67
|
-
}
|
|
68
|
-
getNodeDependencyData(name) {
|
|
69
|
-
var _a;
|
|
70
|
-
return ((_a = this._projectsMap.get(name)) == null ? void 0 : _a.dependency) || [];
|
|
71
|
-
}
|
|
72
|
-
getNodeDependentData(name) {
|
|
73
|
-
var _a;
|
|
74
|
-
return ((_a = this._projectsMap.get(name)) == null ? void 0 : _a.dependent) || [];
|
|
75
|
-
}
|
|
76
|
-
getNodeAllDependencyData(name, option = { skipCircleCheck: false }) {
|
|
77
|
-
const { skipCircleCheck } = option;
|
|
78
|
-
if (!skipCircleCheck) {
|
|
79
|
-
this.checkCircle();
|
|
80
|
-
}
|
|
81
|
-
if (!this._projectsMap.has(name)) {
|
|
82
|
-
errorLog(`No '${name}' project exist`);
|
|
83
|
-
}
|
|
84
|
-
const currentNode = this._projectsMap.get(name);
|
|
85
|
-
return recursiveGetDependency(currentNode, skipCircleCheck);
|
|
86
|
-
}
|
|
87
|
-
setNodeData(name, task) {
|
|
88
|
-
if (this._projectsMap.has(name)) {
|
|
89
|
-
task(this._projectsMap.get(name));
|
|
90
|
-
} else {
|
|
91
|
-
errorLog(`No '${name}' project exist`);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
traverseAllNodes(task) {
|
|
95
|
-
return __async(this, null, function* () {
|
|
96
|
-
const sortedNodes = this._sortedProjects.length > 0 ? this._sortedProjects : sortProjects(this._projects);
|
|
97
|
-
const finishTaskHash = {};
|
|
98
|
-
let preNodes = [];
|
|
99
|
-
let earlyFinish = false;
|
|
100
|
-
for (const projects of sortedNodes) {
|
|
101
|
-
if (earlyFinish) {
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
yield pMap(
|
|
105
|
-
projects,
|
|
106
|
-
(project) => __async(this, null, function* () {
|
|
107
|
-
if (!finishTaskHash[project.name]) {
|
|
108
|
-
finishTaskHash[project.name] = true;
|
|
109
|
-
yield task(
|
|
110
|
-
project,
|
|
111
|
-
this._getProjectPreviousNode(project.dependent || [], preNodes),
|
|
112
|
-
() => earlyFinish = true
|
|
113
|
-
);
|
|
114
|
-
}
|
|
115
|
-
}),
|
|
116
|
-
{ concurrency: projects.length }
|
|
117
|
-
);
|
|
118
|
-
preNodes = [...projects];
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
checkCircle() {
|
|
123
|
-
this._checkForCyclicDependencies(this._projects, [], /* @__PURE__ */ new Set());
|
|
124
|
-
}
|
|
125
|
-
traverseDependenciesToProjectToDependent(_0, _1) {
|
|
126
|
-
return __async(this, arguments, function* (name, task, config = {}) {
|
|
127
|
-
yield this.traverseDependenciesToProject(name, task, config);
|
|
128
|
-
yield this.traverseProjectToDependent(name, task, __spreadProps(__spreadValues({}, config), {
|
|
129
|
-
withSelf: false
|
|
130
|
-
}));
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
traverseProjectToDependent(_0, _1) {
|
|
134
|
-
return __async(this, arguments, function* (name, task, { withSelf = false, runTaskConcurrency } = {}) {
|
|
135
|
-
if (!this._projectsMap.has(name)) {
|
|
136
|
-
errorLog(`No '${name}' project exist`);
|
|
137
|
-
}
|
|
138
|
-
const traverseTargetNode = this._projectsMap.get(name);
|
|
139
|
-
const leafNodeTasks = [
|
|
140
|
-
withSelf ? this._createTask(traverseTargetNode, task) : () => __async(this, null, function* () {
|
|
141
|
-
return Promise.resolve(traverseTargetNode.name);
|
|
142
|
-
})
|
|
143
|
-
];
|
|
144
|
-
const taskRunner = new TaskRunner(leafNodeTasks, {
|
|
145
|
-
concurrency: runTaskConcurrency
|
|
146
|
-
});
|
|
147
|
-
const edgeManager = new EdgeManager();
|
|
148
|
-
taskRunner.on(TaskRunner.TASK_FINISH, (projectName) => {
|
|
149
|
-
const projectNode = this.getNodeData(projectName);
|
|
150
|
-
const dependent = projectNode.dependent || [];
|
|
151
|
-
for (const dependentProject of dependent) {
|
|
152
|
-
const dependency = dependentProject.dependency || [];
|
|
153
|
-
const removeNodes = dependency.filter(
|
|
154
|
-
(dependencyProject) => ![projectName, ...dependent.map((p) => p.name)].includes(
|
|
155
|
-
dependencyProject.name
|
|
156
|
-
)
|
|
157
|
-
);
|
|
158
|
-
edgeManager.reduceEdges(dependentProject, removeNodes.length + 1);
|
|
159
|
-
if (edgeManager.getEdge(dependentProject) === 0) {
|
|
160
|
-
taskRunner.addTask(this._createTask(dependentProject, task));
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
yield taskRunner.run();
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
traverseDependenciesToProject(_0, _1) {
|
|
168
|
-
return __async(this, arguments, function* (name, task, { withSelf = false, runTaskConcurrency } = {}) {
|
|
169
|
-
if (!this._projectsMap.has(name)) {
|
|
170
|
-
errorLog(`No '${name}' project exist`);
|
|
171
|
-
}
|
|
172
|
-
const traverseTargetNode = this._projectsMap.get(name);
|
|
173
|
-
const leafNodes = this._getDependencyLeafNodes(traverseTargetNode);
|
|
174
|
-
if ((leafNodes == null ? void 0 : leafNodes.length) === 0) {
|
|
175
|
-
yield this._createTask(traverseTargetNode, task)();
|
|
176
|
-
return;
|
|
177
|
-
}
|
|
178
|
-
const leafNodeTasks = leafNodes.map(
|
|
179
|
-
(project) => this._createTask(project, task)
|
|
180
|
-
);
|
|
181
|
-
const taskRunner = new TaskRunner(leafNodeTasks, {
|
|
182
|
-
concurrency: runTaskConcurrency
|
|
183
|
-
});
|
|
184
|
-
const edgeManager = new EdgeManager();
|
|
185
|
-
taskRunner.on(TaskRunner.TASK_FINISH, (projectName) => {
|
|
186
|
-
const projectNode = this.getNodeData(projectName);
|
|
187
|
-
const dependent = projectNode.dependent || [];
|
|
188
|
-
for (const dependentProject of dependent) {
|
|
189
|
-
if (![traverseTargetNode, ...leafNodes].some(
|
|
190
|
-
(n) => n.name === dependentProject.name
|
|
191
|
-
)) {
|
|
192
|
-
continue;
|
|
193
|
-
}
|
|
194
|
-
edgeManager.reduceOneEdge(dependentProject);
|
|
195
|
-
if (dependentProject.name === traverseTargetNode.name && !withSelf) {
|
|
196
|
-
continue;
|
|
197
|
-
}
|
|
198
|
-
if (edgeManager.getEdge(dependentProject) === 0) {
|
|
199
|
-
taskRunner.addTask(this._createTask(dependentProject, task));
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
});
|
|
203
|
-
yield taskRunner.run();
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
_checkForCyclicDependencies(projects, dependencyChain, alreadyCheckedProjects) {
|
|
207
|
-
for (const project of projects) {
|
|
208
|
-
if (dependencyChain.includes(project.name)) {
|
|
209
|
-
throw new Error(
|
|
210
|
-
`${"A cyclic dependency was encountered:\n"} ${[
|
|
211
|
-
...dependencyChain,
|
|
212
|
-
project.name
|
|
213
|
-
].reverse().join("\n -> ")}
|
|
214
|
-
`
|
|
215
|
-
);
|
|
216
|
-
}
|
|
217
|
-
if (!alreadyCheckedProjects.has(project.name)) {
|
|
218
|
-
alreadyCheckedProjects.add(project.name);
|
|
219
|
-
dependencyChain.push(project.name);
|
|
220
|
-
this._checkForCyclicDependencies(
|
|
221
|
-
project.dependent,
|
|
222
|
-
dependencyChain,
|
|
223
|
-
alreadyCheckedProjects
|
|
224
|
-
);
|
|
225
|
-
dependencyChain.pop();
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
_getDependencyLeafNodes(node) {
|
|
230
|
-
const dependency = node.dependency;
|
|
231
|
-
if (dependency.length === 0) {
|
|
232
|
-
return [];
|
|
233
|
-
}
|
|
234
|
-
let leafNodes = [...dependency];
|
|
235
|
-
for (const dependencyNode of dependency) {
|
|
236
|
-
leafNodes = [
|
|
237
|
-
...leafNodes,
|
|
238
|
-
...this._getDependencyLeafNodes(dependencyNode)
|
|
239
|
-
];
|
|
240
|
-
}
|
|
241
|
-
return leafNodes;
|
|
242
|
-
}
|
|
243
|
-
_getProjectPreviousNode(searchProjects, preNodes) {
|
|
244
|
-
return searchProjects.filter(
|
|
245
|
-
(p) => preNodes.map((preP) => preP.name).includes(p.name)
|
|
246
|
-
);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
export {
|
|
250
|
-
DagOperator
|
|
251
|
-
};
|
|
@@ -1,79 +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 { EventEmitter } from "events";
|
|
22
|
-
import pMap from "p-map";
|
|
23
|
-
const _TaskRunner = class extends EventEmitter {
|
|
24
|
-
constructor(tasks, { concurrency }) {
|
|
25
|
-
super();
|
|
26
|
-
this._tasks = tasks;
|
|
27
|
-
this._concurrency = concurrency || _TaskRunner.DefaultConcurrency;
|
|
28
|
-
this._usableConcurrency = this._concurrency;
|
|
29
|
-
this._stopFlag = false;
|
|
30
|
-
}
|
|
31
|
-
run() {
|
|
32
|
-
return __async(this, null, function* () {
|
|
33
|
-
const tasks = this._tasks.splice(0, this._concurrency);
|
|
34
|
-
this._usableConcurrency = this._concurrency - tasks.length;
|
|
35
|
-
yield pMap(
|
|
36
|
-
tasks,
|
|
37
|
-
(task) => __async(this, null, function* () {
|
|
38
|
-
yield this._runTask(task);
|
|
39
|
-
}),
|
|
40
|
-
{ concurrency: tasks.length }
|
|
41
|
-
);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
addTask(task) {
|
|
45
|
-
this._tasks.push(task);
|
|
46
|
-
}
|
|
47
|
-
_runTask(task) {
|
|
48
|
-
return __async(this, null, function* () {
|
|
49
|
-
if (this._stopFlag) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
const emitValue = yield task(this._stopTask.bind(this));
|
|
53
|
-
this._usableConcurrency--;
|
|
54
|
-
this.emit(_TaskRunner.TASK_FINISH, emitValue);
|
|
55
|
-
if (this._tasks.length > 0) {
|
|
56
|
-
const nextTasks = this._tasks.splice(0, this._usableConcurrency);
|
|
57
|
-
this._usableConcurrency -= nextTasks.length;
|
|
58
|
-
if (nextTasks.length > 0) {
|
|
59
|
-
yield pMap(
|
|
60
|
-
nextTasks,
|
|
61
|
-
(_task) => __async(this, null, function* () {
|
|
62
|
-
yield this._runTask(_task);
|
|
63
|
-
}),
|
|
64
|
-
{ concurrency: nextTasks.length }
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
_stopTask() {
|
|
71
|
-
this._stopFlag = true;
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
let TaskRunner = _TaskRunner;
|
|
75
|
-
TaskRunner.DefaultConcurrency = 10;
|
|
76
|
-
TaskRunner.TASK_FINISH = "task-finish";
|
|
77
|
-
export {
|
|
78
|
-
TaskRunner
|
|
79
|
-
};
|