@nx/workspace 0.0.0-pr-22179-271588f
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/LICENSE +22 -0
- package/README.md +66 -0
- package/executors.json +11 -0
- package/generators.d.ts +5 -0
- package/generators.js +13 -0
- package/generators.json +59 -0
- package/index.d.ts +12 -0
- package/index.js +33 -0
- package/migrations.json +90 -0
- package/package.json +76 -0
- package/presets/core.json +11 -0
- package/presets/npm.json +7 -0
- package/src/core/file-utils.d.ts +1 -0
- package/src/core/file-utils.js +4 -0
- package/src/core/project-graph.d.ts +1 -0
- package/src/core/project-graph.js +4 -0
- package/src/executors/counter/counter.impl.d.ts +12 -0
- package/src/executors/counter/counter.impl.js +40 -0
- package/src/executors/counter/schema.json +20 -0
- package/src/generators/ci-workflow/ci-workflow.d.ts +6 -0
- package/src/generators/ci-workflow/ci-workflow.js +60 -0
- package/src/generators/ci-workflow/files/azure/azure-pipelines.yml__tmpl__ +54 -0
- package/src/generators/ci-workflow/files/bitbucket-pipelines/bitbucket-pipelines.yml__tmpl__ +41 -0
- package/src/generators/ci-workflow/files/circleci/.circleci/config.yml__tmpl__ +33 -0
- package/src/generators/ci-workflow/files/github/.github/workflows/__workflowFileName__.yml__tmpl__ +38 -0
- package/src/generators/ci-workflow/files/gitlab/.gitlab-ci.yml__tmpl__ +24 -0
- package/src/generators/ci-workflow/schema.json +38 -0
- package/src/generators/convert-to-monorepo/convert-to-monorepo.d.ts +3 -0
- package/src/generators/convert-to-monorepo/convert-to-monorepo.js +41 -0
- package/src/generators/convert-to-monorepo/schema.json +16 -0
- package/src/generators/convert-to-nx-project/convert-to-nx-project.d.ts +5 -0
- package/src/generators/convert-to-nx-project/convert-to-nx-project.js +79 -0
- package/src/generators/convert-to-nx-project/schema.d.ts +7 -0
- package/src/generators/convert-to-nx-project/schema.json +38 -0
- package/src/generators/move/lib/check-destination.d.ts +11 -0
- package/src/generators/move/lib/check-destination.js +21 -0
- package/src/generators/move/lib/create-project-configuration-in-new-destination.d.ts +3 -0
- package/src/generators/move/lib/create-project-configuration-in-new-destination.js +54 -0
- package/src/generators/move/lib/extract-base-configs.d.ts +4 -0
- package/src/generators/move/lib/extract-base-configs.js +43 -0
- package/src/generators/move/lib/move-project-files.d.ts +8 -0
- package/src/generators/move/lib/move-project-files.js +60 -0
- package/src/generators/move/lib/normalize-schema.d.ts +3 -0
- package/src/generators/move/lib/normalize-schema.js +183 -0
- package/src/generators/move/lib/run-angular-plugin.d.ts +3 -0
- package/src/generators/move/lib/run-angular-plugin.js +19 -0
- package/src/generators/move/lib/update-build-targets.d.ts +6 -0
- package/src/generators/move/lib/update-build-targets.js +53 -0
- package/src/generators/move/lib/update-cypress-config.d.ts +10 -0
- package/src/generators/move/lib/update-cypress-config.js +40 -0
- package/src/generators/move/lib/update-default-project.d.ts +10 -0
- package/src/generators/move/lib/update-default-project.js +20 -0
- package/src/generators/move/lib/update-eslint-config.d.ts +8 -0
- package/src/generators/move/lib/update-eslint-config.js +33 -0
- package/src/generators/move/lib/update-implicit-dependencies.d.ts +6 -0
- package/src/generators/move/lib/update-implicit-dependencies.js +19 -0
- package/src/generators/move/lib/update-imports.d.ts +8 -0
- package/src/generators/move/lib/update-imports.js +182 -0
- package/src/generators/move/lib/update-jest-config.d.ts +10 -0
- package/src/generators/move/lib/update-jest-config.js +49 -0
- package/src/generators/move/lib/update-package-json.d.ts +8 -0
- package/src/generators/move/lib/update-package-json.js +24 -0
- package/src/generators/move/lib/update-project-root-files.d.ts +12 -0
- package/src/generators/move/lib/update-project-root-files.js +87 -0
- package/src/generators/move/lib/update-readme.d.ts +8 -0
- package/src/generators/move/lib/update-readme.js +21 -0
- package/src/generators/move/lib/update-storybook-config.d.ts +10 -0
- package/src/generators/move/lib/update-storybook-config.js +43 -0
- package/src/generators/move/lib/utils.d.ts +22 -0
- package/src/generators/move/lib/utils.js +49 -0
- package/src/generators/move/move.d.ts +5 -0
- package/src/generators/move/move.js +63 -0
- package/src/generators/move/schema.d.ts +15 -0
- package/src/generators/move/schema.json +59 -0
- package/src/generators/new/files-integrated-repo/__dot__editorconfig +13 -0
- package/src/generators/new/files-integrated-repo/__dot__gitignore +41 -0
- package/src/generators/new/files-integrated-repo/__dot__vscode/extensions.json__tmpl__ +9 -0
- package/src/generators/new/files-integrated-repo/package.json__tmpl__ +14 -0
- package/src/generators/new/files-package-based-repo/__dot__gitignore +41 -0
- package/src/generators/new/files-package-based-repo/__dot__vscode/extensions.json__tmpl__ +8 -0
- package/src/generators/new/files-package-based-repo/package.json__tmpl__ +13 -0
- package/src/generators/new/files-readme/README.md.template +89 -0
- package/src/generators/new/files-root-app/__dot__gitignore +41 -0
- package/src/generators/new/files-root-app/__dot__vscode/extensions.json__tmpl__ +6 -0
- package/src/generators/new/files-root-app/package.json__tmpl__ +17 -0
- package/src/generators/new/generate-preset.d.ts +4 -0
- package/src/generators/new/generate-preset.js +162 -0
- package/src/generators/new/generate-workspace-files.d.ts +3 -0
- package/src/generators/new/generate-workspace-files.js +190 -0
- package/src/generators/new/new.d.ts +30 -0
- package/src/generators/new/new.js +84 -0
- package/src/generators/new/schema.json +92 -0
- package/src/generators/npm-package/files/index.js.template +1 -0
- package/src/generators/npm-package/npm-package.d.ts +9 -0
- package/src/generators/npm-package/npm-package.js +53 -0
- package/src/generators/npm-package/schema.json +31 -0
- package/src/generators/preset/preset.d.ts +4 -0
- package/src/generators/preset/preset.js +301 -0
- package/src/generators/preset/schema.d.ts +22 -0
- package/src/generators/preset/schema.json +109 -0
- package/src/generators/remove/lib/__fixtures__/jest-project.config.d.ts +14 -0
- package/src/generators/remove/lib/__fixtures__/jest-project.config.js +17 -0
- package/src/generators/remove/lib/__fixtures__/jest.config.d.ts +0 -0
- package/src/generators/remove/lib/__fixtures__/jest.config.js +8 -0
- package/src/generators/remove/lib/check-dependencies.d.ts +7 -0
- package/src/generators/remove/lib/check-dependencies.js +23 -0
- package/src/generators/remove/lib/check-project-is-safe-to-remove.d.ts +3 -0
- package/src/generators/remove/lib/check-project-is-safe-to-remove.js +25 -0
- package/src/generators/remove/lib/check-targets.d.ts +10 -0
- package/src/generators/remove/lib/check-targets.js +68 -0
- package/src/generators/remove/lib/remove-project-references-in-config.d.ts +3 -0
- package/src/generators/remove/lib/remove-project-references-in-config.js +21 -0
- package/src/generators/remove/lib/remove-project.d.ts +5 -0
- package/src/generators/remove/lib/remove-project.js +14 -0
- package/src/generators/remove/lib/update-jest-config.d.ts +6 -0
- package/src/generators/remove/lib/update-jest-config.js +75 -0
- package/src/generators/remove/lib/update-tsconfig.d.ts +8 -0
- package/src/generators/remove/lib/update-tsconfig.js +31 -0
- package/src/generators/remove/remove.d.ts +4 -0
- package/src/generators/remove/remove.js +26 -0
- package/src/generators/remove/schema.d.ts +10 -0
- package/src/generators/remove/schema.json +47 -0
- package/src/generators/run-commands/run-commands.d.ts +4 -0
- package/src/generators/run-commands/run-commands.js +25 -0
- package/src/generators/run-commands/schema.d.ts +8 -0
- package/src/generators/run-commands/schema.json +49 -0
- package/src/generators/utils/get-npm-package-version.d.ts +1 -0
- package/src/generators/utils/get-npm-package-version.js +21 -0
- package/src/generators/utils/insert-import.d.ts +2 -0
- package/src/generators/utils/insert-import.js +47 -0
- package/src/generators/utils/insert-statement.d.ts +5 -0
- package/src/generators/utils/insert-statement.js +33 -0
- package/src/generators/utils/jest-config.d.ts +2 -0
- package/src/generators/utils/jest-config.js +13 -0
- package/src/generators/utils/presets.d.ts +29 -0
- package/src/generators/utils/presets.js +34 -0
- package/src/migrations/update-15-7-0/split-configuration-into-project-json-files.d.ts +3 -0
- package/src/migrations/update-15-7-0/split-configuration-into-project-json-files.js +11 -0
- package/src/migrations/update-16-0-0/fix-invalid-babelrc.d.ts +2 -0
- package/src/migrations/update-16-0-0/fix-invalid-babelrc.js +41 -0
- package/src/migrations/update-16-0-0/move-workspace-generators-to-local-plugin.d.ts +2 -0
- package/src/migrations/update-16-0-0/move-workspace-generators-to-local-plugin.js +187 -0
- package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.d.ts +2 -0
- package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js +9 -0
- package/src/tasks-runner/cache.d.ts +1 -0
- package/src/tasks-runner/cache.js +5 -0
- package/src/tasks-runner/default-tasks-runner.d.ts +1 -0
- package/src/tasks-runner/default-tasks-runner.js +4 -0
- package/src/tasks-runner/life-cycle.d.ts +1 -0
- package/src/tasks-runner/life-cycle.js +5 -0
- package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.d.ts +1 -0
- package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.js +4 -0
- package/src/tasks-runner/tasks-runner.d.ts +2 -0
- package/src/tasks-runner/tasks-runner.js +4 -0
- package/src/tasks-runner/utils.d.ts +1 -0
- package/src/tasks-runner/utils.js +4 -0
- package/src/utilities/app-root.d.ts +1 -0
- package/src/utilities/app-root.js +4 -0
- package/src/utilities/default-base.d.ts +1 -0
- package/src/utilities/default-base.js +15 -0
- package/src/utilities/fileutils.d.ts +13 -0
- package/src/utilities/fileutils.js +51 -0
- package/src/utilities/get-import-path.d.ts +3 -0
- package/src/utilities/get-import-path.js +20 -0
- package/src/utilities/output.d.ts +1 -0
- package/src/utilities/output.js +4 -0
- package/src/utilities/ts-config.d.ts +7 -0
- package/src/utilities/ts-config.js +67 -0
- package/src/utilities/typescript/compilation.d.ts +22 -0
- package/src/utilities/typescript/compilation.js +120 -0
- package/src/utilities/typescript/get-source-nodes.d.ts +5 -0
- package/src/utilities/typescript/get-source-nodes.js +21 -0
- package/src/utilities/typescript.d.ts +13 -0
- package/src/utilities/typescript.js +55 -0
- package/src/utils/ast-utils.d.ts +1 -0
- package/src/utils/ast-utils.js +5 -0
- package/src/utils/cli-config-utils.d.ts +16 -0
- package/src/utils/cli-config-utils.js +29 -0
- package/src/utils/lint.d.ts +4 -0
- package/src/utils/lint.js +2 -0
- package/src/utils/output.d.ts +52 -0
- package/src/utils/output.js +133 -0
- package/src/utils/perf-logging.d.ts +1 -0
- package/src/utils/perf-logging.js +10 -0
- package/src/utils/project-type.d.ts +5 -0
- package/src/utils/project-type.js +17 -0
- package/src/utils/versions.d.ts +3 -0
- package/src/utils/versions.js +8 -0
- package/tasks-runners/default.d.ts +1 -0
- package/tasks-runners/default.js +5 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
|
+
"$id": "NxWorkspaceNew",
|
|
4
|
+
"title": "Create an empty workspace",
|
|
5
|
+
"description": "Create an empty workspace.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"cli": "nx",
|
|
8
|
+
"properties": {
|
|
9
|
+
"name": {
|
|
10
|
+
"description": "The name of the workspace.",
|
|
11
|
+
"type": "string",
|
|
12
|
+
"$default": {
|
|
13
|
+
"$source": "argv",
|
|
14
|
+
"index": 0
|
|
15
|
+
},
|
|
16
|
+
"x-prompt": "What name would you like to use for the workspace?"
|
|
17
|
+
},
|
|
18
|
+
"style": {
|
|
19
|
+
"description": "The file extension to be used for style files.",
|
|
20
|
+
"type": "string",
|
|
21
|
+
"default": "css"
|
|
22
|
+
},
|
|
23
|
+
"routing": {
|
|
24
|
+
"description": "Add routing to the generated application.",
|
|
25
|
+
"type": "boolean",
|
|
26
|
+
"default": true
|
|
27
|
+
},
|
|
28
|
+
"standaloneApi": {
|
|
29
|
+
"description": "Use Standalone Components if generating an Angular application.",
|
|
30
|
+
"type": "boolean",
|
|
31
|
+
"default": false
|
|
32
|
+
},
|
|
33
|
+
"defaultBase": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"description": "Default base branch for affected."
|
|
36
|
+
},
|
|
37
|
+
"skipInstall": {
|
|
38
|
+
"description": "Skip installing dependency packages.",
|
|
39
|
+
"type": "boolean",
|
|
40
|
+
"default": false
|
|
41
|
+
},
|
|
42
|
+
"preset": {
|
|
43
|
+
"description": "What to create in the new workspace.",
|
|
44
|
+
"type": "string"
|
|
45
|
+
},
|
|
46
|
+
"appName": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"description": "Application name."
|
|
49
|
+
},
|
|
50
|
+
"linter": {
|
|
51
|
+
"description": "The tool to use for running lint checks.",
|
|
52
|
+
"type": "string",
|
|
53
|
+
"enum": ["eslint"],
|
|
54
|
+
"default": "eslint"
|
|
55
|
+
},
|
|
56
|
+
"packageManager": {
|
|
57
|
+
"description": "The package manager used to install dependencies.",
|
|
58
|
+
"type": "string",
|
|
59
|
+
"enum": ["npm", "yarn", "pnpm"]
|
|
60
|
+
},
|
|
61
|
+
"framework": {
|
|
62
|
+
"description": "The framework which the application is using",
|
|
63
|
+
"type": "string",
|
|
64
|
+
"enum": ["express", "koa", "fastify", "nest", "none"]
|
|
65
|
+
},
|
|
66
|
+
"nextAppDir": {
|
|
67
|
+
"description": "Enable the App Router for this project.",
|
|
68
|
+
"type": "boolean",
|
|
69
|
+
"default": true
|
|
70
|
+
},
|
|
71
|
+
"nextSrcDir": {
|
|
72
|
+
"description": "Generate a `src` directory for this project.",
|
|
73
|
+
"type": "boolean",
|
|
74
|
+
"default": true
|
|
75
|
+
},
|
|
76
|
+
"e2eTestRunner": {
|
|
77
|
+
"description": "The tool to use for running e2e tests.",
|
|
78
|
+
"type": "string",
|
|
79
|
+
"enum": ["cypress", "playwright", "jest", "detox", "none"]
|
|
80
|
+
},
|
|
81
|
+
"ssr": {
|
|
82
|
+
"description": "Enable Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering) for the Angular application.",
|
|
83
|
+
"type": "boolean",
|
|
84
|
+
"default": false
|
|
85
|
+
},
|
|
86
|
+
"prefix": {
|
|
87
|
+
"description": "The prefix to use for Angular component and directive selectors.",
|
|
88
|
+
"type": "string"
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"additionalProperties": true
|
|
92
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
console.log('Hello World');
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
2
|
+
import { type ProjectNameAndRootFormat } from '@nx/devkit/src/generators/project-name-and-root-utils';
|
|
3
|
+
export interface ProjectOptions {
|
|
4
|
+
name: string;
|
|
5
|
+
directory?: string;
|
|
6
|
+
projectNameAndRootFormat?: ProjectNameAndRootFormat;
|
|
7
|
+
}
|
|
8
|
+
export declare function npmPackageGenerator(tree: Tree, options: ProjectOptions): Promise<void>;
|
|
9
|
+
export declare function npmPackageGeneratorInternal(tree: Tree, _options: ProjectOptions): Promise<void>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.npmPackageGeneratorInternal = exports.npmPackageGenerator = void 0;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const project_name_and_root_utils_1 = require("@nx/devkit/src/generators/project-name-and-root-utils");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const get_import_path_1 = require("../../utilities/get-import-path");
|
|
8
|
+
async function normalizeOptions(tree, options) {
|
|
9
|
+
const { projectName, projectRoot } = await (0, project_name_and_root_utils_1.determineProjectNameAndRootOptions)(tree, {
|
|
10
|
+
name: options.name,
|
|
11
|
+
projectType: 'library',
|
|
12
|
+
directory: options.directory,
|
|
13
|
+
projectNameAndRootFormat: options.projectNameAndRootFormat,
|
|
14
|
+
callingGenerator: '@nx/workspace:npm-package',
|
|
15
|
+
});
|
|
16
|
+
return {
|
|
17
|
+
...options,
|
|
18
|
+
name: projectName,
|
|
19
|
+
projectRoot,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function addFiles(projectRoot, tree, options) {
|
|
23
|
+
const packageJsonPath = (0, path_1.join)(projectRoot, 'package.json');
|
|
24
|
+
(0, devkit_1.writeJson)(tree, packageJsonPath, {
|
|
25
|
+
name: (0, get_import_path_1.getImportPath)(tree, options.name),
|
|
26
|
+
version: '0.0.0',
|
|
27
|
+
scripts: {
|
|
28
|
+
test: 'node index.js',
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
(0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, './files'), projectRoot, {});
|
|
32
|
+
}
|
|
33
|
+
async function npmPackageGenerator(tree, options) {
|
|
34
|
+
return await npmPackageGeneratorInternal(tree, {
|
|
35
|
+
projectNameAndRootFormat: 'derived',
|
|
36
|
+
...options,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
exports.npmPackageGenerator = npmPackageGenerator;
|
|
40
|
+
async function npmPackageGeneratorInternal(tree, _options) {
|
|
41
|
+
const options = await normalizeOptions(tree, _options);
|
|
42
|
+
(0, devkit_1.addProjectConfiguration)(tree, options.name, {
|
|
43
|
+
root: options.projectRoot,
|
|
44
|
+
});
|
|
45
|
+
const fileCount = tree.children(options.projectRoot).length;
|
|
46
|
+
const projectJsonExists = tree.exists((0, path_1.join)(options.projectRoot, 'project.json'));
|
|
47
|
+
const isEmpty = fileCount === 0 || (fileCount === 1 && projectJsonExists);
|
|
48
|
+
if (isEmpty) {
|
|
49
|
+
addFiles(options.projectRoot, tree, options);
|
|
50
|
+
}
|
|
51
|
+
await (0, devkit_1.formatFiles)(tree);
|
|
52
|
+
}
|
|
53
|
+
exports.npmPackageGeneratorInternal = npmPackageGeneratorInternal;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
|
+
"$id": "NxWorkspaceNpmPackage",
|
|
4
|
+
"title": "Add a minimal npm package",
|
|
5
|
+
"description": "Add a minimal npm package.",
|
|
6
|
+
"cli": "nx",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"properties": {
|
|
9
|
+
"name": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"description": "Package name.",
|
|
12
|
+
"$default": {
|
|
13
|
+
"$source": "argv",
|
|
14
|
+
"index": 0
|
|
15
|
+
},
|
|
16
|
+
"x-prompt": "What name of your npm package?",
|
|
17
|
+
"pattern": "(?:^@[a-zA-Z0-9-*~][a-zA-Z0-9-*._~]*\\/[a-zA-Z0-9-~][a-zA-Z0-9-._~]*|^[a-zA-Z][^:]*)$"
|
|
18
|
+
},
|
|
19
|
+
"directory": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "A directory where the package is placed.",
|
|
22
|
+
"alias": "dir"
|
|
23
|
+
},
|
|
24
|
+
"projectNameAndRootFormat": {
|
|
25
|
+
"description": "Whether to generate the project name and root directory as provided (`as-provided`) or generate them composing their values and taking the configured layout into account (`derived`).",
|
|
26
|
+
"type": "string",
|
|
27
|
+
"enum": ["as-provided", "derived"]
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"required": ["name"]
|
|
31
|
+
}
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.presetGenerator = void 0;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const presets_1 = require("../utils/presets");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
async function presetGenerator(tree, options) {
|
|
8
|
+
options = normalizeOptions(options);
|
|
9
|
+
const presetTask = await createPreset(tree, options);
|
|
10
|
+
return async () => {
|
|
11
|
+
(0, devkit_1.installPackagesTask)(tree);
|
|
12
|
+
if (presetTask)
|
|
13
|
+
await presetTask();
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
exports.presetGenerator = presetGenerator;
|
|
17
|
+
exports.default = presetGenerator;
|
|
18
|
+
async function createPreset(tree, options) {
|
|
19
|
+
console.log('Crate preset');
|
|
20
|
+
const nxJson = (0, devkit_1.readNxJson)(tree);
|
|
21
|
+
const addPlugin = process.env.NX_ADD_PLUGINS !== 'false' &&
|
|
22
|
+
nxJson.useInferencePlugins !== false;
|
|
23
|
+
console.log('Add plugin', addPlugin);
|
|
24
|
+
console.log(options.preset, presets_1.Preset.ReactNative);
|
|
25
|
+
if (options.preset === presets_1.Preset.Apps) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
else if (options.preset === presets_1.Preset.AngularMonorepo) {
|
|
29
|
+
const { applicationGenerator: angularApplicationGenerator, } = require('@nx' + '/angular/generators');
|
|
30
|
+
return angularApplicationGenerator(tree, {
|
|
31
|
+
name: options.name,
|
|
32
|
+
directory: (0, path_1.join)('apps', options.name),
|
|
33
|
+
projectNameAndRootFormat: 'as-provided',
|
|
34
|
+
style: options.style,
|
|
35
|
+
linter: options.linter,
|
|
36
|
+
standalone: options.standaloneApi,
|
|
37
|
+
routing: options.routing,
|
|
38
|
+
e2eTestRunner: options.e2eTestRunner ?? 'cypress',
|
|
39
|
+
bundler: options.bundler,
|
|
40
|
+
ssr: options.ssr,
|
|
41
|
+
prefix: options.prefix,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
else if (options.preset === presets_1.Preset.AngularStandalone) {
|
|
45
|
+
const { applicationGenerator: angularApplicationGenerator, } = require('@nx' + '/angular/generators');
|
|
46
|
+
return angularApplicationGenerator(tree, {
|
|
47
|
+
name: options.name,
|
|
48
|
+
directory: '.',
|
|
49
|
+
projectNameAndRootFormat: 'as-provided',
|
|
50
|
+
style: options.style,
|
|
51
|
+
linter: options.linter,
|
|
52
|
+
routing: options.routing,
|
|
53
|
+
rootProject: true,
|
|
54
|
+
standalone: options.standaloneApi,
|
|
55
|
+
e2eTestRunner: options.e2eTestRunner ?? 'cypress',
|
|
56
|
+
bundler: options.bundler,
|
|
57
|
+
ssr: options.ssr,
|
|
58
|
+
prefix: options.prefix,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
else if (options.preset === presets_1.Preset.ReactMonorepo) {
|
|
62
|
+
const { applicationGenerator: reactApplicationGenerator } = require('@nx' +
|
|
63
|
+
'/react');
|
|
64
|
+
return reactApplicationGenerator(tree, {
|
|
65
|
+
name: options.name,
|
|
66
|
+
directory: (0, path_1.join)('apps', options.name),
|
|
67
|
+
projectNameAndRootFormat: 'as-provided',
|
|
68
|
+
style: options.style,
|
|
69
|
+
linter: options.linter,
|
|
70
|
+
bundler: options.bundler ?? 'webpack',
|
|
71
|
+
e2eTestRunner: options.e2eTestRunner ?? 'cypress',
|
|
72
|
+
addPlugin,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
else if (options.preset === presets_1.Preset.ReactStandalone) {
|
|
76
|
+
const { applicationGenerator: reactApplicationGenerator } = require('@nx' +
|
|
77
|
+
'/react');
|
|
78
|
+
return reactApplicationGenerator(tree, {
|
|
79
|
+
name: options.name,
|
|
80
|
+
directory: '.',
|
|
81
|
+
projectNameAndRootFormat: 'as-provided',
|
|
82
|
+
style: options.style,
|
|
83
|
+
linter: options.linter,
|
|
84
|
+
rootProject: true,
|
|
85
|
+
bundler: options.bundler ?? 'vite',
|
|
86
|
+
e2eTestRunner: options.e2eTestRunner ?? 'cypress',
|
|
87
|
+
unitTestRunner: options.bundler === 'vite' ? 'vitest' : 'jest',
|
|
88
|
+
addPlugin,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
else if (options.preset === presets_1.Preset.VueMonorepo) {
|
|
92
|
+
const { applicationGenerator: vueApplicationGenerator } = require('@nx' +
|
|
93
|
+
'/vue');
|
|
94
|
+
return vueApplicationGenerator(tree, {
|
|
95
|
+
name: options.name,
|
|
96
|
+
directory: (0, path_1.join)('apps', options.name),
|
|
97
|
+
projectNameAndRootFormat: 'as-provided',
|
|
98
|
+
style: options.style,
|
|
99
|
+
linter: options.linter,
|
|
100
|
+
e2eTestRunner: options.e2eTestRunner ?? 'cypress',
|
|
101
|
+
addPlugin,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
else if (options.preset === presets_1.Preset.VueStandalone) {
|
|
105
|
+
const { applicationGenerator: vueApplicationGenerator } = require('@nx' +
|
|
106
|
+
'/vue');
|
|
107
|
+
return vueApplicationGenerator(tree, {
|
|
108
|
+
name: options.name,
|
|
109
|
+
directory: '.',
|
|
110
|
+
projectNameAndRootFormat: 'as-provided',
|
|
111
|
+
style: options.style,
|
|
112
|
+
linter: options.linter,
|
|
113
|
+
rootProject: true,
|
|
114
|
+
e2eTestRunner: options.e2eTestRunner ?? 'cypress',
|
|
115
|
+
unitTestRunner: 'vitest',
|
|
116
|
+
addPlugin,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
else if (options.preset === presets_1.Preset.Nuxt) {
|
|
120
|
+
const { applicationGenerator: nuxtApplicationGenerator } = require('@nx' +
|
|
121
|
+
'/nuxt');
|
|
122
|
+
return nuxtApplicationGenerator(tree, {
|
|
123
|
+
name: options.name,
|
|
124
|
+
directory: (0, path_1.join)('apps', options.name),
|
|
125
|
+
projectNameAndRootFormat: 'as-provided',
|
|
126
|
+
style: options.style,
|
|
127
|
+
linter: options.linter,
|
|
128
|
+
e2eTestRunner: options.e2eTestRunner ?? 'cypress',
|
|
129
|
+
addPlugin,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
else if (options.preset === presets_1.Preset.NuxtStandalone) {
|
|
133
|
+
const { applicationGenerator: nuxtApplicationGenerator } = require('@nx' +
|
|
134
|
+
'/nuxt');
|
|
135
|
+
return nuxtApplicationGenerator(tree, {
|
|
136
|
+
name: options.name,
|
|
137
|
+
directory: '.',
|
|
138
|
+
projectNameAndRootFormat: 'as-provided',
|
|
139
|
+
style: options.style,
|
|
140
|
+
linter: options.linter,
|
|
141
|
+
rootProject: true,
|
|
142
|
+
e2eTestRunner: options.e2eTestRunner ?? 'cypress',
|
|
143
|
+
unitTestRunner: 'vitest',
|
|
144
|
+
addPlugin,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
else if (options.preset === presets_1.Preset.NextJs) {
|
|
148
|
+
const { applicationGenerator: nextApplicationGenerator } = require('@nx' +
|
|
149
|
+
'/next');
|
|
150
|
+
return nextApplicationGenerator(tree, {
|
|
151
|
+
name: options.name,
|
|
152
|
+
directory: (0, path_1.join)('apps', options.name),
|
|
153
|
+
projectNameAndRootFormat: 'as-provided',
|
|
154
|
+
style: options.style,
|
|
155
|
+
linter: options.linter,
|
|
156
|
+
appDir: options.nextAppDir,
|
|
157
|
+
src: options.nextSrcDir,
|
|
158
|
+
e2eTestRunner: options.e2eTestRunner ?? 'cypress',
|
|
159
|
+
addPlugin,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
else if (options.preset === presets_1.Preset.NextJsStandalone) {
|
|
163
|
+
const { applicationGenerator: nextApplicationGenerator } = require('@nx' +
|
|
164
|
+
'/next');
|
|
165
|
+
return nextApplicationGenerator(tree, {
|
|
166
|
+
name: options.name,
|
|
167
|
+
directory: '.',
|
|
168
|
+
projectNameAndRootFormat: 'as-provided',
|
|
169
|
+
style: options.style,
|
|
170
|
+
linter: options.linter,
|
|
171
|
+
appDir: options.nextAppDir,
|
|
172
|
+
src: options.nextSrcDir,
|
|
173
|
+
e2eTestRunner: options.e2eTestRunner ?? 'cypress',
|
|
174
|
+
rootProject: true,
|
|
175
|
+
addPlugin,
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
else if (options.preset === presets_1.Preset.WebComponents) {
|
|
179
|
+
const { applicationGenerator: webApplicationGenerator } = require('@nx' +
|
|
180
|
+
'/web');
|
|
181
|
+
return webApplicationGenerator(tree, {
|
|
182
|
+
name: options.name,
|
|
183
|
+
directory: (0, path_1.join)('apps', options.name),
|
|
184
|
+
projectNameAndRootFormat: 'as-provided',
|
|
185
|
+
style: options.style,
|
|
186
|
+
linter: options.linter,
|
|
187
|
+
bundler: 'vite',
|
|
188
|
+
e2eTestRunner: options.e2eTestRunner ?? 'cypress',
|
|
189
|
+
addPlugin,
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
else if (options.preset === presets_1.Preset.Nest) {
|
|
193
|
+
const { applicationGenerator: nestApplicationGenerator } = require('@nx' +
|
|
194
|
+
'/nest');
|
|
195
|
+
return nestApplicationGenerator(tree, {
|
|
196
|
+
name: options.name,
|
|
197
|
+
directory: (0, path_1.join)('apps', options.name),
|
|
198
|
+
projectNameAndRootFormat: 'as-provided',
|
|
199
|
+
linter: options.linter,
|
|
200
|
+
e2eTestRunner: options.e2eTestRunner ?? 'jest',
|
|
201
|
+
addPlugin,
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
else if (options.preset === presets_1.Preset.Express) {
|
|
205
|
+
const { applicationGenerator: expressApplicationGenerator, } = require('@nx' + '/express');
|
|
206
|
+
return expressApplicationGenerator(tree, {
|
|
207
|
+
name: options.name,
|
|
208
|
+
directory: (0, path_1.join)('apps', options.name),
|
|
209
|
+
projectNameAndRootFormat: 'as-provided',
|
|
210
|
+
linter: options.linter,
|
|
211
|
+
e2eTestRunner: options.e2eTestRunner ?? 'jest',
|
|
212
|
+
addPlugin,
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
else if (options.preset === presets_1.Preset.ReactNative) {
|
|
216
|
+
console.log('Before require');
|
|
217
|
+
const { reactNativeApplicationGenerator } = require('@nx' +
|
|
218
|
+
'/react-native');
|
|
219
|
+
console.log('Hello', reactNativeApplicationGenerator);
|
|
220
|
+
console.log('Active require');
|
|
221
|
+
return reactNativeApplicationGenerator(tree, {
|
|
222
|
+
name: options.name,
|
|
223
|
+
directory: (0, path_1.join)('apps', options.name),
|
|
224
|
+
projectNameAndRootFormat: 'as-provided',
|
|
225
|
+
linter: options.linter,
|
|
226
|
+
e2eTestRunner: options.e2eTestRunner ?? 'detox',
|
|
227
|
+
addPlugin,
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
else if (options.preset === presets_1.Preset.Expo) {
|
|
231
|
+
const { expoApplicationGenerator } = require('@nx' + '/expo');
|
|
232
|
+
return expoApplicationGenerator(tree, {
|
|
233
|
+
name: options.name,
|
|
234
|
+
directory: (0, path_1.join)('apps', options.name),
|
|
235
|
+
projectNameAndRootFormat: 'as-provided',
|
|
236
|
+
linter: options.linter,
|
|
237
|
+
e2eTestRunner: options.e2eTestRunner ?? 'detox',
|
|
238
|
+
addPlugin,
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
else if (options.preset === presets_1.Preset.TS) {
|
|
242
|
+
const { initGenerator } = require('@nx' + '/js');
|
|
243
|
+
return initGenerator(tree, {});
|
|
244
|
+
}
|
|
245
|
+
else if (options.preset === presets_1.Preset.TsStandalone) {
|
|
246
|
+
const { libraryGenerator } = require('@nx' + '/js');
|
|
247
|
+
return libraryGenerator(tree, {
|
|
248
|
+
name: options.name,
|
|
249
|
+
directory: '.',
|
|
250
|
+
projectNameAndRootFormat: 'as-provided',
|
|
251
|
+
bundler: 'tsc',
|
|
252
|
+
unitTestRunner: 'vitest',
|
|
253
|
+
testEnvironment: 'node',
|
|
254
|
+
js: options.js,
|
|
255
|
+
rootProject: true,
|
|
256
|
+
addPlugin,
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
else if (options.preset === presets_1.Preset.NodeStandalone) {
|
|
260
|
+
const { applicationGenerator: nodeApplicationGenerator } = require('@nx' +
|
|
261
|
+
'/node');
|
|
262
|
+
const bundler = options.bundler === 'webpack' ? 'webpack' : 'esbuild';
|
|
263
|
+
return nodeApplicationGenerator(tree, {
|
|
264
|
+
bundler,
|
|
265
|
+
name: options.name,
|
|
266
|
+
directory: '.',
|
|
267
|
+
projectNameAndRootFormat: 'as-provided',
|
|
268
|
+
linter: options.linter,
|
|
269
|
+
standaloneConfig: options.standaloneConfig,
|
|
270
|
+
framework: options.framework,
|
|
271
|
+
docker: options.docker,
|
|
272
|
+
rootProject: true,
|
|
273
|
+
e2eTestRunner: options.e2eTestRunner ?? 'jest',
|
|
274
|
+
addPlugin,
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
else if (options.preset === presets_1.Preset.NodeMonorepo) {
|
|
278
|
+
const { applicationGenerator: nodeApplicationGenerator } = require('@nx' +
|
|
279
|
+
'/node');
|
|
280
|
+
const bundler = options.bundler === 'webpack' ? 'webpack' : 'esbuild';
|
|
281
|
+
return nodeApplicationGenerator(tree, {
|
|
282
|
+
bundler,
|
|
283
|
+
name: options.name,
|
|
284
|
+
directory: (0, path_1.join)('apps', options.name),
|
|
285
|
+
projectNameAndRootFormat: 'as-provided',
|
|
286
|
+
linter: options.linter,
|
|
287
|
+
framework: options.framework,
|
|
288
|
+
docker: options.docker,
|
|
289
|
+
rootProject: false,
|
|
290
|
+
e2eTestRunner: options.e2eTestRunner ?? 'jest',
|
|
291
|
+
addPlugin,
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
throw new Error(`Invalid preset ${options.preset}`);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
function normalizeOptions(options) {
|
|
299
|
+
options.name = (0, devkit_1.names)(options.name).fileName;
|
|
300
|
+
return options;
|
|
301
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Preset } from '../utils/presets';
|
|
2
|
+
import { PackageManager } from '@nx/devkit';
|
|
3
|
+
|
|
4
|
+
export interface Schema {
|
|
5
|
+
name: string;
|
|
6
|
+
preset: Preset;
|
|
7
|
+
style?: string;
|
|
8
|
+
linter?: string;
|
|
9
|
+
standaloneConfig?: boolean;
|
|
10
|
+
framework?: string;
|
|
11
|
+
packageManager?: PackageManager;
|
|
12
|
+
bundler?: 'vite' | 'webpack' | 'rspack' | 'esbuild';
|
|
13
|
+
docker?: boolean;
|
|
14
|
+
nextAppDir?: boolean;
|
|
15
|
+
nextSrcDir?: boolean;
|
|
16
|
+
routing?: boolean;
|
|
17
|
+
standaloneApi?: boolean;
|
|
18
|
+
e2eTestRunner?: 'cypress' | 'playwright' | 'jest' | 'detox' | 'none';
|
|
19
|
+
js?: boolean;
|
|
20
|
+
ssr?: boolean;
|
|
21
|
+
prefix?: string;
|
|
22
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
|
+
"$id": "NxWorkspacePreset",
|
|
4
|
+
"cli": "nx",
|
|
5
|
+
"title": "Creates applications in a new workspace",
|
|
6
|
+
"description": "Creates applications in a new workspace.",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"properties": {
|
|
9
|
+
"preset": {
|
|
10
|
+
"description": "The name of the preset.",
|
|
11
|
+
"type": "string"
|
|
12
|
+
},
|
|
13
|
+
"name": {
|
|
14
|
+
"description": "The name of the application.",
|
|
15
|
+
"type": "string"
|
|
16
|
+
},
|
|
17
|
+
"linter": {
|
|
18
|
+
"description": "The tool to use for running lint checks.",
|
|
19
|
+
"type": "string",
|
|
20
|
+
"enum": ["eslint"],
|
|
21
|
+
"default": "eslint"
|
|
22
|
+
},
|
|
23
|
+
"routing": {
|
|
24
|
+
"description": "Add routing to the generated application.",
|
|
25
|
+
"type": "boolean",
|
|
26
|
+
"default": true
|
|
27
|
+
},
|
|
28
|
+
"style": {
|
|
29
|
+
"description": "The file extension to be used for style files.",
|
|
30
|
+
"type": "string",
|
|
31
|
+
"default": "css",
|
|
32
|
+
"x-prompt": {
|
|
33
|
+
"message": "Which stylesheet format would you like to use?",
|
|
34
|
+
"type": "list",
|
|
35
|
+
"items": [
|
|
36
|
+
{
|
|
37
|
+
"value": "css",
|
|
38
|
+
"label": "CSS"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"value": "scss",
|
|
42
|
+
"label": "SASS(.scss) [ https://sass-lang.com ]"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"value": "less",
|
|
46
|
+
"label": "LESS [ https://lesscss.org ]"
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"standaloneApi": {
|
|
52
|
+
"description": "Use Standalone Components if generating an Angular application.",
|
|
53
|
+
"type": "boolean",
|
|
54
|
+
"default": false
|
|
55
|
+
},
|
|
56
|
+
"standaloneConfig": {
|
|
57
|
+
"description": "Split the project configurations into `<projectRoot>/project.json` rather than including it inside `workspace.json`.",
|
|
58
|
+
"type": "boolean",
|
|
59
|
+
"default": true,
|
|
60
|
+
"x-deprecated": "Nx only supports standaloneConfig"
|
|
61
|
+
},
|
|
62
|
+
"packageManager": {
|
|
63
|
+
"description": "The package manager used to install dependencies.",
|
|
64
|
+
"type": "string",
|
|
65
|
+
"enum": ["npm", "yarn", "pnpm"]
|
|
66
|
+
},
|
|
67
|
+
"framework": {
|
|
68
|
+
"description": "The framework which the application is using",
|
|
69
|
+
"type": "string",
|
|
70
|
+
"enum": ["express", "koa", "fastify", "nest", "none"]
|
|
71
|
+
},
|
|
72
|
+
"bundler": {
|
|
73
|
+
"description": "The bundler to use for building the application.",
|
|
74
|
+
"type": "string",
|
|
75
|
+
"enum": ["webpack", "vite", "rspack", "esbuild"],
|
|
76
|
+
"default": "vite"
|
|
77
|
+
},
|
|
78
|
+
"docker": {
|
|
79
|
+
"description": "Generate a Dockerfile",
|
|
80
|
+
"type": "boolean",
|
|
81
|
+
"default": false
|
|
82
|
+
},
|
|
83
|
+
"nextAppDir": {
|
|
84
|
+
"description": "Enable the App Router for this project.",
|
|
85
|
+
"type": "boolean",
|
|
86
|
+
"default": true
|
|
87
|
+
},
|
|
88
|
+
"nextSrcDir": {
|
|
89
|
+
"description": "Generate a `src` directory for this project.",
|
|
90
|
+
"type": "boolean",
|
|
91
|
+
"default": true
|
|
92
|
+
},
|
|
93
|
+
"e2eTestRunner": {
|
|
94
|
+
"description": "The tool to use for running e2e tests.",
|
|
95
|
+
"type": "string",
|
|
96
|
+
"enum": ["cypress", "playwright", "jest", "detox", "none"]
|
|
97
|
+
},
|
|
98
|
+
"ssr": {
|
|
99
|
+
"description": "Enable Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering) for the Angular application.",
|
|
100
|
+
"type": "boolean",
|
|
101
|
+
"default": false
|
|
102
|
+
},
|
|
103
|
+
"prefix": {
|
|
104
|
+
"description": "The prefix to use for Angular component and directive selectors.",
|
|
105
|
+
"type": "string"
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"required": ["preset", "name"]
|
|
109
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
displayName: string;
|
|
3
|
+
preset: string;
|
|
4
|
+
testEnvironment: string;
|
|
5
|
+
transform: {
|
|
6
|
+
'^.+\\.[tj]s$': (string | {
|
|
7
|
+
tsconfig: string;
|
|
8
|
+
})[];
|
|
9
|
+
};
|
|
10
|
+
moduleFileExtensions: string[];
|
|
11
|
+
coverageDirectory: string;
|
|
12
|
+
testMatch: string[];
|
|
13
|
+
};
|
|
14
|
+
export default _default;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
exports.default = {
|
|
5
|
+
displayName: 'node-app',
|
|
6
|
+
preset: './jest.preset.js',
|
|
7
|
+
testEnvironment: 'node',
|
|
8
|
+
transform: {
|
|
9
|
+
'^.+\\.[tj]s$': ['ts-jest', { tsconfig: '<rootDir>/tsconfig.spec.json' }],
|
|
10
|
+
},
|
|
11
|
+
moduleFileExtensions: ['ts', 'js', 'html'],
|
|
12
|
+
coverageDirectory: './coverage/node-app',
|
|
13
|
+
testMatch: [
|
|
14
|
+
'<rootDir>/src/**/__tests__/**/*.[jt]s?(x)',
|
|
15
|
+
'<rootDir>/src/**/*(*.)@(spec|test).[jt]s?(x)',
|
|
16
|
+
],
|
|
17
|
+
};
|
|
File without changes
|