ic-mops 1.12.0 → 2.0.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/.DS_Store +0 -0
- package/.eslintrc.json +7 -7
- package/CHANGELOG.md +6 -0
- package/api/actors.ts +41 -37
- package/api/downloadPackageFiles.ts +75 -61
- package/api/getHighestVersion.ts +5 -5
- package/api/index.ts +4 -4
- package/api/network.ts +19 -21
- package/api/resolveVersion.ts +14 -11
- package/bin/mops.js +1 -1
- package/bundle/bench/bench-canister.mo +109 -101
- package/bundle/bench/user-bench.mo +6 -6
- package/bundle/bin/mops.js +1 -1
- package/bundle/cli.js +797 -792
- package/bundle/cli.tgz +0 -0
- package/bundle/package.json +6 -5
- package/bundle/templates/mops-publish.yml +3 -3
- package/bundle/templates/mops-test.yml +3 -3
- package/bundle/templates/src/lib.mo +13 -13
- package/bundle/templates/test/lib.test.mo +2 -2
- package/bundle-package-json.ts +8 -8
- package/cache.ts +80 -65
- package/check-requirements.ts +49 -45
- package/cli.ts +577 -376
- package/commands/add.ts +142 -129
- package/commands/available-updates.ts +55 -41
- package/commands/bench/bench-canister.mo +114 -108
- package/commands/bench/user-bench.mo +6 -6
- package/commands/bench-replica.ts +146 -118
- package/commands/bench.ts +563 -497
- package/commands/build.ts +177 -0
- package/commands/bump.ts +68 -57
- package/commands/check-candid.ts +24 -0
- package/commands/docs-coverage.ts +124 -102
- package/commands/docs.ts +118 -108
- package/commands/format.ts +171 -155
- package/commands/init.ts +301 -275
- package/commands/install/install-all.ts +75 -62
- package/commands/install/install-dep.ts +43 -28
- package/commands/install/install-deps.ts +23 -15
- package/commands/install/install-local-dep.ts +42 -34
- package/commands/install/install-mops-dep.ts +154 -123
- package/commands/install/sync-local-cache.ts +39 -35
- package/commands/maintainer.ts +109 -99
- package/commands/outdated.ts +30 -24
- package/commands/owner.ts +107 -99
- package/commands/publish.ts +534 -443
- package/commands/remove.ts +119 -89
- package/commands/replica.ts +391 -316
- package/commands/search.ts +42 -36
- package/commands/self.ts +63 -56
- package/commands/sources.ts +66 -49
- package/commands/sync.ts +92 -75
- package/commands/template.ts +145 -102
- package/commands/test/mmf1.ts +146 -119
- package/commands/test/reporters/compact-reporter.ts +87 -84
- package/commands/test/reporters/files-reporter.ts +56 -51
- package/commands/test/reporters/reporter.ts +12 -6
- package/commands/test/reporters/silent-reporter.ts +58 -59
- package/commands/test/reporters/verbose-reporter.ts +66 -54
- package/commands/test/test.ts +498 -401
- package/commands/test/utils.ts +72 -67
- package/commands/toolchain/index.ts +363 -322
- package/commands/toolchain/moc.ts +78 -50
- package/commands/toolchain/pocket-ic.ts +41 -34
- package/commands/toolchain/toolchain-utils.ts +92 -72
- package/commands/toolchain/wasmtime.ts +37 -34
- package/commands/update.ts +82 -64
- package/commands/user.ts +90 -81
- package/commands/watch/deployer.ts +188 -152
- package/commands/watch/error-checker.ts +90 -80
- package/commands/watch/formatter.ts +72 -60
- package/commands/watch/generator.ts +116 -96
- package/commands/watch/globMoFiles.ts +13 -13
- package/commands/watch/parseDfxJson.ts +63 -57
- package/commands/watch/tester.ts +83 -65
- package/commands/watch/warning-checker.ts +149 -136
- package/commands/watch/watch.ts +123 -95
- package/dist/api/actors.d.ts +4 -4
- package/dist/api/actors.js +8 -8
- package/dist/api/downloadPackageFiles.d.ts +2 -2
- package/dist/api/downloadPackageFiles.js +10 -10
- package/dist/api/getHighestVersion.js +1 -1
- package/dist/api/index.d.ts +4 -4
- package/dist/api/index.js +4 -4
- package/dist/api/network.js +9 -9
- package/dist/api/resolveVersion.js +3 -3
- package/dist/bin/mops.js +1 -1
- package/dist/bundle-package-json.js +8 -8
- package/dist/cache.js +22 -17
- package/dist/check-requirements.js +11 -11
- package/dist/cli.js +283 -186
- package/dist/commands/add.d.ts +1 -1
- package/dist/commands/add.js +40 -37
- package/dist/commands/available-updates.d.ts +1 -1
- package/dist/commands/available-updates.js +18 -12
- package/dist/commands/bench/bench-canister.mo +114 -108
- package/dist/commands/bench/user-bench.mo +6 -6
- package/dist/commands/bench-replica.d.ts +4 -4
- package/dist/commands/bench-replica.js +45 -34
- package/dist/commands/bench.d.ts +5 -5
- package/dist/commands/bench.js +134 -118
- package/dist/commands/build.d.ts +7 -0
- package/dist/commands/build.js +121 -0
- package/dist/commands/bump.js +27 -18
- package/dist/commands/check-candid.d.ts +4 -0
- package/dist/commands/check-candid.js +15 -0
- package/dist/commands/docs-coverage.d.ts +1 -1
- package/dist/commands/docs-coverage.js +45 -31
- package/dist/commands/docs.d.ts +1 -1
- package/dist/commands/docs.js +39 -38
- package/dist/commands/format.js +31 -27
- package/dist/commands/init.js +102 -92
- package/dist/commands/install/install-all.d.ts +2 -2
- package/dist/commands/install/install-all.js +23 -21
- package/dist/commands/install/install-dep.d.ts +1 -1
- package/dist/commands/install/install-dep.js +21 -8
- package/dist/commands/install/install-deps.d.ts +1 -1
- package/dist/commands/install/install-deps.js +1 -1
- package/dist/commands/install/install-local-dep.js +11 -9
- package/dist/commands/install/install-mops-dep.d.ts +1 -1
- package/dist/commands/install/install-mops-dep.js +32 -27
- package/dist/commands/install/sync-local-cache.js +10 -10
- package/dist/commands/maintainer.js +21 -21
- package/dist/commands/outdated.js +12 -8
- package/dist/commands/owner.js +21 -21
- package/dist/commands/publish.js +148 -128
- package/dist/commands/remove.d.ts +1 -1
- package/dist/commands/remove.js +42 -30
- package/dist/commands/replica.d.ts +7 -7
- package/dist/commands/replica.js +85 -57
- package/dist/commands/search.js +15 -13
- package/dist/commands/self.js +31 -28
- package/dist/commands/sources.d.ts +5 -1
- package/dist/commands/sources.js +23 -17
- package/dist/commands/sync.d.ts +1 -1
- package/dist/commands/sync.js +38 -25
- package/dist/commands/template.js +66 -56
- package/dist/commands/test/mmf1.d.ts +3 -3
- package/dist/commands/test/mmf1.js +33 -31
- package/dist/commands/test/reporters/compact-reporter.d.ts +3 -3
- package/dist/commands/test/reporters/compact-reporter.js +19 -15
- package/dist/commands/test/reporters/files-reporter.d.ts +3 -3
- package/dist/commands/test/reporters/files-reporter.js +18 -14
- package/dist/commands/test/reporters/reporter.d.ts +2 -2
- package/dist/commands/test/reporters/silent-reporter.d.ts +3 -3
- package/dist/commands/test/reporters/silent-reporter.js +4 -4
- package/dist/commands/test/reporters/verbose-reporter.d.ts +3 -3
- package/dist/commands/test/reporters/verbose-reporter.js +17 -13
- package/dist/commands/test/test.d.ts +4 -4
- package/dist/commands/test/test.js +134 -112
- package/dist/commands/test/utils.d.ts +3 -3
- package/dist/commands/test/utils.js +17 -17
- package/dist/commands/toolchain/index.d.ts +1 -1
- package/dist/commands/toolchain/index.js +81 -69
- package/dist/commands/toolchain/moc.d.ts +1 -1
- package/dist/commands/toolchain/moc.js +48 -24
- package/dist/commands/toolchain/pocket-ic.js +12 -12
- package/dist/commands/toolchain/toolchain-utils.d.ts +2 -0
- package/dist/commands/toolchain/toolchain-utils.js +32 -23
- package/dist/commands/toolchain/wasmtime.js +11 -11
- package/dist/commands/update.d.ts +1 -1
- package/dist/commands/update.js +18 -14
- package/dist/commands/user.js +31 -28
- package/dist/commands/watch/deployer.d.ts +4 -4
- package/dist/commands/watch/deployer.js +45 -36
- package/dist/commands/watch/error-checker.d.ts +2 -2
- package/dist/commands/watch/error-checker.js +27 -27
- package/dist/commands/watch/formatter.d.ts +4 -4
- package/dist/commands/watch/formatter.js +17 -17
- package/dist/commands/watch/generator.d.ts +3 -3
- package/dist/commands/watch/generator.js +28 -23
- package/dist/commands/watch/globMoFiles.js +8 -8
- package/dist/commands/watch/parseDfxJson.d.ts +2 -2
- package/dist/commands/watch/parseDfxJson.js +9 -9
- package/dist/commands/watch/tester.d.ts +4 -4
- package/dist/commands/watch/tester.js +23 -21
- package/dist/commands/watch/warning-checker.d.ts +3 -3
- package/dist/commands/watch/warning-checker.js +36 -36
- package/dist/commands/watch/watch.js +45 -32
- package/dist/environments/nodejs/cli.d.ts +1 -0
- package/dist/environments/nodejs/cli.js +4 -0
- package/dist/environments/web/cli.d.ts +1 -0
- package/dist/environments/web/cli.js +4 -0
- package/dist/error.d.ts +1 -0
- package/dist/error.js +5 -0
- package/dist/fix-dist.js +5 -5
- package/dist/helpers/find-changelog-entry.js +8 -5
- package/dist/helpers/get-dep-name.js +2 -2
- package/dist/helpers/get-dfx-version.js +4 -4
- package/dist/helpers/get-moc-path.js +8 -7
- package/dist/helpers/get-moc-version.js +10 -7
- package/dist/helpers/get-package-id.js +2 -2
- package/dist/helpers/is-candid-compatible.d.ts +1 -0
- package/dist/helpers/is-candid-compatible.js +20 -0
- package/dist/integrity.d.ts +1 -1
- package/dist/integrity.js +47 -38
- package/dist/jest.config.d.ts +11 -0
- package/dist/jest.config.js +14 -0
- package/dist/mops.d.ts +6 -6
- package/dist/mops.js +87 -80
- package/dist/notify-installs.js +4 -4
- package/dist/package.json +9 -5
- package/dist/pem.d.ts +3 -3
- package/dist/pem.js +20 -12
- package/dist/release-cli.js +20 -20
- package/dist/resolve-packages.d.ts +1 -1
- package/dist/resolve-packages.js +52 -36
- package/dist/templates/mops-publish.yml +3 -3
- package/dist/templates/mops-test.yml +3 -3
- package/dist/templates/src/lib.mo +13 -13
- package/dist/templates/test/lib.test.mo +2 -2
- package/dist/templates.js +1 -1
- package/dist/tests/cli.test.d.ts +1 -0
- package/dist/tests/cli.test.js +63 -0
- package/dist/types.d.ts +14 -4
- package/dist/vessel.d.ts +2 -2
- package/dist/vessel.js +41 -34
- package/dist/wasm/pkg/bundler/package.json +20 -0
- package/dist/wasm/pkg/bundler/wasm.d.ts +3 -0
- package/dist/wasm/pkg/bundler/wasm.js +5 -0
- package/dist/wasm/pkg/bundler/wasm_bg.js +93 -0
- package/dist/wasm/pkg/bundler/wasm_bg.wasm +0 -0
- package/dist/wasm/pkg/bundler/wasm_bg.wasm.d.ts +8 -0
- package/dist/wasm/pkg/nodejs/package.json +14 -0
- package/dist/wasm/pkg/nodejs/wasm.d.ts +3 -0
- package/dist/wasm/pkg/nodejs/wasm.js +98 -0
- package/dist/wasm/pkg/nodejs/wasm_bg.wasm +0 -0
- package/dist/wasm/pkg/nodejs/wasm_bg.wasm.d.ts +8 -0
- package/dist/wasm/pkg/web/package.json +18 -0
- package/dist/wasm/pkg/web/wasm.d.ts +35 -0
- package/dist/wasm/pkg/web/wasm.js +191 -0
- package/dist/wasm/pkg/web/wasm_bg.wasm +0 -0
- package/dist/wasm/pkg/web/wasm_bg.wasm.d.ts +8 -0
- package/dist/wasm.d.ts +5 -0
- package/dist/wasm.js +10 -0
- package/environments/nodejs/cli.ts +6 -0
- package/environments/web/cli.ts +6 -0
- package/error.ts +6 -0
- package/fix-dist.ts +5 -5
- package/global.d.ts +3 -3
- package/helpers/find-changelog-entry.ts +26 -23
- package/helpers/get-dep-name.ts +5 -5
- package/helpers/get-dfx-version.ts +8 -9
- package/helpers/get-moc-path.ts +25 -26
- package/helpers/get-moc-version.ts +21 -19
- package/helpers/get-package-id.ts +4 -4
- package/helpers/is-candid-compatible.ts +22 -0
- package/integrity.ts +270 -236
- package/jest.config.js +14 -0
- package/mops.ts +238 -215
- package/notify-installs.ts +16 -17
- package/package.json +19 -10
- package/parallel.ts +28 -24
- package/pem.ts +55 -47
- package/release-cli.ts +73 -39
- package/resolve-packages.ts +231 -189
- package/templates/mops-publish.yml +3 -3
- package/templates/mops-test.yml +3 -3
- package/templates/src/lib.mo +13 -13
- package/templates/test/lib.test.mo +2 -2
- package/templates.ts +4 -4
- package/tests/__snapshots__/cli.test.ts.snap +202 -0
- package/tests/build/error/candid/bar.did +3 -0
- package/tests/build/error/dfx.json +12 -0
- package/tests/build/error/mops.toml +9 -0
- package/tests/build/error/src/Bar.mo +5 -0
- package/tests/build/error/src/Foo.mo +5 -0
- package/tests/build/success/.dfx/local/canister_ids.json +17 -0
- package/tests/build/success/.dfx/local/canisters/bar/bar.did +3 -0
- package/tests/build/success/.dfx/local/canisters/bar/bar.most +4 -0
- package/tests/build/success/.dfx/local/canisters/bar/bar.wasm +0 -0
- package/tests/build/success/.dfx/local/canisters/bar/constructor.did +3 -0
- package/tests/build/success/.dfx/local/canisters/bar/index.js +42 -0
- package/tests/build/success/.dfx/local/canisters/bar/init_args.txt +1 -0
- package/tests/build/success/.dfx/local/canisters/bar/service.did +3 -0
- package/tests/build/success/.dfx/local/canisters/bar/service.did.d.ts +7 -0
- package/tests/build/success/.dfx/local/canisters/bar/service.did.js +4 -0
- package/tests/build/success/.dfx/local/canisters/foo/constructor.did +3 -0
- package/tests/build/success/.dfx/local/canisters/foo/foo.did +3 -0
- package/tests/build/success/.dfx/local/canisters/foo/foo.most +4 -0
- package/tests/build/success/.dfx/local/canisters/foo/foo.wasm +0 -0
- package/tests/build/success/.dfx/local/canisters/foo/index.js +42 -0
- package/tests/build/success/.dfx/local/canisters/foo/init_args.txt +1 -0
- package/tests/build/success/.dfx/local/canisters/foo/service.did +3 -0
- package/tests/build/success/.dfx/local/canisters/foo/service.did.d.ts +7 -0
- package/tests/build/success/.dfx/local/canisters/foo/service.did.js +4 -0
- package/tests/build/success/.dfx/local/lsp/ucwa4-rx777-77774-qaada-cai.did +3 -0
- package/tests/build/success/.dfx/local/lsp/ulvla-h7777-77774-qaacq-cai.did +3 -0
- package/tests/build/success/.dfx/local/network-id +4 -0
- package/tests/build/success/candid/bar.did +3 -0
- package/tests/build/success/dfx.json +12 -0
- package/tests/build/success/mops.toml +9 -0
- package/tests/build/success/src/Bar.mo +5 -0
- package/tests/build/success/src/Foo.mo +5 -0
- package/tests/check-candid/a.did +3 -0
- package/tests/check-candid/b.did +5 -0
- package/tests/check-candid/c.did +3 -0
- package/tests/cli.test.ts +82 -0
- package/tsconfig.json +26 -19
- package/types.ts +41 -31
- package/vessel.ts +219 -187
- package/wasm/Cargo.lock +1475 -0
- package/wasm/Cargo.toml +28 -0
- package/wasm/pkg/bundler/package.json +20 -0
- package/wasm/pkg/bundler/wasm.d.ts +3 -0
- package/wasm/pkg/bundler/wasm.js +5 -0
- package/wasm/pkg/bundler/wasm_bg.js +93 -0
- package/wasm/pkg/bundler/wasm_bg.wasm +0 -0
- package/wasm/pkg/bundler/wasm_bg.wasm.d.ts +8 -0
- package/wasm/pkg/nodejs/package.json +14 -0
- package/wasm/pkg/nodejs/wasm.d.ts +3 -0
- package/wasm/pkg/nodejs/wasm.js +98 -0
- package/wasm/pkg/nodejs/wasm_bg.wasm +0 -0
- package/wasm/pkg/nodejs/wasm_bg.wasm.d.ts +8 -0
- package/wasm/pkg/web/package.json +18 -0
- package/wasm/pkg/web/wasm.d.ts +35 -0
- package/wasm/pkg/web/wasm.js +191 -0
- package/wasm/pkg/web/wasm_bg.wasm +0 -0
- package/wasm/pkg/web/wasm_bg.wasm.d.ts +8 -0
- package/wasm/src/lib.rs +17 -0
- package/wasm.ts +16 -0
package/dist/commands/init.js
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import process from
|
|
2
|
-
import { execSync } from
|
|
3
|
-
import path from
|
|
4
|
-
import { existsSync, readFileSync, writeFileSync } from
|
|
5
|
-
import chalk from
|
|
6
|
-
import prompts from
|
|
7
|
-
import { checkApiCompatibility, writeConfig } from
|
|
8
|
-
import { mainActor } from
|
|
9
|
-
import { installAll } from
|
|
10
|
-
import { readVesselConfig } from
|
|
11
|
-
import { template } from
|
|
12
|
-
import { kebabCase } from
|
|
1
|
+
import process from "node:process";
|
|
2
|
+
import { execSync } from "node:child_process";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
5
|
+
import chalk from "chalk";
|
|
6
|
+
import prompts from "prompts";
|
|
7
|
+
import { checkApiCompatibility, writeConfig } from "../mops.js";
|
|
8
|
+
import { mainActor } from "../api/actors.js";
|
|
9
|
+
import { installAll } from "./install/install-all.js";
|
|
10
|
+
import { readVesselConfig } from "../vessel.js";
|
|
11
|
+
import { template } from "./template.js";
|
|
12
|
+
import { kebabCase } from "change-case";
|
|
13
13
|
export async function init({ yes = false } = {}) {
|
|
14
|
-
let configFile = path.join(process.cwd(),
|
|
14
|
+
let configFile = path.join(process.cwd(), "mops.toml");
|
|
15
15
|
let exists = existsSync(configFile);
|
|
16
16
|
if (exists) {
|
|
17
|
-
console.log(chalk.yellow(
|
|
17
|
+
console.log(chalk.yellow("mops.toml already exists"));
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
|
-
console.log(
|
|
20
|
+
console.log("Initializing...");
|
|
21
21
|
let config = {};
|
|
22
22
|
if (yes) {
|
|
23
23
|
await applyInit({
|
|
24
|
-
type:
|
|
24
|
+
type: "project",
|
|
25
25
|
config,
|
|
26
26
|
setupWorkflow: true,
|
|
27
27
|
addTest: false,
|
|
28
|
-
copyrightOwner:
|
|
28
|
+
copyrightOwner: "",
|
|
29
29
|
});
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
32
32
|
// migrate from vessel
|
|
33
|
-
let vesselFile = path.join(process.cwd(),
|
|
34
|
-
let vesselConfig = { dependencies: [],
|
|
33
|
+
let vesselFile = path.join(process.cwd(), "vessel.dhall");
|
|
34
|
+
let vesselConfig = { dependencies: [], "dev-dependencies": [] };
|
|
35
35
|
if (existsSync(vesselFile)) {
|
|
36
|
-
console.log(
|
|
36
|
+
console.log("Reading vessel.dhall file");
|
|
37
37
|
let res = await readVesselConfig(process.cwd(), { cache: false });
|
|
38
38
|
if (res) {
|
|
39
39
|
vesselConfig = { ...res };
|
|
@@ -42,7 +42,7 @@ export async function init({ yes = false } = {}) {
|
|
|
42
42
|
if (vesselConfig.dependencies) {
|
|
43
43
|
let deps = {};
|
|
44
44
|
deps = {};
|
|
45
|
-
for (const dep of
|
|
45
|
+
for (const dep of vesselConfig.dependencies || []) {
|
|
46
46
|
deps[dep.name] = dep;
|
|
47
47
|
}
|
|
48
48
|
if (Object.keys(deps).length) {
|
|
@@ -51,88 +51,96 @@ export async function init({ yes = false } = {}) {
|
|
|
51
51
|
}
|
|
52
52
|
let promptsConfig = {
|
|
53
53
|
onCancel() {
|
|
54
|
-
console.log(
|
|
54
|
+
console.log("aborted");
|
|
55
55
|
process.exit(0);
|
|
56
56
|
},
|
|
57
57
|
};
|
|
58
58
|
// type
|
|
59
59
|
let { type } = await prompts({
|
|
60
|
-
type:
|
|
61
|
-
name:
|
|
62
|
-
message:
|
|
60
|
+
type: "select",
|
|
61
|
+
name: "type",
|
|
62
|
+
message: "Select type:",
|
|
63
63
|
choices: [
|
|
64
|
-
{
|
|
65
|
-
|
|
64
|
+
{
|
|
65
|
+
title: `Project ${chalk.dim("(I just want to use mops packages in my project)")}`,
|
|
66
|
+
value: "project",
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
title: `Package ${chalk.dim("(I plan to publish this package on mops)")}`,
|
|
70
|
+
value: "package",
|
|
71
|
+
},
|
|
66
72
|
],
|
|
67
73
|
}, promptsConfig);
|
|
68
74
|
let addTest = false;
|
|
69
|
-
let copyrightOwner =
|
|
75
|
+
let copyrightOwner = "";
|
|
70
76
|
// package details
|
|
71
|
-
if (type ===
|
|
77
|
+
if (type === "package") {
|
|
72
78
|
let res = await prompts([
|
|
73
79
|
{
|
|
74
|
-
type:
|
|
75
|
-
name:
|
|
76
|
-
message:
|
|
80
|
+
type: "text",
|
|
81
|
+
name: "name",
|
|
82
|
+
message: "Enter package name:",
|
|
77
83
|
initial: kebabCase(path.basename(process.cwd())),
|
|
78
84
|
},
|
|
79
85
|
{
|
|
80
|
-
type:
|
|
81
|
-
name:
|
|
82
|
-
message:
|
|
83
|
-
initial:
|
|
86
|
+
type: "text",
|
|
87
|
+
name: "description",
|
|
88
|
+
message: "Enter package description:",
|
|
89
|
+
initial: "",
|
|
84
90
|
},
|
|
85
91
|
{
|
|
86
|
-
type:
|
|
87
|
-
name:
|
|
88
|
-
message:
|
|
89
|
-
initial:
|
|
92
|
+
type: "text",
|
|
93
|
+
name: "repository",
|
|
94
|
+
message: "Enter package repository url:",
|
|
95
|
+
initial: "",
|
|
90
96
|
},
|
|
91
97
|
{
|
|
92
|
-
type:
|
|
93
|
-
name:
|
|
94
|
-
message:
|
|
95
|
-
initial:
|
|
98
|
+
type: "text",
|
|
99
|
+
name: "keywords",
|
|
100
|
+
message: "Enter keywords separated by spaces:",
|
|
101
|
+
initial: "",
|
|
96
102
|
},
|
|
97
103
|
{
|
|
98
|
-
type:
|
|
99
|
-
name:
|
|
100
|
-
message:
|
|
104
|
+
type: "select",
|
|
105
|
+
name: "license",
|
|
106
|
+
message: "Choose a license:",
|
|
101
107
|
choices: [
|
|
102
|
-
{ title:
|
|
103
|
-
{ title:
|
|
108
|
+
{ title: "MIT", value: "MIT" },
|
|
109
|
+
{ title: "Apache-2.0", value: "Apache-2.0" },
|
|
104
110
|
],
|
|
105
111
|
initial: 0,
|
|
106
112
|
},
|
|
107
113
|
{
|
|
108
|
-
type:
|
|
109
|
-
name:
|
|
110
|
-
message:
|
|
111
|
-
initial:
|
|
114
|
+
type: "text",
|
|
115
|
+
name: "copyrightOwner",
|
|
116
|
+
message: "Enter license copyright owner:",
|
|
117
|
+
initial: "",
|
|
112
118
|
},
|
|
113
119
|
{
|
|
114
|
-
type:
|
|
115
|
-
name:
|
|
116
|
-
message: `Add example test file? ${chalk.dim(
|
|
120
|
+
type: "confirm",
|
|
121
|
+
name: "addTest",
|
|
122
|
+
message: `Add example test file? ${chalk.dim("(test/lib.test.mo)")}`,
|
|
117
123
|
initial: true,
|
|
118
124
|
},
|
|
119
125
|
], promptsConfig);
|
|
120
126
|
config.package = {
|
|
121
|
-
name: kebabCase((res.name ||
|
|
122
|
-
version:
|
|
123
|
-
description: (res.description ||
|
|
124
|
-
repository: (res.repository ||
|
|
125
|
-
keywords: [
|
|
126
|
-
|
|
127
|
+
name: kebabCase((res.name || "").trim()),
|
|
128
|
+
version: "1.0.0",
|
|
129
|
+
description: (res.description || "").trim(),
|
|
130
|
+
repository: (res.repository || "").trim(),
|
|
131
|
+
keywords: [
|
|
132
|
+
...new Set(res.keywords.split(" ").filter(Boolean)),
|
|
133
|
+
],
|
|
134
|
+
license: (res.license || "").trim(),
|
|
127
135
|
};
|
|
128
136
|
addTest = res.addTest;
|
|
129
137
|
copyrightOwner = res.copyrightOwner;
|
|
130
138
|
}
|
|
131
139
|
// GitHub workflow
|
|
132
140
|
let { setupWorkflow } = await prompts({
|
|
133
|
-
type:
|
|
134
|
-
name:
|
|
135
|
-
message: `Setup GitHub workflow? ${chalk.dim(
|
|
141
|
+
type: "confirm",
|
|
142
|
+
name: "setupWorkflow",
|
|
143
|
+
message: `Setup GitHub workflow? ${chalk.dim("(run `mops test` on push)")}`,
|
|
136
144
|
initial: true,
|
|
137
145
|
}, promptsConfig);
|
|
138
146
|
await applyInit({
|
|
@@ -143,9 +151,9 @@ export async function init({ yes = false } = {}) {
|
|
|
143
151
|
copyrightOwner,
|
|
144
152
|
});
|
|
145
153
|
}
|
|
146
|
-
async function applyInit({ type, config, setupWorkflow, addTest, copyrightOwner }) {
|
|
154
|
+
async function applyInit({ type, config, setupWorkflow, addTest, copyrightOwner, }) {
|
|
147
155
|
// set packtool in dfx.json
|
|
148
|
-
let dfxJson = path.resolve(process.cwd(),
|
|
156
|
+
let dfxJson = path.resolve(process.cwd(), "dfx.json");
|
|
149
157
|
let dfxJsonData;
|
|
150
158
|
if (existsSync(dfxJson)) {
|
|
151
159
|
let dfxJsonText = readFileSync(dfxJson).toString();
|
|
@@ -153,30 +161,30 @@ async function applyInit({ type, config, setupWorkflow, addTest, copyrightOwner
|
|
|
153
161
|
dfxJsonData = JSON.parse(dfxJsonText);
|
|
154
162
|
}
|
|
155
163
|
catch (err) {
|
|
156
|
-
console.log(chalk.yellow(
|
|
164
|
+
console.log(chalk.yellow("Failed to parse dfx.json"));
|
|
157
165
|
}
|
|
158
166
|
if (dfxJsonData) {
|
|
159
|
-
console.log(
|
|
167
|
+
console.log("Setting packtool in dfx.json...");
|
|
160
168
|
dfxJsonData.defaults = dfxJsonData.defaults || {};
|
|
161
169
|
dfxJsonData.defaults.build = dfxJsonData.defaults.build || {};
|
|
162
|
-
if (dfxJsonData.defaults.build.packtool !==
|
|
163
|
-
dfxJsonData.defaults.build.packtool =
|
|
164
|
-
let indent = dfxJsonText.match(/([ \t]+)"/)?.[1] ||
|
|
165
|
-
writeFileSync(path.join(process.cwd(),
|
|
170
|
+
if (dfxJsonData.defaults.build.packtool !== "mops sources") {
|
|
171
|
+
dfxJsonData.defaults.build.packtool = "mops sources";
|
|
172
|
+
let indent = dfxJsonText.match(/([ \t]+)"/)?.[1] || " ";
|
|
173
|
+
writeFileSync(path.join(process.cwd(), "dfx.json"), JSON.stringify(dfxJsonData, null, indent));
|
|
166
174
|
console.log(chalk.green('packtool set to "mops sources"'));
|
|
167
175
|
}
|
|
168
176
|
}
|
|
169
177
|
}
|
|
170
178
|
// get default packages
|
|
171
|
-
if (type ===
|
|
179
|
+
if (type === "project") {
|
|
172
180
|
let compatible = await checkApiCompatibility();
|
|
173
181
|
if (!compatible) {
|
|
174
182
|
return;
|
|
175
183
|
}
|
|
176
|
-
let dfxVersion = dfxJsonData?.dfx ||
|
|
184
|
+
let dfxVersion = dfxJsonData?.dfx || "";
|
|
177
185
|
if (!dfxVersion) {
|
|
178
186
|
try {
|
|
179
|
-
let res = execSync(
|
|
187
|
+
let res = execSync("dfx --version").toString();
|
|
180
188
|
let match = res.match(/\d+\.\d+\.\d+/);
|
|
181
189
|
if (match) {
|
|
182
190
|
dfxVersion = match[0];
|
|
@@ -195,43 +203,45 @@ async function applyInit({ type, config, setupWorkflow, addTest, copyrightOwner
|
|
|
195
203
|
}
|
|
196
204
|
}
|
|
197
205
|
// save config
|
|
198
|
-
let configFile = path.join(process.cwd(),
|
|
206
|
+
let configFile = path.join(process.cwd(), "mops.toml");
|
|
199
207
|
writeConfig(config, configFile);
|
|
200
|
-
console.log(chalk.green(
|
|
208
|
+
console.log(chalk.green("Created"), "mops.toml");
|
|
201
209
|
// add src/lib.mo
|
|
202
|
-
if (type ===
|
|
203
|
-
await template(
|
|
210
|
+
if (type === "package" && !existsSync(path.join(process.cwd(), "src"))) {
|
|
211
|
+
await template("lib.mo");
|
|
204
212
|
}
|
|
205
213
|
// add src/lib.test.mo
|
|
206
|
-
if (addTest && !existsSync(path.join(process.cwd(),
|
|
207
|
-
await template(
|
|
214
|
+
if (addTest && !existsSync(path.join(process.cwd(), "test"))) {
|
|
215
|
+
await template("lib.test.mo");
|
|
208
216
|
}
|
|
209
217
|
// add license
|
|
210
218
|
if (config.package?.license) {
|
|
211
219
|
await template(`license:${config.package.license}`, { copyrightOwner });
|
|
212
220
|
}
|
|
213
221
|
// add readme
|
|
214
|
-
if (type ===
|
|
215
|
-
await template(
|
|
222
|
+
if (type === "package") {
|
|
223
|
+
await template("readme");
|
|
216
224
|
}
|
|
217
225
|
// add GitHub workflow
|
|
218
226
|
if (setupWorkflow) {
|
|
219
|
-
await template(
|
|
227
|
+
await template("github-workflow:mops-test");
|
|
220
228
|
}
|
|
221
229
|
// add .mops to .gitignore
|
|
222
230
|
{
|
|
223
|
-
let gitignore = path.join(process.cwd(),
|
|
224
|
-
let gitignoreData = existsSync(gitignore)
|
|
225
|
-
|
|
226
|
-
|
|
231
|
+
let gitignore = path.join(process.cwd(), ".gitignore");
|
|
232
|
+
let gitignoreData = existsSync(gitignore)
|
|
233
|
+
? readFileSync(gitignore).toString()
|
|
234
|
+
: "";
|
|
235
|
+
let lf = gitignoreData.endsWith("\n") ? "\n" : "";
|
|
236
|
+
if (!gitignoreData.includes(".mops")) {
|
|
227
237
|
writeFileSync(gitignore, `${gitignoreData}\n.mops${lf}`.trimStart());
|
|
228
|
-
console.log(chalk.green(
|
|
238
|
+
console.log(chalk.green("Added"), ".mops to .gitignore");
|
|
229
239
|
}
|
|
230
240
|
}
|
|
231
241
|
// install deps
|
|
232
242
|
if (Object.keys(config.dependencies || {}).length) {
|
|
233
|
-
console.log(
|
|
243
|
+
console.log("Installing dependencies...");
|
|
234
244
|
await installAll({ verbose: true });
|
|
235
245
|
}
|
|
236
|
-
console.log(chalk.green(
|
|
246
|
+
console.log(chalk.green("Done!"));
|
|
237
247
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
type InstallAllOptions = {
|
|
2
2
|
verbose?: boolean;
|
|
3
3
|
silent?: boolean;
|
|
4
|
-
lock?:
|
|
4
|
+
lock?: "check" | "update" | "ignore";
|
|
5
5
|
threads?: number;
|
|
6
6
|
installFromLockFile?: boolean;
|
|
7
7
|
};
|
|
8
|
-
export declare function installAll({ verbose, silent, threads, lock, installFromLockFile }?: InstallAllOptions): Promise<boolean>;
|
|
8
|
+
export declare function installAll({ verbose, silent, threads, lock, installFromLockFile, }?: InstallAllOptions): Promise<boolean>;
|
|
9
9
|
export {};
|
|
@@ -1,31 +1,36 @@
|
|
|
1
|
-
import process from
|
|
2
|
-
import chalk from
|
|
3
|
-
import { createLogUpdate } from
|
|
4
|
-
import { checkConfigFile, parseDepValue, readConfig } from
|
|
5
|
-
import { checkIntegrity, checkLockFileLight, readLockFile } from
|
|
6
|
-
import { installDeps } from
|
|
7
|
-
import { checkRequirements } from
|
|
8
|
-
import { syncLocalCache } from
|
|
9
|
-
import { notifyInstalls } from
|
|
10
|
-
export async function installAll({ verbose = false, silent = false, threads, lock, installFromLockFile } = {}) {
|
|
1
|
+
import process from "node:process";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { createLogUpdate } from "log-update";
|
|
4
|
+
import { checkConfigFile, parseDepValue, readConfig } from "../../mops.js";
|
|
5
|
+
import { checkIntegrity, checkLockFileLight, readLockFile, } from "../../integrity.js";
|
|
6
|
+
import { installDeps } from "./install-deps.js";
|
|
7
|
+
import { checkRequirements } from "../../check-requirements.js";
|
|
8
|
+
import { syncLocalCache } from "./sync-local-cache.js";
|
|
9
|
+
import { notifyInstalls } from "../../notify-installs.js";
|
|
10
|
+
export async function installAll({ verbose = false, silent = false, threads, lock, installFromLockFile, } = {}) {
|
|
11
11
|
if (!checkConfigFile()) {
|
|
12
12
|
return false;
|
|
13
13
|
}
|
|
14
14
|
let config = readConfig();
|
|
15
15
|
let deps = Object.values(config.dependencies || {});
|
|
16
|
-
let devDeps = Object.values(config[
|
|
16
|
+
let devDeps = Object.values(config["dev-dependencies"] || {});
|
|
17
17
|
let allDeps = [...deps, ...devDeps];
|
|
18
18
|
let installedFromLockFile = false;
|
|
19
19
|
// install from lock file to avoid installing intermediate dependencies
|
|
20
|
-
if ((lock !==
|
|
20
|
+
if ((lock !== "ignore" || installFromLockFile) && checkLockFileLight()) {
|
|
21
21
|
let lockFileJson = readLockFile();
|
|
22
22
|
if (lockFileJson && lockFileJson.version === 3) {
|
|
23
|
-
verbose && console.log(
|
|
23
|
+
verbose && console.log("Installing from lock file...");
|
|
24
24
|
installedFromLockFile = true;
|
|
25
25
|
let lockedDeps = Object.entries(lockFileJson.deps).map(([name, version]) => {
|
|
26
26
|
return parseDepValue(name, version);
|
|
27
27
|
});
|
|
28
|
-
let ok = await installDeps(lockedDeps, {
|
|
28
|
+
let ok = await installDeps(lockedDeps, {
|
|
29
|
+
silent,
|
|
30
|
+
verbose,
|
|
31
|
+
threads,
|
|
32
|
+
ignoreTransitive: true,
|
|
33
|
+
});
|
|
29
34
|
if (!ok) {
|
|
30
35
|
return false;
|
|
31
36
|
}
|
|
@@ -38,18 +43,15 @@ export async function installAll({ verbose = false, silent = false, threads, loc
|
|
|
38
43
|
}
|
|
39
44
|
}
|
|
40
45
|
let logUpdate = createLogUpdate(process.stdout, { showCursor: true });
|
|
41
|
-
if (!silent && lock !==
|
|
42
|
-
logUpdate(
|
|
46
|
+
if (!silent && lock !== "ignore") {
|
|
47
|
+
logUpdate("Checking integrity...");
|
|
43
48
|
}
|
|
44
49
|
let installedPackages = await syncLocalCache({ verbose });
|
|
45
|
-
await Promise.all([
|
|
46
|
-
notifyInstalls(installedPackages),
|
|
47
|
-
checkIntegrity(lock),
|
|
48
|
-
]);
|
|
50
|
+
await Promise.all([notifyInstalls(installedPackages), checkIntegrity(lock)]);
|
|
49
51
|
if (!silent) {
|
|
50
52
|
logUpdate.clear();
|
|
51
53
|
await checkRequirements();
|
|
52
|
-
console.log(chalk.green(
|
|
54
|
+
console.log(chalk.green("Packages installed"));
|
|
53
55
|
}
|
|
54
56
|
return true;
|
|
55
57
|
}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
import path from
|
|
2
|
-
import { installFromGithub } from
|
|
3
|
-
import { installMopsDep } from
|
|
4
|
-
import { installLocalDep } from
|
|
5
|
-
import { getRootDir } from
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { installFromGithub } from "../../vessel.js";
|
|
3
|
+
import { installMopsDep } from "./install-mops-dep.js";
|
|
4
|
+
import { installLocalDep } from "./install-local-dep.js";
|
|
5
|
+
import { getRootDir } from "../../mops.js";
|
|
6
6
|
// install dependency
|
|
7
7
|
// returns false if failed
|
|
8
8
|
export async function installDep(dep, { verbose, silent, threads, ignoreTransitive } = {}, parentPkgPath) {
|
|
9
9
|
if (dep.repo) {
|
|
10
|
-
await installFromGithub(dep.name, dep.repo, {
|
|
10
|
+
await installFromGithub(dep.name, dep.repo, {
|
|
11
|
+
silent,
|
|
12
|
+
verbose,
|
|
13
|
+
ignoreTransitive,
|
|
14
|
+
});
|
|
11
15
|
return true;
|
|
12
16
|
}
|
|
13
17
|
else if (dep.path) {
|
|
@@ -16,10 +20,19 @@ export async function installDep(dep, { verbose, silent, threads, ignoreTransiti
|
|
|
16
20
|
if (parentPkgPath) {
|
|
17
21
|
depPath = path.resolve(parentPkgPath, dep.path);
|
|
18
22
|
}
|
|
19
|
-
return installLocalDep(dep.name, depPath, {
|
|
23
|
+
return installLocalDep(dep.name, depPath, {
|
|
24
|
+
silent,
|
|
25
|
+
verbose,
|
|
26
|
+
ignoreTransitive,
|
|
27
|
+
});
|
|
20
28
|
}
|
|
21
29
|
else if (dep.version) {
|
|
22
|
-
return installMopsDep(dep.name, dep.version, {
|
|
30
|
+
return installMopsDep(dep.name, dep.version, {
|
|
31
|
+
silent,
|
|
32
|
+
verbose,
|
|
33
|
+
threads,
|
|
34
|
+
ignoreTransitive,
|
|
35
|
+
});
|
|
23
36
|
}
|
|
24
37
|
return true;
|
|
25
38
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import process from
|
|
2
|
-
import path from
|
|
3
|
-
import { existsSync } from
|
|
4
|
-
import { createLogUpdate } from
|
|
5
|
-
import { getRootDir, readConfig } from
|
|
6
|
-
import { installDeps } from
|
|
1
|
+
import process from "node:process";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { existsSync } from "node:fs";
|
|
4
|
+
import { createLogUpdate } from "log-update";
|
|
5
|
+
import { getRootDir, readConfig } from "../../mops.js";
|
|
6
|
+
import { installDeps } from "./install-deps.js";
|
|
7
7
|
// skip install and just find non-local dependencies to install
|
|
8
8
|
// pkgPath should be relative to the current root dir or absolute
|
|
9
|
-
export async function installLocalDep(pkg, pkgPath =
|
|
9
|
+
export async function installLocalDep(pkg, pkgPath = "", { verbose, silent, ignoreTransitive } = {}) {
|
|
10
10
|
if (!silent) {
|
|
11
11
|
let logUpdate = createLogUpdate(process.stdout, { showCursor: true });
|
|
12
12
|
logUpdate(`Local dependency ${pkg} = "${pkgPath}"`);
|
|
@@ -19,8 +19,10 @@ export async function installLocalDep(pkg, pkgPath = '', { verbose, silent, igno
|
|
|
19
19
|
}
|
|
20
20
|
// install dependencies
|
|
21
21
|
if (!ignoreTransitive) {
|
|
22
|
-
let dir = path
|
|
23
|
-
|
|
22
|
+
let dir = path
|
|
23
|
+
.resolve(getRootDir(), pkgPath)
|
|
24
|
+
.replaceAll("{MOPS_ENV}", process.env.MOPS_ENV || "local");
|
|
25
|
+
let mopsToml = path.join(dir, "mops.toml");
|
|
24
26
|
if (!existsSync(mopsToml)) {
|
|
25
27
|
return true;
|
|
26
28
|
}
|
|
@@ -5,5 +5,5 @@ type InstallMopsDepOptions = {
|
|
|
5
5
|
threads?: number;
|
|
6
6
|
ignoreTransitive?: boolean;
|
|
7
7
|
};
|
|
8
|
-
export declare function installMopsDep(pkg: string, version?: string, { verbose, silent, dep, threads, ignoreTransitive }?: InstallMopsDepOptions): Promise<boolean>;
|
|
8
|
+
export declare function installMopsDep(pkg: string, version?: string, { verbose, silent, dep, threads, ignoreTransitive, }?: InstallMopsDepOptions): Promise<boolean>;
|
|
9
9
|
export {};
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import process from
|
|
2
|
-
import fs from
|
|
3
|
-
import path from
|
|
4
|
-
import { Buffer } from
|
|
5
|
-
import { createLogUpdate } from
|
|
6
|
-
import chalk from
|
|
7
|
-
import { deleteSync } from
|
|
8
|
-
import { checkConfigFile, progressBar, readConfig } from
|
|
9
|
-
import { getHighestVersion } from
|
|
10
|
-
import { storageActor } from
|
|
11
|
-
import { parallel } from
|
|
12
|
-
import { getDepCacheDir, getMopsDepCacheName, isDepCached } from
|
|
13
|
-
import { downloadFile, getPackageFilesInfo } from
|
|
14
|
-
import { installDeps } from
|
|
15
|
-
import { getDepName } from
|
|
16
|
-
export async function installMopsDep(pkg, version =
|
|
1
|
+
import process from "node:process";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { Buffer } from "node:buffer";
|
|
5
|
+
import { createLogUpdate } from "log-update";
|
|
6
|
+
import chalk from "chalk";
|
|
7
|
+
import { deleteSync } from "del";
|
|
8
|
+
import { checkConfigFile, progressBar, readConfig } from "../../mops.js";
|
|
9
|
+
import { getHighestVersion } from "../../api/getHighestVersion.js";
|
|
10
|
+
import { storageActor } from "../../api/actors.js";
|
|
11
|
+
import { parallel } from "../../parallel.js";
|
|
12
|
+
import { getDepCacheDir, getMopsDepCacheName, isDepCached, } from "../../cache.js";
|
|
13
|
+
import { downloadFile, getPackageFilesInfo, } from "../../api/downloadPackageFiles.js";
|
|
14
|
+
import { installDeps } from "./install-deps.js";
|
|
15
|
+
import { getDepName } from "../../helpers/get-dep-name.js";
|
|
16
|
+
export async function installMopsDep(pkg, version = "", { verbose, silent, dep, threads, ignoreTransitive, } = {}) {
|
|
17
17
|
threads = threads || 12;
|
|
18
18
|
let depName = getDepName(pkg);
|
|
19
19
|
if (!checkConfigFile()) {
|
|
@@ -25,13 +25,14 @@ export async function installMopsDep(pkg, version = '', { verbose, silent, dep,
|
|
|
25
25
|
let step = 0;
|
|
26
26
|
let progress = () => {
|
|
27
27
|
step++;
|
|
28
|
-
silent ||
|
|
28
|
+
silent ||
|
|
29
|
+
logUpdate(`${dep ? "Dependency" : "Installing"} ${depName}@${version} ${progressBar(step, total)}`);
|
|
29
30
|
};
|
|
30
31
|
progress();
|
|
31
32
|
if (!version) {
|
|
32
33
|
let versionRes = await getHighestVersion(depName);
|
|
33
|
-
if (
|
|
34
|
-
console.log(chalk.red(
|
|
34
|
+
if ("err" in versionRes) {
|
|
35
|
+
console.log(chalk.red("Error: ") + versionRes.err);
|
|
35
36
|
return false;
|
|
36
37
|
}
|
|
37
38
|
version = versionRes.ok;
|
|
@@ -40,7 +41,8 @@ export async function installMopsDep(pkg, version = '', { verbose, silent, dep,
|
|
|
40
41
|
let cacheDir = getDepCacheDir(cacheName);
|
|
41
42
|
// global cache hit
|
|
42
43
|
if (isDepCached(cacheName)) {
|
|
43
|
-
silent ||
|
|
44
|
+
silent ||
|
|
45
|
+
logUpdate(`${dep ? "Dependency" : "Installing"} ${depName}@${version} (cache)`);
|
|
44
46
|
}
|
|
45
47
|
// download
|
|
46
48
|
else {
|
|
@@ -51,7 +53,7 @@ export async function installMopsDep(pkg, version = '', { verbose, silent, dep,
|
|
|
51
53
|
try {
|
|
52
54
|
let { storageId, fileIds } = await getPackageFilesInfo(depName, version);
|
|
53
55
|
total = fileIds.length + 2;
|
|
54
|
-
let filesData = new Map;
|
|
56
|
+
let filesData = new Map();
|
|
55
57
|
let storage = await storageActor(storageId);
|
|
56
58
|
await parallel(threads, fileIds, async (fileId) => {
|
|
57
59
|
let { path, data } = await downloadFile(storage, fileId);
|
|
@@ -62,7 +64,7 @@ export async function installMopsDep(pkg, version = '', { verbose, silent, dep,
|
|
|
62
64
|
deleteSync([cacheDir], { force: true });
|
|
63
65
|
process.exit();
|
|
64
66
|
};
|
|
65
|
-
process.on(
|
|
67
|
+
process.on("SIGINT", onSigInt);
|
|
66
68
|
// write files to global cache
|
|
67
69
|
try {
|
|
68
70
|
await Promise.all(Array.from(filesData.entries()).map(async ([filePath, data]) => {
|
|
@@ -71,14 +73,14 @@ export async function installMopsDep(pkg, version = '', { verbose, silent, dep,
|
|
|
71
73
|
}));
|
|
72
74
|
}
|
|
73
75
|
catch (err) {
|
|
74
|
-
console.error(chalk.red(
|
|
76
|
+
console.error(chalk.red("Error: ") + err);
|
|
75
77
|
deleteSync([cacheDir], { force: true });
|
|
76
78
|
return false;
|
|
77
79
|
}
|
|
78
|
-
process.off(
|
|
80
|
+
process.off("SIGINT", onSigInt);
|
|
79
81
|
}
|
|
80
82
|
catch (err) {
|
|
81
|
-
console.error(chalk.red(
|
|
83
|
+
console.error(chalk.red("Error: ") + err);
|
|
82
84
|
return false;
|
|
83
85
|
}
|
|
84
86
|
progress();
|
|
@@ -91,8 +93,11 @@ export async function installMopsDep(pkg, version = '', { verbose, silent, dep,
|
|
|
91
93
|
}
|
|
92
94
|
// install dependencies
|
|
93
95
|
if (!ignoreTransitive) {
|
|
94
|
-
let config = readConfig(path.join(cacheDir,
|
|
95
|
-
let res = await installDeps(Object.values(config.dependencies || {}), {
|
|
96
|
+
let config = readConfig(path.join(cacheDir, "mops.toml"));
|
|
97
|
+
let res = await installDeps(Object.values(config.dependencies || {}), {
|
|
98
|
+
silent,
|
|
99
|
+
verbose,
|
|
100
|
+
});
|
|
96
101
|
if (!res) {
|
|
97
102
|
return false;
|
|
98
103
|
}
|