@storm-software/workspace-tools 1.269.0 → 1.270.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 +52 -0
- package/README.md +2 -1
- package/dist/chunk-A7JGVU4P.js +468 -0
- package/dist/chunk-SRN4D7WO.mjs +468 -0
- package/dist/executors.js +2 -2
- package/dist/executors.mjs +1 -1
- package/dist/index.js +2 -2
- package/dist/index.mjs +1 -1
- package/dist/src/executors/npm-publish/executor.js +2 -2
- package/dist/src/executors/npm-publish/executor.mjs +1 -1
- package/docs/executors/rollup.md +88 -0
- package/executors.ts +23 -0
- package/generators.ts +14 -0
- package/index.ts +5 -0
- package/package.json +4 -4
- package/project.json +58 -0
- package/src/base/base-executor.ts +200 -0
- package/src/base/base-executor.untyped.ts +18 -0
- package/src/base/base-generator.ts +130 -0
- package/src/base/base-generator.untyped.ts +16 -0
- package/src/base/cargo-base-executor.untyped.ts +73 -0
- package/src/base/index.ts +8 -0
- package/src/base/typescript-build-executor.untyped.ts +153 -0
- package/src/base/typescript-library-generator.ts +415 -0
- package/src/base/typescript-library-generator.untyped.ts +106 -0
- package/src/executors/cargo-build/executor.spec.ts +18 -0
- package/src/executors/cargo-build/executor.ts +28 -0
- package/src/executors/cargo-build/untyped.ts +18 -0
- package/src/executors/cargo-check/executor.spec.ts +18 -0
- package/src/executors/cargo-check/executor.ts +27 -0
- package/src/executors/cargo-check/untyped.ts +11 -0
- package/src/executors/cargo-clippy/executor.spec.ts +18 -0
- package/src/executors/cargo-clippy/executor.ts +28 -0
- package/src/executors/cargo-clippy/untyped.ts +18 -0
- package/src/executors/cargo-doc/executor.spec.ts +18 -0
- package/src/executors/cargo-doc/executor.ts +39 -0
- package/src/executors/cargo-doc/untyped.ts +44 -0
- package/src/executors/cargo-format/executor.spec.ts +18 -0
- package/src/executors/cargo-format/executor.ts +28 -0
- package/src/executors/cargo-format/untyped.ts +11 -0
- package/src/executors/cargo-publish/executor.spec.ts +11 -0
- package/src/executors/cargo-publish/executor.ts +139 -0
- package/src/executors/cargo-publish/untyped.ts +33 -0
- package/src/executors/clean-package/constants.ts +99 -0
- package/src/executors/clean-package/executor.spec.ts +18 -0
- package/src/executors/clean-package/executor.ts +214 -0
- package/src/executors/clean-package/types.ts +6 -0
- package/src/executors/clean-package/untyped.ts +60 -0
- package/src/executors/clean-package/utils.ts +85 -0
- package/src/executors/esbuild/executor.spec.ts +11 -0
- package/src/executors/esbuild/executor.ts +67 -0
- package/src/executors/esbuild/untyped.ts +20 -0
- package/src/executors/npm-publish/executor.spec.ts +11 -0
- package/src/executors/npm-publish/executor.ts +681 -0
- package/src/executors/npm-publish/untyped.ts +56 -0
- package/src/executors/size-limit/executor.spec.ts +18 -0
- package/src/executors/size-limit/executor.ts +88 -0
- package/src/executors/size-limit/untyped.ts +22 -0
- package/src/executors/typia/executor.ts +54 -0
- package/src/executors/typia/untyped.ts +48 -0
- package/src/executors/unbuild/executor.spec.ts +11 -0
- package/src/executors/unbuild/executor.ts +136 -0
- package/src/executors/unbuild/untyped.ts +152 -0
- package/src/generators/browser-library/generator.spec.ts +20 -0
- package/src/generators/browser-library/generator.ts +109 -0
- package/src/generators/browser-library/untyped.ts +29 -0
- package/src/generators/config-schema/generator.spec.ts +20 -0
- package/src/generators/config-schema/generator.ts +90 -0
- package/src/generators/config-schema/untyped.ts +19 -0
- package/src/generators/init/init.ts +32 -0
- package/src/generators/init/untyped.ts +16 -0
- package/src/generators/neutral-library/generator.spec.ts +20 -0
- package/src/generators/neutral-library/generator.ts +81 -0
- package/src/generators/neutral-library/untyped.ts +29 -0
- package/src/generators/node-library/generator.spec.ts +20 -0
- package/src/generators/node-library/generator.ts +84 -0
- package/src/generators/node-library/untyped.ts +29 -0
- package/src/generators/preset/files/.all-contributorsrc.template +48 -0
- package/src/generators/preset/files/.editorconfig +454 -0
- package/src/generators/preset/files/.env.template +38 -0
- package/src/generators/preset/files/.gitattributes +52 -0
- package/src/generators/preset/files/.github/.nvmrc +1 -0
- package/src/generators/preset/files/.github/CODEOWNERS +3 -0
- package/src/generators/preset/files/.github/CODE_OF_CONDUCT.md +125 -0
- package/src/generators/preset/files/.github/CONTRIBUTING.md.template +15 -0
- package/src/generators/preset/files/.github/FUNDING.yml +3 -0
- package/src/generators/preset/files/.github/ISSUE_TEMPLATE/bug-report.yml.template +102 -0
- package/src/generators/preset/files/.github/ISSUE_TEMPLATE/documentation.yml.template +56 -0
- package/src/generators/preset/files/.github/ISSUE_TEMPLATE/feature-request.yml.template +60 -0
- package/src/generators/preset/files/.github/PULL_REQUEST_TEMPLATE.md.template +39 -0
- package/src/generators/preset/files/.github/SECURITY.md +9 -0
- package/src/generators/preset/files/.github/codecov.yml +29 -0
- package/src/generators/preset/files/.github/dependabot.yml +64 -0
- package/src/generators/preset/files/.github/labels.yml +84 -0
- package/src/generators/preset/files/.github/renovate.json +4 -0
- package/src/generators/preset/files/.github/renovate.json.template +63 -0
- package/src/generators/preset/files/.github/stale.yml +55 -0
- package/src/generators/preset/files/.github/workflows/build-release.yml.template +25 -0
- package/src/generators/preset/files/.github/workflows/code-review.yml +18 -0
- package/src/generators/preset/files/.github/workflows/codeql.yml +84 -0
- package/src/generators/preset/files/.github/workflows/dependabot-update.yml +32 -0
- package/src/generators/preset/files/.github/workflows/git-guardian.yml +23 -0
- package/src/generators/preset/files/.github/workflows/greetings.yml +31 -0
- package/src/generators/preset/files/.github/workflows/labels.yml +31 -0
- package/src/generators/preset/files/.github/workflows/lock.yml +26 -0
- package/src/generators/preset/files/.log4brains.yml.template +5 -0
- package/src/generators/preset/files/.markdownlint.json +155 -0
- package/src/generators/preset/files/.verdaccio/config.yml.template +40 -0
- package/src/generators/preset/files/.vscode/README.md +32 -0
- package/src/generators/preset/files/.vscode/cspell.json +3 -0
- package/src/generators/preset/files/.vscode/extensions.json +14 -0
- package/src/generators/preset/files/.vscode/launch.json +37 -0
- package/src/generators/preset/files/.vscode/settings.json +401 -0
- package/src/generators/preset/files/.vscode/tasks.json +4 -0
- package/src/generators/preset/files/.whitesource +14 -0
- package/src/generators/preset/files/assets/diagrams/.gitkeep +0 -0
- package/src/generators/preset/files/assets/icons/dark/.gitkeep +0 -0
- package/src/generators/preset/files/assets/icons/light/.gitkeep +0 -0
- package/src/generators/preset/files/assets/logos/.gitkeep +0 -0
- package/src/generators/preset/files/docs/api-reference/.gitkeep +0 -0
- package/src/generators/preset/generator.spec.ts +20 -0
- package/src/generators/preset/generator.ts +315 -0
- package/src/generators/preset/untyped.ts +88 -0
- package/src/generators/release-version/generator.spec.ts +20 -0
- package/src/generators/release-version/generator.ts +920 -0
- package/src/generators/release-version/untyped.ts +156 -0
- package/src/plugins/rust/cargo-toml.ts +434 -0
- package/src/plugins/rust/index.ts +1 -0
- package/src/plugins/typescript/index.ts +1 -0
- package/src/plugins/typescript/project-config.ts +564 -0
- package/src/plugins/typescript/tsup.ts +198 -0
- package/src/types.ts +130 -0
- package/src/utils/apply-workspace-tokens.ts +73 -0
- package/src/utils/cargo.ts +219 -0
- package/src/utils/create-cli-options.ts +23 -0
- package/src/utils/get-project-configurations.ts +27 -0
- package/src/utils/index.ts +12 -0
- package/src/utils/lock-file.ts +159 -0
- package/src/utils/package-helpers.ts +54 -0
- package/src/utils/plugin-helpers.ts +112 -0
- package/src/utils/pnpm-deps-update.ts +111 -0
- package/src/utils/project-tags.ts +162 -0
- package/src/utils/toml.ts +204 -0
- package/src/utils/typia-transform.ts +8 -0
- package/src/utils/versions.ts +19 -0
- package/tsconfig.json +30 -0
- package/tsup.config.ts +36 -0
- package/dist/chunk-62LQXZNY.js +0 -282
- package/dist/chunk-F3VG4R53.mjs +0 -282
- package/dist/src/generators/preset/files/LICENSE +0 -201
- package/docs/api/base/base-executor.schema.md +0 -16
- package/docs/api/base/base-generator.schema.md +0 -15
- package/docs/api/base/cargo-base-executor.schema.md +0 -90
- package/docs/api/base/typescript-build-executor.schema.md +0 -126
- package/docs/api/base/typescript-library-generator.schema.md +0 -129
- package/docs/api/executors/cargo-build/schema.md +0 -89
- package/docs/api/executors/cargo-check/schema.md +0 -90
- package/docs/api/executors/cargo-clippy/schema.md +0 -99
- package/docs/api/executors/cargo-doc/schema.md +0 -130
- package/docs/api/executors/cargo-format/schema.md +0 -90
- package/docs/api/executors/cargo-publish/schema.md +0 -117
- package/docs/api/executors/clean-package/schema.md +0 -65
- package/docs/api/executors/esbuild/schema.md +0 -126
- package/docs/api/executors/npm-publish/schema.md +0 -64
- package/docs/api/executors/size-limit/schema.md +0 -25
- package/docs/api/executors/typia/schema.md +0 -46
- package/docs/api/executors/unbuild/schema.md +0 -222
- package/docs/api/generators/browser-library/files/README.md +0 -58
- package/docs/api/generators/browser-library/schema.md +0 -129
- package/docs/api/generators/config-schema/schema.md +0 -25
- package/docs/api/generators/init/schema.md +0 -15
- package/docs/api/generators/neutral-library/files/README.md +0 -58
- package/docs/api/generators/neutral-library/schema.md +0 -129
- package/docs/api/generators/node-library/files/README.md +0 -63
- package/docs/api/generators/node-library/schema.md +0 -129
- package/docs/api/generators/preset/schema.md +0 -110
- package/docs/api/generators/release-version/schema.md +0 -160
- /package/{dist/src → src}/base/base-executor.schema.d.ts +0 -0
- /package/{dist/src → src}/base/base-executor.schema.json +0 -0
- /package/{dist/src → src}/base/base-executor.schema.md +0 -0
- /package/{dist/src → src}/base/base-generator.schema.d.ts +0 -0
- /package/{dist/src → src}/base/base-generator.schema.json +0 -0
- /package/{dist/src → src}/base/base-generator.schema.md +0 -0
- /package/{dist/src → src}/base/cargo-base-executor.schema.d.ts +0 -0
- /package/{dist/src → src}/base/cargo-base-executor.schema.json +0 -0
- /package/{dist/src → src}/base/cargo-base-executor.schema.md +0 -0
- /package/{dist/src → src}/base/typescript-build-executor.schema.d.ts +0 -0
- /package/{dist/src → src}/base/typescript-build-executor.schema.json +0 -0
- /package/{dist/src → src}/base/typescript-build-executor.schema.md +0 -0
- /package/{dist/src → src}/base/typescript-library-generator.schema.d.ts +0 -0
- /package/{dist/src → src}/base/typescript-library-generator.schema.json +0 -0
- /package/{dist/src → src}/base/typescript-library-generator.schema.md +0 -0
- /package/{dist/src → src}/executors/cargo-build/schema.d.ts +0 -0
- /package/{dist/src → src}/executors/cargo-build/schema.json +0 -0
- /package/{dist/src → src}/executors/cargo-build/schema.md +0 -0
- /package/{dist/src → src}/executors/cargo-check/schema.d.ts +0 -0
- /package/{dist/src → src}/executors/cargo-check/schema.json +0 -0
- /package/{dist/src → src}/executors/cargo-check/schema.md +0 -0
- /package/{dist/src → src}/executors/cargo-clippy/schema.d.ts +0 -0
- /package/{dist/src → src}/executors/cargo-clippy/schema.json +0 -0
- /package/{dist/src → src}/executors/cargo-clippy/schema.md +0 -0
- /package/{dist/src → src}/executors/cargo-doc/schema.d.ts +0 -0
- /package/{dist/src → src}/executors/cargo-doc/schema.json +0 -0
- /package/{dist/src → src}/executors/cargo-doc/schema.md +0 -0
- /package/{dist/src → src}/executors/cargo-format/schema.d.ts +0 -0
- /package/{dist/src → src}/executors/cargo-format/schema.json +0 -0
- /package/{dist/src → src}/executors/cargo-format/schema.md +0 -0
- /package/{dist/src → src}/executors/cargo-publish/schema.d.ts +0 -0
- /package/{dist/src → src}/executors/cargo-publish/schema.json +0 -0
- /package/{dist/src → src}/executors/cargo-publish/schema.md +0 -0
- /package/{dist/src → src}/executors/clean-package/schema.d.ts +0 -0
- /package/{dist/src → src}/executors/clean-package/schema.json +0 -0
- /package/{dist/src → src}/executors/clean-package/schema.md +0 -0
- /package/{dist/src → src}/executors/esbuild/schema.d.ts +0 -0
- /package/{dist/src → src}/executors/esbuild/schema.json +0 -0
- /package/{dist/src → src}/executors/esbuild/schema.md +0 -0
- /package/{dist/src → src}/executors/npm-publish/schema.d.ts +0 -0
- /package/{dist/src → src}/executors/npm-publish/schema.json +0 -0
- /package/{dist/src → src}/executors/npm-publish/schema.md +0 -0
- /package/{dist/src → src}/executors/size-limit/schema.d.ts +0 -0
- /package/{dist/src → src}/executors/size-limit/schema.json +0 -0
- /package/{dist/src → src}/executors/size-limit/schema.md +0 -0
- /package/{dist/src → src}/executors/typia/schema.d.ts +0 -0
- /package/{dist/src → src}/executors/typia/schema.json +0 -0
- /package/{dist/src → src}/executors/typia/schema.md +0 -0
- /package/{dist/src → src}/executors/unbuild/schema.d.ts +0 -0
- /package/{dist/src → src}/executors/unbuild/schema.json +0 -0
- /package/{dist/src → src}/executors/unbuild/schema.md +0 -0
- /package/{dist/src → src}/generators/browser-library/files/README.md +0 -0
- /package/{dist/src → src}/generators/browser-library/files/jest.config.ts +0 -0
- /package/{dist/src → src}/generators/browser-library/files/src/index.ts.template +0 -0
- /package/{dist/src → src}/generators/browser-library/files/tsconfig.spec.json +0 -0
- /package/{dist/src → src}/generators/browser-library/schema.d.ts +0 -0
- /package/{dist/src → src}/generators/browser-library/schema.json +0 -0
- /package/{dist/src → src}/generators/browser-library/schema.md +0 -0
- /package/{dist/src → src}/generators/config-schema/schema.d.ts +0 -0
- /package/{dist/src → src}/generators/config-schema/schema.json +0 -0
- /package/{dist/src → src}/generators/config-schema/schema.md +0 -0
- /package/{dist/src → src}/generators/init/schema.d.ts +0 -0
- /package/{dist/src → src}/generators/init/schema.json +0 -0
- /package/{dist/src → src}/generators/init/schema.md +0 -0
- /package/{dist/src → src}/generators/neutral-library/files/README.md +0 -0
- /package/{dist/src → src}/generators/neutral-library/files/jest.config.ts +0 -0
- /package/{dist/src → src}/generators/neutral-library/files/src/index.ts.template +0 -0
- /package/{dist/src → src}/generators/neutral-library/files/tsconfig.spec.json +0 -0
- /package/{dist/src → src}/generators/neutral-library/schema.d.ts +0 -0
- /package/{dist/src → src}/generators/neutral-library/schema.json +0 -0
- /package/{dist/src → src}/generators/neutral-library/schema.md +0 -0
- /package/{dist/src → src}/generators/node-library/files/README.md +0 -0
- /package/{dist/src → src}/generators/node-library/files/jest.config.ts +0 -0
- /package/{dist/src → src}/generators/node-library/files/src/index.ts.template +0 -0
- /package/{dist/src → src}/generators/node-library/files/tsconfig.spec.json +0 -0
- /package/{dist/src → src}/generators/node-library/schema.d.ts +0 -0
- /package/{dist/src → src}/generators/node-library/schema.json +0 -0
- /package/{dist/src → src}/generators/node-library/schema.md +0 -0
- /package/{LICENSE → src/generators/preset/files/LICENSE} +0 -0
- /package/{dist/src → src}/generators/preset/files/README.md.template +0 -0
- /package/{dist/src → src}/generators/preset/files/docs/readme-templates/README.footer.md.template +0 -0
- /package/{dist/src → src}/generators/preset/files/docs/readme-templates/README.header.md.template +0 -0
- /package/{dist/src → src}/generators/preset/files/eslint.config.js.template +0 -0
- /package/{dist/src → src}/generators/preset/files/knip.json +0 -0
- /package/{dist/src → src}/generators/preset/files/lefthook.json +0 -0
- /package/{dist/src → src}/generators/preset/files/nx.json +0 -0
- /package/{dist/src → src}/generators/preset/files/pnpm-workspace.yaml +0 -0
- /package/{dist/src → src}/generators/preset/files/socket.yaml +0 -0
- /package/{dist/src → src}/generators/preset/files/storm.json.template +0 -0
- /package/{dist/src → src}/generators/preset/files/tsconfig.base.json.template +0 -0
- /package/{dist/src → src}/generators/preset/schema.d.ts +0 -0
- /package/{dist/src → src}/generators/preset/schema.json +0 -0
- /package/{dist/src → src}/generators/preset/schema.md +0 -0
- /package/{dist/src → src}/generators/release-version/schema.d.ts +0 -0
- /package/{dist/src → src}/generators/release-version/schema.json +0 -0
- /package/{dist/src → src}/generators/release-version/schema.md +0 -0
- /package/{dist/src → src}/plugins/typescript/untyped-schema.ts +0 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import {
|
|
2
|
+
output,
|
|
3
|
+
readJsonFile,
|
|
4
|
+
workspaceRoot,
|
|
5
|
+
type CreateDependenciesContext,
|
|
6
|
+
type CreateNodesContext,
|
|
7
|
+
type PackageManager,
|
|
8
|
+
type ProjectGraphExternalNode,
|
|
9
|
+
type RawProjectGraphDependency,
|
|
10
|
+
} from "@nx/devkit";
|
|
11
|
+
import { existsSync } from "node:fs";
|
|
12
|
+
import { join } from "node:path";
|
|
13
|
+
import {
|
|
14
|
+
getNpmLockfileDependencies,
|
|
15
|
+
getNpmLockfileNodes,
|
|
16
|
+
} from "nx/src/plugins/js/lock-file/npm-parser";
|
|
17
|
+
import {
|
|
18
|
+
getPnpmLockfileDependencies,
|
|
19
|
+
getPnpmLockfileNodes,
|
|
20
|
+
} from "nx/src/plugins/js/lock-file/pnpm-parser";
|
|
21
|
+
import {
|
|
22
|
+
getYarnLockfileDependencies,
|
|
23
|
+
getYarnLockfileNodes,
|
|
24
|
+
} from "nx/src/plugins/js/lock-file/yarn-parser";
|
|
25
|
+
|
|
26
|
+
export const YARN_LOCK_FILE = "yarn.lock";
|
|
27
|
+
export const NPM_LOCK_FILE = "package-lock.json";
|
|
28
|
+
export const PNPM_LOCK_FILE = "pnpm-lock.yaml";
|
|
29
|
+
export const LOCK_FILES = [YARN_LOCK_FILE, NPM_LOCK_FILE, PNPM_LOCK_FILE];
|
|
30
|
+
|
|
31
|
+
export const YARN_LOCK_PATH = join(workspaceRoot, YARN_LOCK_FILE);
|
|
32
|
+
export const NPM_LOCK_PATH = join(workspaceRoot, NPM_LOCK_FILE);
|
|
33
|
+
export const PNPM_LOCK_PATH = join(workspaceRoot, PNPM_LOCK_FILE);
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Parses lock file and maps dependencies and metadata to {@link LockFileGraph}
|
|
37
|
+
*/
|
|
38
|
+
export function getLockFileNodes(
|
|
39
|
+
packageManager: PackageManager,
|
|
40
|
+
contents: string,
|
|
41
|
+
lockFileHash: string,
|
|
42
|
+
context: CreateNodesContext,
|
|
43
|
+
): Record<string, ProjectGraphExternalNode> {
|
|
44
|
+
try {
|
|
45
|
+
if (packageManager === "yarn") {
|
|
46
|
+
const packageJson = readJsonFile(
|
|
47
|
+
join(context.workspaceRoot, "package.json"),
|
|
48
|
+
);
|
|
49
|
+
return getYarnLockfileNodes(contents, lockFileHash, packageJson);
|
|
50
|
+
}
|
|
51
|
+
if (packageManager === "pnpm") {
|
|
52
|
+
return getPnpmLockfileNodes(contents, lockFileHash);
|
|
53
|
+
}
|
|
54
|
+
if (packageManager === "npm") {
|
|
55
|
+
return getNpmLockfileNodes(contents, lockFileHash);
|
|
56
|
+
}
|
|
57
|
+
} catch (e) {
|
|
58
|
+
if (!isPostInstallProcess()) {
|
|
59
|
+
output.error({
|
|
60
|
+
title: `Failed to parse ${packageManager} lockfile`,
|
|
61
|
+
bodyLines: errorBodyLines(e),
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
throw e;
|
|
65
|
+
}
|
|
66
|
+
throw new Error(`Unknown package manager: ${packageManager}`);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Parses lock file and maps dependencies and metadata to {@link LockFileGraph}
|
|
71
|
+
*/
|
|
72
|
+
export function getLockFileDependencies(
|
|
73
|
+
packageManager: PackageManager,
|
|
74
|
+
contents: string,
|
|
75
|
+
lockFileHash: string,
|
|
76
|
+
context: CreateDependenciesContext,
|
|
77
|
+
): RawProjectGraphDependency[] {
|
|
78
|
+
try {
|
|
79
|
+
if (packageManager === "yarn") {
|
|
80
|
+
return getYarnLockfileDependencies(contents, lockFileHash, context);
|
|
81
|
+
}
|
|
82
|
+
if (packageManager === "pnpm") {
|
|
83
|
+
return getPnpmLockfileDependencies(contents, lockFileHash, context);
|
|
84
|
+
}
|
|
85
|
+
if (packageManager === "npm") {
|
|
86
|
+
return getNpmLockfileDependencies(contents, lockFileHash, context);
|
|
87
|
+
}
|
|
88
|
+
} catch (e) {
|
|
89
|
+
if (!isPostInstallProcess()) {
|
|
90
|
+
output.error({
|
|
91
|
+
title: `Failed to parse ${packageManager} lockfile`,
|
|
92
|
+
bodyLines: errorBodyLines(e),
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
throw e;
|
|
96
|
+
}
|
|
97
|
+
throw new Error(`Unknown package manager: ${packageManager}`);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export function lockFileExists(packageManager: PackageManager): boolean {
|
|
101
|
+
if (packageManager === "yarn") {
|
|
102
|
+
return existsSync(YARN_LOCK_PATH);
|
|
103
|
+
}
|
|
104
|
+
if (packageManager === "pnpm") {
|
|
105
|
+
return existsSync(PNPM_LOCK_PATH);
|
|
106
|
+
}
|
|
107
|
+
if (packageManager === "npm") {
|
|
108
|
+
return existsSync(NPM_LOCK_PATH);
|
|
109
|
+
}
|
|
110
|
+
throw new Error(
|
|
111
|
+
`Unknown package manager ${packageManager} or lock file missing`,
|
|
112
|
+
);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Returns lock file name based on the detected package manager in the root
|
|
117
|
+
* @param packageManager
|
|
118
|
+
* @returns
|
|
119
|
+
*/
|
|
120
|
+
export function getLockFileName(packageManager: PackageManager): string {
|
|
121
|
+
if (packageManager === "yarn") {
|
|
122
|
+
return YARN_LOCK_FILE;
|
|
123
|
+
}
|
|
124
|
+
if (packageManager === "pnpm") {
|
|
125
|
+
return PNPM_LOCK_FILE;
|
|
126
|
+
}
|
|
127
|
+
if (packageManager === "npm") {
|
|
128
|
+
return NPM_LOCK_FILE;
|
|
129
|
+
}
|
|
130
|
+
throw new Error(`Unknown package manager: ${packageManager}`);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// generate body lines for error message
|
|
134
|
+
function errorBodyLines(
|
|
135
|
+
originalError: Error,
|
|
136
|
+
additionalInfo: string[] = [],
|
|
137
|
+
): string[] {
|
|
138
|
+
const result = [
|
|
139
|
+
"Please open an issue at `https://github.com/storm-software/storm-ops/issues/new?template=1-bug.yml` and provide a reproduction.",
|
|
140
|
+
...(additionalInfo as string[]),
|
|
141
|
+
];
|
|
142
|
+
|
|
143
|
+
if (originalError.message) {
|
|
144
|
+
result.push(`\nOriginal error: ${originalError.message}\n\n`);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
if (originalError.stack) {
|
|
148
|
+
result.push(originalError.stack);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return result;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
function isPostInstallProcess(): boolean {
|
|
155
|
+
return (
|
|
156
|
+
process.env.npm_command === "install" &&
|
|
157
|
+
process.env.npm_lifecycle_event === "postinstall"
|
|
158
|
+
);
|
|
159
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import {
|
|
2
|
+
joinPathFragments,
|
|
3
|
+
ProjectConfiguration,
|
|
4
|
+
readJsonFile,
|
|
5
|
+
} from "@nx/devkit";
|
|
6
|
+
import { existsSync } from "node:fs";
|
|
7
|
+
import type { PackageJson } from "nx/src/utils/package-json.js";
|
|
8
|
+
import { isEqualProjectTag, ProjectTagConstants } from "./project-tags";
|
|
9
|
+
import { CargoToml, parseCargoToml } from "./toml";
|
|
10
|
+
|
|
11
|
+
export type PackageManagerType = "package.json" | "Cargo.toml";
|
|
12
|
+
export const PackageManagerTypes = {
|
|
13
|
+
PackageJson: "package.json" as PackageManagerType,
|
|
14
|
+
CargoToml: "Cargo.toml" as PackageManagerType,
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export type PackageInfo = {
|
|
18
|
+
content: PackageJson | CargoToml;
|
|
19
|
+
type: PackageManagerType;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export const getPackageInfo = (
|
|
23
|
+
project: ProjectConfiguration,
|
|
24
|
+
): null | PackageInfo => {
|
|
25
|
+
if (
|
|
26
|
+
isEqualProjectTag(
|
|
27
|
+
project,
|
|
28
|
+
ProjectTagConstants.Language.TAG_ID,
|
|
29
|
+
ProjectTagConstants.Language.RUST,
|
|
30
|
+
) &&
|
|
31
|
+
existsSync(joinPathFragments(project.root, "Cargo.toml"))
|
|
32
|
+
) {
|
|
33
|
+
return {
|
|
34
|
+
type: "Cargo.toml",
|
|
35
|
+
content: parseCargoToml(joinPathFragments(project.root, "Cargo.toml")),
|
|
36
|
+
};
|
|
37
|
+
} else if (
|
|
38
|
+
isEqualProjectTag(
|
|
39
|
+
project,
|
|
40
|
+
ProjectTagConstants.Language.TAG_ID,
|
|
41
|
+
ProjectTagConstants.Language.TYPESCRIPT,
|
|
42
|
+
) &&
|
|
43
|
+
existsSync(joinPathFragments(project.root, "package.json"))
|
|
44
|
+
) {
|
|
45
|
+
return {
|
|
46
|
+
type: "package.json",
|
|
47
|
+
content: readJsonFile(
|
|
48
|
+
joinPathFragments(project.root, "package.json"),
|
|
49
|
+
) as PackageJson,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return null;
|
|
54
|
+
};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { ProjectConfiguration, readJsonFile } from "@nx/devkit";
|
|
2
|
+
import defu from "defu";
|
|
3
|
+
import { existsSync } from "node:fs";
|
|
4
|
+
import { dirname, join } from "node:path";
|
|
5
|
+
import { PackageJson } from "pkg-types";
|
|
6
|
+
import { getProjectTag, ProjectTagConstants } from "./project-tags";
|
|
7
|
+
|
|
8
|
+
export const getProjectPlatform = (
|
|
9
|
+
project: ProjectConfiguration,
|
|
10
|
+
ignoreTags = false,
|
|
11
|
+
): "node" | "neutral" | "browser" | "worker" => {
|
|
12
|
+
const tsconfigJson = readJsonFile(join(project.root, "tsconfig.json"));
|
|
13
|
+
if (!tsconfigJson) {
|
|
14
|
+
throw new Error(`No tsconfig.json found in project root: ${project.root}`);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const packageJson = readJsonFile(join(project.root, "package.json"));
|
|
18
|
+
if (!packageJson) {
|
|
19
|
+
throw new Error(`No package.json found in project root: ${project.root}`);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
let platformTag: string | undefined = undefined;
|
|
23
|
+
if (!ignoreTags) {
|
|
24
|
+
platformTag = getProjectTag(project, ProjectTagConstants.Platform.TAG_ID);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (platformTag !== ProjectTagConstants.Platform.NEUTRAL) {
|
|
28
|
+
const types = Array.isArray(tsconfigJson.compilerOptions?.types)
|
|
29
|
+
? tsconfigJson.compilerOptions.types
|
|
30
|
+
: [];
|
|
31
|
+
|
|
32
|
+
if (
|
|
33
|
+
platformTag === ProjectTagConstants.Platform.WORKER ||
|
|
34
|
+
types.some(
|
|
35
|
+
(type) => type.toLowerCase() === "@cloudflare/workers-types",
|
|
36
|
+
) ||
|
|
37
|
+
packageJson.devDependencies?.["@cloudflare/workers-types"] ||
|
|
38
|
+
packageJson.devDependencies?.["wrangler"]
|
|
39
|
+
) {
|
|
40
|
+
return "worker";
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (
|
|
44
|
+
platformTag === ProjectTagConstants.Platform.NODE ||
|
|
45
|
+
types?.some((type) => type.toLowerCase() === "node") ||
|
|
46
|
+
packageJson.devDependencies?.["@types/node"]
|
|
47
|
+
) {
|
|
48
|
+
return "node";
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (
|
|
52
|
+
platformTag === ProjectTagConstants.Platform.BROWSER ||
|
|
53
|
+
types?.some((type) => type.toLowerCase() === "dom") ||
|
|
54
|
+
(packageJson.dependencies &&
|
|
55
|
+
Object.keys(packageJson.dependencies).some((dependency) =>
|
|
56
|
+
dependency.includes("react"),
|
|
57
|
+
)) ||
|
|
58
|
+
(packageJson.devDependencies &&
|
|
59
|
+
Object.keys(packageJson.devDependencies).some((devDependency) =>
|
|
60
|
+
devDependency.includes("react"),
|
|
61
|
+
))
|
|
62
|
+
) {
|
|
63
|
+
return "browser";
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return "neutral";
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export const getProjectConfigFromProjectJsonPath = (
|
|
71
|
+
projectJsonPath: string,
|
|
72
|
+
packageJson: PackageJson,
|
|
73
|
+
): ProjectConfiguration => {
|
|
74
|
+
return getProjectConfigFromProjectRoot(dirname(projectJsonPath), packageJson);
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export const getProjectConfigFromProjectRoot = (
|
|
78
|
+
projectRoot: string,
|
|
79
|
+
packageJson: PackageJson,
|
|
80
|
+
): ProjectConfiguration => {
|
|
81
|
+
const { nx, name } = packageJson;
|
|
82
|
+
const projectJson = readJsonFile(join(projectRoot, "project.json"));
|
|
83
|
+
|
|
84
|
+
return defu(nx ?? {}, projectJson, {
|
|
85
|
+
targets: {},
|
|
86
|
+
tags: [],
|
|
87
|
+
name,
|
|
88
|
+
root: projectRoot,
|
|
89
|
+
}) as ProjectConfiguration;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
export const getProjectRoot = (
|
|
93
|
+
configPath: string,
|
|
94
|
+
workspaceRoot: string,
|
|
95
|
+
): string | null => {
|
|
96
|
+
try {
|
|
97
|
+
const root = dirname(configPath);
|
|
98
|
+
const projectRoot = join(workspaceRoot, root);
|
|
99
|
+
|
|
100
|
+
if (
|
|
101
|
+
!existsSync(join(projectRoot, "package.json")) &&
|
|
102
|
+
!existsSync(join(projectRoot, "project.json"))
|
|
103
|
+
) {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
return projectRoot;
|
|
108
|
+
} catch (error_) {
|
|
109
|
+
console.error(error_);
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
};
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { joinPaths } from "@storm-software/config-tools";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
4
|
+
import { format } from "prettier";
|
|
5
|
+
import readYamlFile from "read-yaml-file";
|
|
6
|
+
|
|
7
|
+
let pnpmCatalog!: Record<string, string>;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Update package.json dependencies to use pnpm catalog versions
|
|
11
|
+
*
|
|
12
|
+
* @param packageRoot - The root of the package
|
|
13
|
+
* @param workspaceRoot - The root of the workspace
|
|
14
|
+
*/
|
|
15
|
+
export async function pnpmCatalogUpdate(
|
|
16
|
+
packageRoot: string,
|
|
17
|
+
workspaceRoot: string = process.cwd(),
|
|
18
|
+
) {
|
|
19
|
+
if (!pnpmCatalog) {
|
|
20
|
+
const pnpmWorkspacePath = joinPaths(workspaceRoot, "pnpm-workspace.yaml");
|
|
21
|
+
if (!existsSync(pnpmWorkspacePath)) {
|
|
22
|
+
console.warn(
|
|
23
|
+
`No \`pnpm-workspace.yaml\` file found in workspace root (searching in: ${pnpmWorkspacePath}). Skipping pnpm catalog read for now.`,
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const pnpmWorkspaceYaml = await readYamlFile<{
|
|
30
|
+
catalog: Record<string, string>;
|
|
31
|
+
}>(pnpmWorkspacePath);
|
|
32
|
+
console.info(
|
|
33
|
+
`pnpmWorkspaceYaml: ${JSON.stringify(pnpmWorkspaceYaml ?? {})}`,
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
if (pnpmWorkspaceYaml?.catalog) {
|
|
37
|
+
pnpmCatalog = pnpmWorkspaceYaml.catalog;
|
|
38
|
+
} else {
|
|
39
|
+
console.warn(
|
|
40
|
+
`Found a \`pnpm-workspace.yaml\` file in the workspace root directory, but no pnpm catalog existed:
|
|
41
|
+
File name: ${pnpmWorkspacePath}
|
|
42
|
+
File contents: ${pnpmWorkspaceYaml ? JSON.stringify(pnpmWorkspaceYaml) : "EMPTY FILE"}`,
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (!pnpmCatalog) {
|
|
48
|
+
console.warn(
|
|
49
|
+
`No pnpm catalog found. Attempting to read from workspace root's \`pnpm-workspace.yaml\` file.`,
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const packageJsonPath = joinPaths(packageRoot, "package.json");
|
|
54
|
+
const packageJsonFile = await readFile(packageJsonPath, "utf8");
|
|
55
|
+
if (!packageJsonFile) {
|
|
56
|
+
throw new Error(
|
|
57
|
+
"No package.json file found in package root: " + packageRoot,
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const packageJson = JSON.parse(packageJsonFile);
|
|
62
|
+
for (const dependencyType of [
|
|
63
|
+
"dependencies",
|
|
64
|
+
"devDependencies",
|
|
65
|
+
"peerDependencies",
|
|
66
|
+
]) {
|
|
67
|
+
const dependencies = packageJson[dependencyType];
|
|
68
|
+
if (!dependencies) {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
for (const dependencyName of Object.keys(dependencies)) {
|
|
73
|
+
if (dependencies[dependencyName] === "catalog:") {
|
|
74
|
+
if (!pnpmCatalog) {
|
|
75
|
+
throw new Error(
|
|
76
|
+
`Dependency ${dependencyName} is marked as \`catalog:\`, but no catalog exists in the workspace root's \`pnpm-workspace.yaml\` file.`,
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const catalogVersion = pnpmCatalog[dependencyName];
|
|
81
|
+
if (!catalogVersion) {
|
|
82
|
+
throw new Error("Missing pnpm catalog version for " + dependencyName);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
dependencies[dependencyName] = catalogVersion;
|
|
86
|
+
} else if (dependencies[dependencyName].startsWith("catalog:")) {
|
|
87
|
+
throw new Error("multiple named catalogs not supported");
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return writeFile(
|
|
93
|
+
packageJsonPath,
|
|
94
|
+
await format(JSON.stringify(packageJson), {
|
|
95
|
+
parser: "json",
|
|
96
|
+
proseWrap: "always",
|
|
97
|
+
trailingComma: "none",
|
|
98
|
+
tabWidth: 2,
|
|
99
|
+
semi: true,
|
|
100
|
+
singleQuote: false,
|
|
101
|
+
quoteProps: "as-needed",
|
|
102
|
+
insertPragma: false,
|
|
103
|
+
bracketSameLine: true,
|
|
104
|
+
printWidth: 80,
|
|
105
|
+
bracketSpacing: true,
|
|
106
|
+
arrowParens: "avoid",
|
|
107
|
+
endOfLine: "lf",
|
|
108
|
+
plugins: ["prettier-plugin-pkg"],
|
|
109
|
+
}),
|
|
110
|
+
);
|
|
111
|
+
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { ProjectConfiguration } from "@nx/devkit";
|
|
2
|
+
import {
|
|
3
|
+
ProjectTagDistStyleValue,
|
|
4
|
+
ProjectTagLanguageValue,
|
|
5
|
+
ProjectTagPlatformValue,
|
|
6
|
+
ProjectTagRegistryValue,
|
|
7
|
+
ProjectTagTypeValue,
|
|
8
|
+
ProjectTagVariant,
|
|
9
|
+
} from "../types";
|
|
10
|
+
|
|
11
|
+
export const ProjectTagConstants = {
|
|
12
|
+
Language: {
|
|
13
|
+
TAG_ID: "language" as ProjectTagVariant,
|
|
14
|
+
|
|
15
|
+
TYPESCRIPT: "typescript" as ProjectTagLanguageValue,
|
|
16
|
+
RUST: "rust" as ProjectTagLanguageValue,
|
|
17
|
+
},
|
|
18
|
+
ProjectType: {
|
|
19
|
+
TAG_ID: "type" as ProjectTagVariant,
|
|
20
|
+
|
|
21
|
+
LIBRARY: "library" as ProjectTagTypeValue,
|
|
22
|
+
APPLICATION: "application" as ProjectTagTypeValue,
|
|
23
|
+
},
|
|
24
|
+
DistStyle: {
|
|
25
|
+
TAG_ID: "dist-style" as ProjectTagVariant,
|
|
26
|
+
|
|
27
|
+
NORMAL: "normal" as ProjectTagDistStyleValue,
|
|
28
|
+
CLEAN: "clean" as ProjectTagDistStyleValue,
|
|
29
|
+
},
|
|
30
|
+
Provider: {
|
|
31
|
+
TAG_ID: "provider" as ProjectTagVariant,
|
|
32
|
+
},
|
|
33
|
+
Platform: {
|
|
34
|
+
TAG_ID: "platform" as ProjectTagVariant,
|
|
35
|
+
|
|
36
|
+
NODE: "node" as ProjectTagPlatformValue,
|
|
37
|
+
BROWSER: "browser" as ProjectTagPlatformValue,
|
|
38
|
+
NEUTRAL: "neutral" as ProjectTagPlatformValue,
|
|
39
|
+
WORKER: "worker" as ProjectTagPlatformValue,
|
|
40
|
+
},
|
|
41
|
+
Registry: {
|
|
42
|
+
TAG_ID: "registry" as ProjectTagVariant,
|
|
43
|
+
|
|
44
|
+
CARGO: "cargo" as ProjectTagRegistryValue,
|
|
45
|
+
NPM: "npm" as ProjectTagRegistryValue,
|
|
46
|
+
CONTAINER: "container" as ProjectTagRegistryValue,
|
|
47
|
+
CYCLONE: "cyclone" as ProjectTagRegistryValue,
|
|
48
|
+
},
|
|
49
|
+
Plugin: {
|
|
50
|
+
TAG_ID: "plugin" as ProjectTagVariant,
|
|
51
|
+
},
|
|
52
|
+
} as const;
|
|
53
|
+
|
|
54
|
+
export const formatProjectTag = (variant: ProjectTagVariant, value: string) => {
|
|
55
|
+
return `${variant}:${value}`;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export const hasProjectTag = (
|
|
59
|
+
project: ProjectConfiguration,
|
|
60
|
+
variant: ProjectTagVariant,
|
|
61
|
+
) => {
|
|
62
|
+
project.tags = project.tags ?? [];
|
|
63
|
+
|
|
64
|
+
const prefix = formatProjectTag(variant, "");
|
|
65
|
+
return project.tags.some(
|
|
66
|
+
(tag) => tag.startsWith(prefix) && tag.length > prefix.length,
|
|
67
|
+
);
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export const getProjectTag = (
|
|
71
|
+
project: ProjectConfiguration,
|
|
72
|
+
variant: ProjectTagVariant,
|
|
73
|
+
): string | undefined => {
|
|
74
|
+
if (!hasProjectTag(project, variant)) {
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
project.tags = project.tags ?? [];
|
|
79
|
+
const prefix = formatProjectTag(variant, "");
|
|
80
|
+
const tag = project.tags.find((tag) => tag.startsWith(prefix));
|
|
81
|
+
|
|
82
|
+
return tag?.replace(prefix, "");
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export const isEqualProjectTag = (
|
|
86
|
+
project: ProjectConfiguration,
|
|
87
|
+
variant: ProjectTagVariant,
|
|
88
|
+
value: string,
|
|
89
|
+
): boolean => {
|
|
90
|
+
const tag = getProjectTag(project, variant);
|
|
91
|
+
|
|
92
|
+
return !!(tag && tag?.toUpperCase() === value.toUpperCase());
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
export const addProjectTag = (
|
|
96
|
+
project: ProjectConfiguration,
|
|
97
|
+
variant: ProjectTagVariant,
|
|
98
|
+
value: string,
|
|
99
|
+
options: {
|
|
100
|
+
overwrite?: boolean;
|
|
101
|
+
} = {
|
|
102
|
+
overwrite: false,
|
|
103
|
+
},
|
|
104
|
+
) => {
|
|
105
|
+
project.tags = project.tags ?? [];
|
|
106
|
+
if (options.overwrite || !hasProjectTag(project, variant)) {
|
|
107
|
+
project.tags = project.tags.filter(
|
|
108
|
+
(tag) => !tag.startsWith(formatProjectTag(variant, "")),
|
|
109
|
+
);
|
|
110
|
+
project.tags.push(formatProjectTag(variant, value));
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
export const addPluginProjectTag = (
|
|
115
|
+
project: ProjectConfiguration,
|
|
116
|
+
plugin: string,
|
|
117
|
+
) => {
|
|
118
|
+
project.tags = project.tags ?? [];
|
|
119
|
+
project.tags.push(
|
|
120
|
+
formatProjectTag(ProjectTagConstants.Plugin.TAG_ID, plugin),
|
|
121
|
+
);
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
export const setDefaultProjectTags = (
|
|
125
|
+
project: ProjectConfiguration,
|
|
126
|
+
plugin?: string,
|
|
127
|
+
) => {
|
|
128
|
+
project.tags = project.tags ?? [];
|
|
129
|
+
|
|
130
|
+
addProjectTag(
|
|
131
|
+
project,
|
|
132
|
+
ProjectTagConstants.ProjectType.TAG_ID,
|
|
133
|
+
project.projectType === "application"
|
|
134
|
+
? ProjectTagConstants.ProjectType.APPLICATION
|
|
135
|
+
: ProjectTagConstants.ProjectType.LIBRARY,
|
|
136
|
+
{ overwrite: true },
|
|
137
|
+
);
|
|
138
|
+
addProjectTag(
|
|
139
|
+
project,
|
|
140
|
+
ProjectTagConstants.DistStyle.TAG_ID,
|
|
141
|
+
project.targets && Object.keys(project.targets).includes("clean-package")
|
|
142
|
+
? ProjectTagConstants.DistStyle.CLEAN
|
|
143
|
+
: ProjectTagConstants.DistStyle.NORMAL,
|
|
144
|
+
{ overwrite: true },
|
|
145
|
+
);
|
|
146
|
+
addProjectTag(
|
|
147
|
+
project,
|
|
148
|
+
ProjectTagConstants.Platform.TAG_ID,
|
|
149
|
+
project.targets?.build?.options.platform === "node"
|
|
150
|
+
? ProjectTagConstants.Platform.NODE
|
|
151
|
+
: project.targets?.build?.options.platform === "worker"
|
|
152
|
+
? ProjectTagConstants.Platform.WORKER
|
|
153
|
+
: project.targets?.build?.options.platform === "browser"
|
|
154
|
+
? ProjectTagConstants.Platform.BROWSER
|
|
155
|
+
: ProjectTagConstants.Platform.NEUTRAL,
|
|
156
|
+
{ overwrite: false },
|
|
157
|
+
);
|
|
158
|
+
|
|
159
|
+
if (plugin) {
|
|
160
|
+
addPluginProjectTag(project, plugin);
|
|
161
|
+
}
|
|
162
|
+
};
|