@nx/devkit 23.0.0-pr.35413.460eeef → 23.0.0-rc.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/{index.d.ts → dist/index.d.ts} +0 -1
- package/dist/internal.d.ts +24 -0
- package/dist/internal.js +85 -0
- package/{ngcli-adapter.d.ts → dist/ngcli-adapter.d.ts} +0 -1
- package/{public-api.d.ts → dist/public-api.d.ts} +0 -1
- package/{src → dist/src}/executors/parse-target-string.d.ts +0 -1
- package/{src → dist/src}/executors/read-target-options.d.ts +0 -1
- package/{src → dist/src}/generators/artifact-name-and-directory-utils.d.ts +0 -1
- package/{src → dist/src}/generators/e2e-web-server-info-utils.d.ts +0 -1
- package/{src → dist/src}/generators/e2e-web-server-info-utils.js +8 -12
- package/{src → dist/src}/generators/executor-options-utils.d.ts +0 -1
- package/{src → dist/src}/generators/format-files.d.ts +0 -1
- package/{src → dist/src}/generators/format-files.js +1 -1
- package/{src → dist/src}/generators/generate-files.d.ts +0 -1
- package/{src → dist/src}/generators/plugin-migrations/aggregate-log-util.d.ts +0 -1
- package/{src → dist/src}/generators/plugin-migrations/executor-to-plugin-migrator.d.ts +4 -4
- package/{src → dist/src}/generators/plugin-migrations/executor-to-plugin-migrator.js +20 -2
- package/{src → dist/src}/generators/plugin-migrations/plugin-migration-utils.d.ts +0 -1
- package/{src → dist/src}/generators/project-name-and-root-utils.d.ts +0 -1
- package/{src → dist/src}/generators/prompt.d.ts +0 -1
- package/{src → dist/src}/generators/run-tasks-in-serial.d.ts +0 -1
- package/dist/src/generators/target-defaults-utils.d.ts +31 -0
- package/dist/src/generators/target-defaults-utils.js +224 -0
- package/{src → dist/src}/generators/to-js.d.ts +0 -1
- package/{src → dist/src}/generators/to-js.js +9 -4
- package/{src → dist/src}/generators/typescript/insert-import.d.ts +0 -1
- package/{src → dist/src}/generators/typescript/insert-statement.d.ts +0 -1
- package/{src → dist/src}/generators/update-ts-configs-to-js.d.ts +0 -1
- package/{src → dist/src}/generators/visit-not-ignored-files.d.ts +0 -1
- package/dist/src/migrations/update-23-0-0/rename-create-nodes-v2-types.d.ts +10 -0
- package/dist/src/migrations/update-23-0-0/rename-create-nodes-v2-types.js +199 -0
- package/dist/src/migrations/update-23-0-0/rename-create-nodes-v2-types.md +29 -0
- package/dist/src/migrations/update-23-0-0/update-deep-imports.d.ts +4 -0
- package/dist/src/migrations/update-23-0-0/update-deep-imports.js +323 -0
- package/dist/src/migrations/update-23-0-0/update-deep-imports.md +43 -0
- package/{src → dist/src}/tasks/install-packages-task.d.ts +0 -1
- package/{src → dist/src}/utils/add-plugin.d.ts +3 -4
- package/{src → dist/src}/utils/add-plugin.js +9 -3
- package/{src → dist/src}/utils/async-iterable/combine-async-iterables.d.ts +0 -1
- package/{src → dist/src}/utils/async-iterable/create-async-iterable.d.ts +0 -1
- package/{src → dist/src}/utils/async-iterable/index.d.ts +0 -1
- package/{src → dist/src}/utils/async-iterable/map-async-iteratable.d.ts +0 -1
- package/{src → dist/src}/utils/async-iterable/tap-async-iteratable.d.ts +0 -1
- package/{src → dist/src}/utils/binary-extensions.d.ts +0 -1
- package/dist/src/utils/calculate-hash-for-create-nodes.d.ts +8 -0
- package/{src → dist/src}/utils/calculate-hash-for-create-nodes.js +12 -5
- package/{src → dist/src}/utils/catalog/index.d.ts +0 -1
- package/{src → dist/src}/utils/catalog/manager-factory.d.ts +0 -1
- package/{src → dist/src}/utils/catalog/manager.d.ts +0 -1
- package/{src → dist/src}/utils/catalog/pnpm-manager.d.ts +0 -1
- package/{src → dist/src}/utils/catalog/types.d.ts +0 -1
- package/{src → dist/src}/utils/catalog/yarn-manager.d.ts +0 -1
- package/{src → dist/src}/utils/config-utils.d.ts +0 -1
- package/{src → dist/src}/utils/config-utils.js +59 -4
- package/{src → dist/src}/utils/convert-nx-executor.d.ts +0 -1
- package/{src → dist/src}/utils/find-plugin-for-config-file.d.ts +0 -1
- package/dist/src/utils/find-plugin-for-config-file.js +34 -0
- package/{src → dist/src}/utils/get-named-inputs.d.ts +2 -3
- package/{src → dist/src}/utils/get-workspace-layout.d.ts +0 -1
- package/dist/src/utils/installed-version.d.ts +29 -0
- package/dist/src/utils/installed-version.js +57 -0
- package/{src → dist/src}/utils/invoke-nx-generator.d.ts +0 -1
- package/{src → dist/src}/utils/log-show-project-command.d.ts +0 -1
- package/{src → dist/src}/utils/move-dir.d.ts +0 -1
- package/{src → dist/src}/utils/names.d.ts +0 -1
- package/dist/src/utils/normalize-target-defaults.d.ts +32 -0
- package/dist/src/utils/normalize-target-defaults.js +84 -0
- package/{src → dist/src}/utils/offset-from-root.d.ts +0 -1
- package/{src → dist/src}/utils/package-json.d.ts +0 -1
- package/{src → dist/src}/utils/package-json.js +1 -1
- package/dist/src/utils/replace-project-configuration-with-plugin.d.ts +2 -0
- package/{src → dist/src}/utils/rxjs-for-await.d.ts +0 -1
- package/{src → dist/src}/utils/semver.d.ts +0 -1
- package/{src → dist/src}/utils/string-change.d.ts +0 -1
- package/{src → dist/src}/utils/string-utils.d.ts +0 -1
- package/dist/src/utils/version-floor.d.ts +37 -0
- package/dist/src/utils/version-floor.js +71 -0
- package/{src → dist/src}/utils/versions.d.ts +0 -1
- package/{testing.d.ts → dist/testing.d.ts} +0 -1
- package/migrations.json +16 -3
- package/package.json +59 -8
- package/assets.json +0 -15
- package/index.d.ts.map +0 -1
- package/internal.d.ts +0 -2
- package/internal.d.ts.map +0 -1
- package/internal.js +0 -8
- package/ngcli-adapter.d.ts.map +0 -1
- package/project.json +0 -14
- package/public-api.d.ts.map +0 -1
- package/src/executors/parse-target-string.d.ts.map +0 -1
- package/src/executors/read-target-options.d.ts.map +0 -1
- package/src/generators/artifact-name-and-directory-utils.d.ts.map +0 -1
- package/src/generators/e2e-web-server-info-utils.d.ts.map +0 -1
- package/src/generators/executor-options-utils.d.ts.map +0 -1
- package/src/generators/format-files.d.ts.map +0 -1
- package/src/generators/generate-files.d.ts.map +0 -1
- package/src/generators/plugin-migrations/aggregate-log-util.d.ts.map +0 -1
- package/src/generators/plugin-migrations/executor-to-plugin-migrator.d.ts.map +0 -1
- package/src/generators/plugin-migrations/plugin-migration-utils.d.ts.map +0 -1
- package/src/generators/project-name-and-root-utils.d.ts.map +0 -1
- package/src/generators/prompt.d.ts.map +0 -1
- package/src/generators/run-tasks-in-serial.d.ts.map +0 -1
- package/src/generators/target-defaults-utils.d.ts +0 -4
- package/src/generators/target-defaults-utils.d.ts.map +0 -1
- package/src/generators/target-defaults-utils.js +0 -97
- package/src/generators/to-js.d.ts.map +0 -1
- package/src/generators/typescript/insert-import.d.ts.map +0 -1
- package/src/generators/typescript/insert-statement.d.ts.map +0 -1
- package/src/generators/update-ts-configs-to-js.d.ts.map +0 -1
- package/src/generators/visit-not-ignored-files.d.ts.map +0 -1
- package/src/tasks/install-packages-task.d.ts.map +0 -1
- package/src/utils/add-plugin.d.ts.map +0 -1
- package/src/utils/async-iterable/combine-async-iterables.d.ts.map +0 -1
- package/src/utils/async-iterable/create-async-iterable.d.ts.map +0 -1
- package/src/utils/async-iterable/index.d.ts.map +0 -1
- package/src/utils/async-iterable/map-async-iteratable.d.ts.map +0 -1
- package/src/utils/async-iterable/tap-async-iteratable.d.ts.map +0 -1
- package/src/utils/binary-extensions.d.ts.map +0 -1
- package/src/utils/calculate-hash-for-create-nodes.d.ts +0 -4
- package/src/utils/calculate-hash-for-create-nodes.d.ts.map +0 -1
- package/src/utils/catalog/index.d.ts.map +0 -1
- package/src/utils/catalog/manager-factory.d.ts.map +0 -1
- package/src/utils/catalog/manager.d.ts.map +0 -1
- package/src/utils/catalog/pnpm-manager.d.ts.map +0 -1
- package/src/utils/catalog/types.d.ts.map +0 -1
- package/src/utils/catalog/yarn-manager.d.ts.map +0 -1
- package/src/utils/config-utils.d.ts.map +0 -1
- package/src/utils/convert-nx-executor.d.ts.map +0 -1
- package/src/utils/find-plugin-for-config-file.d.ts.map +0 -1
- package/src/utils/find-plugin-for-config-file.js +0 -61
- package/src/utils/get-named-inputs.d.ts.map +0 -1
- package/src/utils/get-workspace-layout.d.ts.map +0 -1
- package/src/utils/invoke-nx-generator.d.ts.map +0 -1
- package/src/utils/log-show-project-command.d.ts.map +0 -1
- package/src/utils/move-dir.d.ts.map +0 -1
- package/src/utils/names.d.ts.map +0 -1
- package/src/utils/offset-from-root.d.ts.map +0 -1
- package/src/utils/package-json.d.ts.map +0 -1
- package/src/utils/replace-package.d.ts +0 -3
- package/src/utils/replace-package.d.ts.map +0 -1
- package/src/utils/replace-package.js +0 -124
- package/src/utils/replace-project-configuration-with-plugin.d.ts +0 -3
- package/src/utils/replace-project-configuration-with-plugin.d.ts.map +0 -1
- package/src/utils/rxjs-for-await.d.ts.map +0 -1
- package/src/utils/semver.d.ts.map +0 -1
- package/src/utils/string-change.d.ts.map +0 -1
- package/src/utils/string-utils.d.ts.map +0 -1
- package/src/utils/versions.d.ts.map +0 -1
- package/testing.d.ts.map +0 -1
- /package/{LICENSE → dist/LICENSE} +0 -0
- /package/{index.js → dist/index.js} +0 -0
- /package/{ngcli-adapter.js → dist/ngcli-adapter.js} +0 -0
- /package/{public-api.js → dist/public-api.js} +0 -0
- /package/{src → dist/src}/executors/parse-target-string.js +0 -0
- /package/{src → dist/src}/executors/read-target-options.js +0 -0
- /package/{src → dist/src}/generators/artifact-name-and-directory-utils.js +0 -0
- /package/{src → dist/src}/generators/executor-options-utils.js +0 -0
- /package/{src → dist/src}/generators/generate-files.js +0 -0
- /package/{src → dist/src}/generators/plugin-migrations/aggregate-log-util.js +0 -0
- /package/{src → dist/src}/generators/plugin-migrations/plugin-migration-utils.js +0 -0
- /package/{src → dist/src}/generators/project-name-and-root-utils.js +0 -0
- /package/{src → dist/src}/generators/prompt.js +0 -0
- /package/{src → dist/src}/generators/run-tasks-in-serial.js +0 -0
- /package/{src → dist/src}/generators/typescript/insert-import.js +0 -0
- /package/{src → dist/src}/generators/typescript/insert-statement.js +0 -0
- /package/{src → dist/src}/generators/update-ts-configs-to-js.js +0 -0
- /package/{src → dist/src}/generators/visit-not-ignored-files.js +0 -0
- /package/{src → dist/src}/tasks/install-packages-task.js +0 -0
- /package/{src → dist/src}/utils/async-iterable/combine-async-iterables.js +0 -0
- /package/{src → dist/src}/utils/async-iterable/create-async-iterable.js +0 -0
- /package/{src → dist/src}/utils/async-iterable/index.js +0 -0
- /package/{src → dist/src}/utils/async-iterable/map-async-iteratable.js +0 -0
- /package/{src → dist/src}/utils/async-iterable/tap-async-iteratable.js +0 -0
- /package/{src → dist/src}/utils/binary-extensions.js +0 -0
- /package/{src → dist/src}/utils/catalog/index.js +0 -0
- /package/{src → dist/src}/utils/catalog/manager-factory.js +0 -0
- /package/{src → dist/src}/utils/catalog/manager.js +0 -0
- /package/{src → dist/src}/utils/catalog/pnpm-manager.js +0 -0
- /package/{src → dist/src}/utils/catalog/types.js +0 -0
- /package/{src → dist/src}/utils/catalog/yarn-manager.js +0 -0
- /package/{src → dist/src}/utils/convert-nx-executor.js +0 -0
- /package/{src → dist/src}/utils/get-named-inputs.js +0 -0
- /package/{src → dist/src}/utils/get-workspace-layout.js +0 -0
- /package/{src → dist/src}/utils/invoke-nx-generator.js +0 -0
- /package/{src → dist/src}/utils/log-show-project-command.js +0 -0
- /package/{src → dist/src}/utils/move-dir.js +0 -0
- /package/{src → dist/src}/utils/names.js +0 -0
- /package/{src → dist/src}/utils/offset-from-root.js +0 -0
- /package/{src → dist/src}/utils/replace-project-configuration-with-plugin.js +0 -0
- /package/{src → dist/src}/utils/rxjs-for-await.js +0 -0
- /package/{src → dist/src}/utils/semver.js +0 -0
- /package/{src → dist/src}/utils/string-change.js +0 -0
- /package/{src → dist/src}/utils/string-utils.js +0 -0
- /package/{src → dist/src}/utils/versions.js +0 -0
- /package/{testing.js → dist/testing.js} +0 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export { signalToCode, createProjectRootMappingsFromProjectConfigurations, PluginCache, safeWriteFileCache, emitPluginWorkerLog, resolveImplementation, resolveSchema, ImplementationResolutionError, SchemaResolutionError, resolvePrompt, PromptResolutionError, } from 'nx/src/devkit-internals';
|
|
2
|
+
export { determineArtifactNameAndDirectoryOptions, getRelativeCwd, type FileExtensionType, } from './src/generators/artifact-name-and-directory-utils';
|
|
3
|
+
export { getE2EWebServerInfo, type E2EWebServerDetails, } from './src/generators/e2e-web-server-info-utils';
|
|
4
|
+
export { forEachExecutorOptions } from './src/generators/executor-options-utils';
|
|
5
|
+
export { AggregatedLog } from './src/generators/plugin-migrations/aggregate-log-util';
|
|
6
|
+
export { migrateProjectExecutorsToPlugin, migrateProjectExecutorsToPluginV1, NoTargetsToMigrateError, type InferredTargetConfiguration, } from './src/generators/plugin-migrations/executor-to-plugin-migrator';
|
|
7
|
+
export { processTargetOutputs, deleteMatchingProperties, toProjectRelativePath, } from './src/generators/plugin-migrations/plugin-migration-utils';
|
|
8
|
+
export { determineProjectNameAndRootOptions, ensureRootProjectName, resolveImportPath, } from './src/generators/project-name-and-root-utils';
|
|
9
|
+
export { promptWhenInteractive } from './src/generators/prompt';
|
|
10
|
+
export { addBuildTargetDefaults, addE2eCiTargetDefaults, findTargetDefault, readTargetDefaultsForTarget, upsertTargetDefault, } from './src/generators/target-defaults-utils';
|
|
11
|
+
export { downgradeTargetDefaults, normalizeTargetDefaults, } from './src/utils/normalize-target-defaults';
|
|
12
|
+
export { addPlugin } from './src/utils/add-plugin';
|
|
13
|
+
export { getDeclaredPackageVersion, getInstalledPackageVersion, } from './src/utils/installed-version';
|
|
14
|
+
export { assertSupportedInstalledPackageVersion, assertSupportedPackageVersion, } from './src/utils/version-floor';
|
|
15
|
+
export { createAsyncIterable, combineAsyncIterables, mapAsyncIterable, } from './src/utils/async-iterable';
|
|
16
|
+
export { calculateHashForCreateNodes, calculateHashesForCreateNodes, } from './src/utils/calculate-hash-for-create-nodes';
|
|
17
|
+
export { getCatalogManager } from './src/utils/catalog';
|
|
18
|
+
export { loadConfigFile, clearRequireCache } from './src/utils/config-utils';
|
|
19
|
+
export { findPluginForConfigFile } from './src/utils/find-plugin-for-config-file';
|
|
20
|
+
export { getNamedInputs } from './src/utils/get-named-inputs';
|
|
21
|
+
export { logShowProjectCommand } from './src/utils/log-show-project-command';
|
|
22
|
+
export { eachValueFrom } from './src/utils/rxjs-for-await';
|
|
23
|
+
export { checkAndCleanWithSemver } from './src/utils/semver';
|
|
24
|
+
export { camelize, capitalize, classify, dasherize, } from './src/utils/string-utils';
|
package/dist/internal.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.eachValueFrom = exports.logShowProjectCommand = exports.getNamedInputs = exports.findPluginForConfigFile = exports.clearRequireCache = exports.loadConfigFile = exports.getCatalogManager = exports.calculateHashesForCreateNodes = exports.calculateHashForCreateNodes = exports.mapAsyncIterable = exports.combineAsyncIterables = exports.createAsyncIterable = exports.assertSupportedPackageVersion = exports.assertSupportedInstalledPackageVersion = exports.getInstalledPackageVersion = exports.getDeclaredPackageVersion = exports.addPlugin = exports.normalizeTargetDefaults = exports.downgradeTargetDefaults = exports.upsertTargetDefault = exports.readTargetDefaultsForTarget = exports.findTargetDefault = exports.addE2eCiTargetDefaults = exports.addBuildTargetDefaults = exports.promptWhenInteractive = exports.resolveImportPath = exports.ensureRootProjectName = exports.determineProjectNameAndRootOptions = exports.toProjectRelativePath = exports.deleteMatchingProperties = exports.processTargetOutputs = exports.NoTargetsToMigrateError = exports.migrateProjectExecutorsToPluginV1 = exports.migrateProjectExecutorsToPlugin = exports.AggregatedLog = exports.forEachExecutorOptions = exports.getE2EWebServerInfo = exports.getRelativeCwd = exports.determineArtifactNameAndDirectoryOptions = exports.PromptResolutionError = exports.resolvePrompt = exports.SchemaResolutionError = exports.ImplementationResolutionError = exports.resolveSchema = exports.resolveImplementation = exports.emitPluginWorkerLog = exports.safeWriteFileCache = exports.PluginCache = exports.createProjectRootMappingsFromProjectConfigurations = exports.signalToCode = void 0;
|
|
4
|
+
exports.dasherize = exports.classify = exports.capitalize = exports.camelize = exports.checkAndCleanWithSemver = void 0;
|
|
5
|
+
var devkit_internals_1 = require("nx/src/devkit-internals");
|
|
6
|
+
Object.defineProperty(exports, "signalToCode", { enumerable: true, get: function () { return devkit_internals_1.signalToCode; } });
|
|
7
|
+
Object.defineProperty(exports, "createProjectRootMappingsFromProjectConfigurations", { enumerable: true, get: function () { return devkit_internals_1.createProjectRootMappingsFromProjectConfigurations; } });
|
|
8
|
+
Object.defineProperty(exports, "PluginCache", { enumerable: true, get: function () { return devkit_internals_1.PluginCache; } });
|
|
9
|
+
Object.defineProperty(exports, "safeWriteFileCache", { enumerable: true, get: function () { return devkit_internals_1.safeWriteFileCache; } });
|
|
10
|
+
Object.defineProperty(exports, "emitPluginWorkerLog", { enumerable: true, get: function () { return devkit_internals_1.emitPluginWorkerLog; } });
|
|
11
|
+
Object.defineProperty(exports, "resolveImplementation", { enumerable: true, get: function () { return devkit_internals_1.resolveImplementation; } });
|
|
12
|
+
Object.defineProperty(exports, "resolveSchema", { enumerable: true, get: function () { return devkit_internals_1.resolveSchema; } });
|
|
13
|
+
Object.defineProperty(exports, "ImplementationResolutionError", { enumerable: true, get: function () { return devkit_internals_1.ImplementationResolutionError; } });
|
|
14
|
+
Object.defineProperty(exports, "SchemaResolutionError", { enumerable: true, get: function () { return devkit_internals_1.SchemaResolutionError; } });
|
|
15
|
+
Object.defineProperty(exports, "resolvePrompt", { enumerable: true, get: function () { return devkit_internals_1.resolvePrompt; } });
|
|
16
|
+
Object.defineProperty(exports, "PromptResolutionError", { enumerable: true, get: function () { return devkit_internals_1.PromptResolutionError; } });
|
|
17
|
+
// Generators
|
|
18
|
+
var artifact_name_and_directory_utils_1 = require("./src/generators/artifact-name-and-directory-utils");
|
|
19
|
+
Object.defineProperty(exports, "determineArtifactNameAndDirectoryOptions", { enumerable: true, get: function () { return artifact_name_and_directory_utils_1.determineArtifactNameAndDirectoryOptions; } });
|
|
20
|
+
Object.defineProperty(exports, "getRelativeCwd", { enumerable: true, get: function () { return artifact_name_and_directory_utils_1.getRelativeCwd; } });
|
|
21
|
+
var e2e_web_server_info_utils_1 = require("./src/generators/e2e-web-server-info-utils");
|
|
22
|
+
Object.defineProperty(exports, "getE2EWebServerInfo", { enumerable: true, get: function () { return e2e_web_server_info_utils_1.getE2EWebServerInfo; } });
|
|
23
|
+
var executor_options_utils_1 = require("./src/generators/executor-options-utils");
|
|
24
|
+
Object.defineProperty(exports, "forEachExecutorOptions", { enumerable: true, get: function () { return executor_options_utils_1.forEachExecutorOptions; } });
|
|
25
|
+
var aggregate_log_util_1 = require("./src/generators/plugin-migrations/aggregate-log-util");
|
|
26
|
+
Object.defineProperty(exports, "AggregatedLog", { enumerable: true, get: function () { return aggregate_log_util_1.AggregatedLog; } });
|
|
27
|
+
var executor_to_plugin_migrator_1 = require("./src/generators/plugin-migrations/executor-to-plugin-migrator");
|
|
28
|
+
Object.defineProperty(exports, "migrateProjectExecutorsToPlugin", { enumerable: true, get: function () { return executor_to_plugin_migrator_1.migrateProjectExecutorsToPlugin; } });
|
|
29
|
+
Object.defineProperty(exports, "migrateProjectExecutorsToPluginV1", { enumerable: true, get: function () { return executor_to_plugin_migrator_1.migrateProjectExecutorsToPluginV1; } });
|
|
30
|
+
Object.defineProperty(exports, "NoTargetsToMigrateError", { enumerable: true, get: function () { return executor_to_plugin_migrator_1.NoTargetsToMigrateError; } });
|
|
31
|
+
var plugin_migration_utils_1 = require("./src/generators/plugin-migrations/plugin-migration-utils");
|
|
32
|
+
Object.defineProperty(exports, "processTargetOutputs", { enumerable: true, get: function () { return plugin_migration_utils_1.processTargetOutputs; } });
|
|
33
|
+
Object.defineProperty(exports, "deleteMatchingProperties", { enumerable: true, get: function () { return plugin_migration_utils_1.deleteMatchingProperties; } });
|
|
34
|
+
Object.defineProperty(exports, "toProjectRelativePath", { enumerable: true, get: function () { return plugin_migration_utils_1.toProjectRelativePath; } });
|
|
35
|
+
var project_name_and_root_utils_1 = require("./src/generators/project-name-and-root-utils");
|
|
36
|
+
Object.defineProperty(exports, "determineProjectNameAndRootOptions", { enumerable: true, get: function () { return project_name_and_root_utils_1.determineProjectNameAndRootOptions; } });
|
|
37
|
+
Object.defineProperty(exports, "ensureRootProjectName", { enumerable: true, get: function () { return project_name_and_root_utils_1.ensureRootProjectName; } });
|
|
38
|
+
Object.defineProperty(exports, "resolveImportPath", { enumerable: true, get: function () { return project_name_and_root_utils_1.resolveImportPath; } });
|
|
39
|
+
var prompt_1 = require("./src/generators/prompt");
|
|
40
|
+
Object.defineProperty(exports, "promptWhenInteractive", { enumerable: true, get: function () { return prompt_1.promptWhenInteractive; } });
|
|
41
|
+
var target_defaults_utils_1 = require("./src/generators/target-defaults-utils");
|
|
42
|
+
Object.defineProperty(exports, "addBuildTargetDefaults", { enumerable: true, get: function () { return target_defaults_utils_1.addBuildTargetDefaults; } });
|
|
43
|
+
Object.defineProperty(exports, "addE2eCiTargetDefaults", { enumerable: true, get: function () { return target_defaults_utils_1.addE2eCiTargetDefaults; } });
|
|
44
|
+
Object.defineProperty(exports, "findTargetDefault", { enumerable: true, get: function () { return target_defaults_utils_1.findTargetDefault; } });
|
|
45
|
+
Object.defineProperty(exports, "readTargetDefaultsForTarget", { enumerable: true, get: function () { return target_defaults_utils_1.readTargetDefaultsForTarget; } });
|
|
46
|
+
Object.defineProperty(exports, "upsertTargetDefault", { enumerable: true, get: function () { return target_defaults_utils_1.upsertTargetDefault; } });
|
|
47
|
+
var normalize_target_defaults_1 = require("./src/utils/normalize-target-defaults");
|
|
48
|
+
Object.defineProperty(exports, "downgradeTargetDefaults", { enumerable: true, get: function () { return normalize_target_defaults_1.downgradeTargetDefaults; } });
|
|
49
|
+
Object.defineProperty(exports, "normalizeTargetDefaults", { enumerable: true, get: function () { return normalize_target_defaults_1.normalizeTargetDefaults; } });
|
|
50
|
+
// Utils
|
|
51
|
+
var add_plugin_1 = require("./src/utils/add-plugin");
|
|
52
|
+
Object.defineProperty(exports, "addPlugin", { enumerable: true, get: function () { return add_plugin_1.addPlugin; } });
|
|
53
|
+
var installed_version_1 = require("./src/utils/installed-version");
|
|
54
|
+
Object.defineProperty(exports, "getDeclaredPackageVersion", { enumerable: true, get: function () { return installed_version_1.getDeclaredPackageVersion; } });
|
|
55
|
+
Object.defineProperty(exports, "getInstalledPackageVersion", { enumerable: true, get: function () { return installed_version_1.getInstalledPackageVersion; } });
|
|
56
|
+
var version_floor_1 = require("./src/utils/version-floor");
|
|
57
|
+
Object.defineProperty(exports, "assertSupportedInstalledPackageVersion", { enumerable: true, get: function () { return version_floor_1.assertSupportedInstalledPackageVersion; } });
|
|
58
|
+
Object.defineProperty(exports, "assertSupportedPackageVersion", { enumerable: true, get: function () { return version_floor_1.assertSupportedPackageVersion; } });
|
|
59
|
+
var async_iterable_1 = require("./src/utils/async-iterable");
|
|
60
|
+
Object.defineProperty(exports, "createAsyncIterable", { enumerable: true, get: function () { return async_iterable_1.createAsyncIterable; } });
|
|
61
|
+
Object.defineProperty(exports, "combineAsyncIterables", { enumerable: true, get: function () { return async_iterable_1.combineAsyncIterables; } });
|
|
62
|
+
Object.defineProperty(exports, "mapAsyncIterable", { enumerable: true, get: function () { return async_iterable_1.mapAsyncIterable; } });
|
|
63
|
+
var calculate_hash_for_create_nodes_1 = require("./src/utils/calculate-hash-for-create-nodes");
|
|
64
|
+
Object.defineProperty(exports, "calculateHashForCreateNodes", { enumerable: true, get: function () { return calculate_hash_for_create_nodes_1.calculateHashForCreateNodes; } });
|
|
65
|
+
Object.defineProperty(exports, "calculateHashesForCreateNodes", { enumerable: true, get: function () { return calculate_hash_for_create_nodes_1.calculateHashesForCreateNodes; } });
|
|
66
|
+
var catalog_1 = require("./src/utils/catalog");
|
|
67
|
+
Object.defineProperty(exports, "getCatalogManager", { enumerable: true, get: function () { return catalog_1.getCatalogManager; } });
|
|
68
|
+
var config_utils_1 = require("./src/utils/config-utils");
|
|
69
|
+
Object.defineProperty(exports, "loadConfigFile", { enumerable: true, get: function () { return config_utils_1.loadConfigFile; } });
|
|
70
|
+
Object.defineProperty(exports, "clearRequireCache", { enumerable: true, get: function () { return config_utils_1.clearRequireCache; } });
|
|
71
|
+
var find_plugin_for_config_file_1 = require("./src/utils/find-plugin-for-config-file");
|
|
72
|
+
Object.defineProperty(exports, "findPluginForConfigFile", { enumerable: true, get: function () { return find_plugin_for_config_file_1.findPluginForConfigFile; } });
|
|
73
|
+
var get_named_inputs_1 = require("./src/utils/get-named-inputs");
|
|
74
|
+
Object.defineProperty(exports, "getNamedInputs", { enumerable: true, get: function () { return get_named_inputs_1.getNamedInputs; } });
|
|
75
|
+
var log_show_project_command_1 = require("./src/utils/log-show-project-command");
|
|
76
|
+
Object.defineProperty(exports, "logShowProjectCommand", { enumerable: true, get: function () { return log_show_project_command_1.logShowProjectCommand; } });
|
|
77
|
+
var rxjs_for_await_1 = require("./src/utils/rxjs-for-await");
|
|
78
|
+
Object.defineProperty(exports, "eachValueFrom", { enumerable: true, get: function () { return rxjs_for_await_1.eachValueFrom; } });
|
|
79
|
+
var semver_1 = require("./src/utils/semver");
|
|
80
|
+
Object.defineProperty(exports, "checkAndCleanWithSemver", { enumerable: true, get: function () { return semver_1.checkAndCleanWithSemver; } });
|
|
81
|
+
var string_utils_1 = require("./src/utils/string-utils");
|
|
82
|
+
Object.defineProperty(exports, "camelize", { enumerable: true, get: function () { return string_utils_1.camelize; } });
|
|
83
|
+
Object.defineProperty(exports, "capitalize", { enumerable: true, get: function () { return string_utils_1.capitalize; } });
|
|
84
|
+
Object.defineProperty(exports, "classify", { enumerable: true, get: function () { return string_utils_1.classify; } });
|
|
85
|
+
Object.defineProperty(exports, "dasherize", { enumerable: true, get: function () { return string_utils_1.dasherize; } });
|
|
@@ -5,4 +5,3 @@ import type { ExecutorContext, Target } from 'nx/src/devkit-exports';
|
|
|
5
5
|
* Works as if you invoked the target yourself without passing any command lint overrides.
|
|
6
6
|
*/
|
|
7
7
|
export declare function readTargetOptions<T = any>({ project, target, configuration }: Target, context: ExecutorContext): T;
|
|
8
|
-
//# sourceMappingURL=read-target-options.d.ts.map
|
|
@@ -21,4 +21,3 @@ export interface E2EWebServerDetails {
|
|
|
21
21
|
}
|
|
22
22
|
export declare function getE2EWebServerInfo(tree: Tree, projectName: string, pluginOptions: E2EWebServerPluginOptions, defaultValues: E2EWebServerDefaultValues, isPluginBeingAdded: boolean): Promise<E2EWebServerDetails>;
|
|
23
23
|
export {};
|
|
24
|
-
//# sourceMappingURL=e2e-web-server-info-utils.d.ts.map
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getE2EWebServerInfo = getE2EWebServerInfo;
|
|
4
4
|
const devkit_exports_1 = require("nx/src/devkit-exports");
|
|
5
|
+
const target_defaults_utils_1 = require("./target-defaults-utils");
|
|
5
6
|
const find_plugin_for_config_file_1 = require("../utils/find-plugin-for-config-file");
|
|
6
7
|
async function getE2EWebServerInfo(tree, projectName, pluginOptions, defaultValues, isPluginBeingAdded) {
|
|
7
8
|
const pm = (0, devkit_exports_1.getPackageManagerCommand)((0, devkit_exports_1.detectPackageManager)(tree.root));
|
|
@@ -33,23 +34,18 @@ async function getE2EWebServerInfoForPlugin(tree, projectName, pluginOptions, de
|
|
|
33
34
|
}
|
|
34
35
|
const nxJson = (0, devkit_exports_1.readNxJson)(tree);
|
|
35
36
|
let e2ePort = defaultValues.defaultE2EPort ?? 4200;
|
|
36
|
-
|
|
37
|
-
defaultValues.defaultServeTargetName
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
nxJson.targetDefaults?.[foundPlugin.options[pluginOptions.serveTargetName] ??
|
|
42
|
-
defaultValues.defaultServeTargetName].options?.port;
|
|
43
|
-
}
|
|
37
|
+
const serveTargetName = foundPlugin.options[pluginOptions.serveTargetName] ??
|
|
38
|
+
defaultValues.defaultServeTargetName;
|
|
39
|
+
e2ePort =
|
|
40
|
+
(0, target_defaults_utils_1.readTargetDefaultsForTarget)(serveTargetName, nxJson.targetDefaults)?.options
|
|
41
|
+
?.port ?? e2ePort;
|
|
44
42
|
const e2eWebServerAddress = defaultValues.defaultE2EWebServerAddress.replace(/:\d+/, `:${e2ePort}`);
|
|
45
43
|
return {
|
|
46
44
|
e2eWebServerAddress,
|
|
47
|
-
e2eWebServerCommand: `${pm.exec} nx run ${projectName}:${
|
|
48
|
-
defaultValues.defaultServeTargetName}`,
|
|
45
|
+
e2eWebServerCommand: `${pm.exec} nx run ${projectName}:${serveTargetName}`,
|
|
49
46
|
e2eCiWebServerCommand: `${pm.exec} nx run ${projectName}:${foundPlugin.options[pluginOptions.serveStaticTargetName] ??
|
|
50
47
|
defaultValues.defaultServeStaticTargetName}`,
|
|
51
48
|
e2eCiBaseUrl: defaultValues.defaultE2ECiBaseUrl,
|
|
52
|
-
e2eDevServerTarget: `${projectName}:${
|
|
53
|
-
defaultValues.defaultServeTargetName}`,
|
|
49
|
+
e2eDevServerTarget: `${projectName}:${serveTargetName}`,
|
|
54
50
|
};
|
|
55
51
|
}
|
|
@@ -32,7 +32,7 @@ async function formatFiles(tree, options = {}) {
|
|
|
32
32
|
}
|
|
33
33
|
let prettier;
|
|
34
34
|
try {
|
|
35
|
-
prettier = await
|
|
35
|
+
prettier = await import('prettier');
|
|
36
36
|
/**
|
|
37
37
|
* Even after we discovered prettier in node_modules, we need to be sure that the user is intentionally using prettier
|
|
38
38
|
* before proceeding to format with it.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ProjectConfiguration } from 'nx/src/config/workspace-json-project-json';
|
|
2
|
-
import { type
|
|
2
|
+
import { type CreateNodes, type NxJsonConfiguration, type ProjectGraph, type TargetConfiguration, type Tree } from 'nx/src/devkit-exports';
|
|
3
3
|
import { logger as devkitLogger } from 'nx/src/devkit-exports';
|
|
4
4
|
export type InferredTargetConfiguration = TargetConfiguration & {
|
|
5
5
|
name: string;
|
|
@@ -13,14 +13,15 @@ type SkipProjectFilter = (projectConfiguration: ProjectConfiguration) => false |
|
|
|
13
13
|
export declare class NoTargetsToMigrateError extends Error {
|
|
14
14
|
constructor();
|
|
15
15
|
}
|
|
16
|
-
export declare function
|
|
16
|
+
export declare function readTargetDefaultsForExecutor(executor: string, targetDefaults: NxJsonConfiguration['targetDefaults'] | undefined): Partial<TargetConfiguration> | undefined;
|
|
17
|
+
export declare function migrateProjectExecutorsToPlugin<T>(tree: Tree, projectGraph: ProjectGraph, pluginPath: string, createNodesV2: CreateNodes<T>, defaultPluginOptions: T, migrations: Array<{
|
|
17
18
|
executors: string[];
|
|
18
19
|
targetPluginOptionMapper: (targetName: string) => Partial<T>;
|
|
19
20
|
postTargetTransformer: PostTargetTransformer;
|
|
20
21
|
skipProjectFilter?: SkipProjectFilter;
|
|
21
22
|
skipTargetFilter?: SkipTargetFilter;
|
|
22
23
|
}>, specificProjectToMigrate?: string, logger?: typeof devkitLogger): Promise<Map<string, Record<string, string>>>;
|
|
23
|
-
export declare function migrateProjectExecutorsToPluginV1<T>(tree: Tree, projectGraph: ProjectGraph, pluginPath: string, createNodes:
|
|
24
|
+
export declare function migrateProjectExecutorsToPluginV1<T>(tree: Tree, projectGraph: ProjectGraph, pluginPath: string, createNodes: CreateNodes<T>, defaultPluginOptions: T, migrations: Array<{
|
|
24
25
|
executors: string[];
|
|
25
26
|
targetPluginOptionMapper: (targetName: string) => Partial<T>;
|
|
26
27
|
postTargetTransformer: PostTargetTransformer;
|
|
@@ -28,4 +29,3 @@ export declare function migrateProjectExecutorsToPluginV1<T>(tree: Tree, project
|
|
|
28
29
|
skipTargetFilter?: SkipTargetFilter;
|
|
29
30
|
}>, specificProjectToMigrate?: string): Promise<Map<string, Record<string, string>>>;
|
|
30
31
|
export {};
|
|
31
|
-
//# sourceMappingURL=executor-to-plugin-migrator.d.ts.map
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
var _ExecutorToPluginMigrator_instances, _ExecutorToPluginMigrator_projectGraph, _ExecutorToPluginMigrator_executor, _ExecutorToPluginMigrator_pluginPath, _ExecutorToPluginMigrator_pluginOptionsBuilder, _ExecutorToPluginMigrator_postTargetTransformer, _ExecutorToPluginMigrator_skipTargetFilter, _ExecutorToPluginMigrator_skipProjectFilter, _ExecutorToPluginMigrator_specificProjectToMigrate, _ExecutorToPluginMigrator_logger, _ExecutorToPluginMigrator_nxJson, _ExecutorToPluginMigrator_targetDefaultsForExecutor, _ExecutorToPluginMigrator_targetAndProjectsToMigrate, _ExecutorToPluginMigrator_createNodes, _ExecutorToPluginMigrator_createNodesV2, _ExecutorToPluginMigrator_createNodesResultsForTargets, _ExecutorToPluginMigrator_skippedProjects, _ExecutorToPluginMigrator_init, _ExecutorToPluginMigrator_migrateTarget, _ExecutorToPluginMigrator_migrateProject, _ExecutorToPluginMigrator_mergeInputs, _ExecutorToPluginMigrator_getTargetAndProjectsToMigrate, _ExecutorToPluginMigrator_getTargetDefaultsForExecutor, _ExecutorToPluginMigrator_getCreatedTargetForProjectRoot, _ExecutorToPluginMigrator_getCreateNodesResults;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.NoTargetsToMigrateError = void 0;
|
|
5
|
+
exports.readTargetDefaultsForExecutor = readTargetDefaultsForExecutor;
|
|
5
6
|
exports.migrateProjectExecutorsToPlugin = migrateProjectExecutorsToPlugin;
|
|
6
7
|
exports.migrateProjectExecutorsToPluginV1 = migrateProjectExecutorsToPluginV1;
|
|
7
8
|
const tslib_1 = require("tslib");
|
|
@@ -11,6 +12,7 @@ const posix_1 = require("node:path/posix");
|
|
|
11
12
|
const devkit_exports_1 = require("nx/src/devkit-exports");
|
|
12
13
|
const devkit_internals_1 = require("nx/src/devkit-internals");
|
|
13
14
|
const executor_options_utils_1 = require("../executor-options-utils");
|
|
15
|
+
const target_defaults_utils_1 = require("../target-defaults-utils");
|
|
14
16
|
const plugin_migration_utils_1 = require("./plugin-migration-utils");
|
|
15
17
|
const devkit_exports_2 = require("nx/src/devkit-exports");
|
|
16
18
|
class ExecutorToPluginMigrator {
|
|
@@ -169,7 +171,7 @@ _ExecutorToPluginMigrator_projectGraph = new WeakMap(), _ExecutorToPluginMigrato
|
|
|
169
171
|
}
|
|
170
172
|
});
|
|
171
173
|
}, _ExecutorToPluginMigrator_getTargetDefaultsForExecutor = function _ExecutorToPluginMigrator_getTargetDefaultsForExecutor() {
|
|
172
|
-
tslib_1.__classPrivateFieldSet(this, _ExecutorToPluginMigrator_targetDefaultsForExecutor, structuredClone(tslib_1.__classPrivateFieldGet(this,
|
|
174
|
+
tslib_1.__classPrivateFieldSet(this, _ExecutorToPluginMigrator_targetDefaultsForExecutor, structuredClone(readTargetDefaultsForExecutor(tslib_1.__classPrivateFieldGet(this, _ExecutorToPluginMigrator_executor, "f"), tslib_1.__classPrivateFieldGet(this, _ExecutorToPluginMigrator_nxJson, "f").targetDefaults) ?? {}), "f");
|
|
173
175
|
}, _ExecutorToPluginMigrator_getCreatedTargetForProjectRoot = function _ExecutorToPluginMigrator_getCreatedTargetForProjectRoot(targetName, projectRoot) {
|
|
174
176
|
const entry = Object.entries(tslib_1.__classPrivateFieldGet(this, _ExecutorToPluginMigrator_createNodesResultsForTargets, "f").get(targetName)?.projects ?? {}).find(([root]) => root === projectRoot);
|
|
175
177
|
if (!entry) {
|
|
@@ -204,6 +206,22 @@ class NoTargetsToMigrateError extends Error {
|
|
|
204
206
|
}
|
|
205
207
|
}
|
|
206
208
|
exports.NoTargetsToMigrateError = NoTargetsToMigrateError;
|
|
209
|
+
function readTargetDefaultsForExecutor(executor, targetDefaults) {
|
|
210
|
+
// Preserve the legacy record-shape semantics this migrator used before
|
|
211
|
+
// array support: only an unfiltered default keyed directly by executor
|
|
212
|
+
// applies here. Target-scoped or filtered array entries remain opt-in
|
|
213
|
+
// behaviors for callers that can evaluate them in project context.
|
|
214
|
+
const entry = (0, target_defaults_utils_1.findTargetDefault)(targetDefaults, { executor });
|
|
215
|
+
if (!entry) {
|
|
216
|
+
return undefined;
|
|
217
|
+
}
|
|
218
|
+
const config = { ...entry };
|
|
219
|
+
delete config.target;
|
|
220
|
+
delete config.executor;
|
|
221
|
+
delete config.projects;
|
|
222
|
+
delete config.plugin;
|
|
223
|
+
return config;
|
|
224
|
+
}
|
|
207
225
|
async function migrateProjectExecutorsToPlugin(tree, projectGraph, pluginPath, createNodesV2, defaultPluginOptions, migrations, specificProjectToMigrate, logger) {
|
|
208
226
|
const projects = await migrateProjects(tree, projectGraph, pluginPath, undefined, createNodesV2, defaultPluginOptions, migrations, specificProjectToMigrate, logger);
|
|
209
227
|
return projects;
|
|
@@ -316,7 +334,7 @@ async function getCreateNodesResultsForPlugin(tree, pluginConfiguration, pluginP
|
|
|
316
334
|
let projectConfigs;
|
|
317
335
|
try {
|
|
318
336
|
const plugin = new devkit_internals_1.LoadedNxPlugin({ createNodes, createNodesV2, name: pluginPath }, pluginConfiguration);
|
|
319
|
-
projectConfigs = await (0, devkit_internals_1.retrieveProjectConfigurations)([plugin], tree.root, nxJson);
|
|
337
|
+
projectConfigs = await (0, devkit_internals_1.retrieveProjectConfigurations)({ specifiedPlugins: [plugin], defaultPlugins: [] }, tree.root, nxJson);
|
|
320
338
|
}
|
|
321
339
|
catch (e) {
|
|
322
340
|
if (e instanceof devkit_internals_1.ProjectConfigurationsError) {
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type NxJsonConfiguration, type TargetConfiguration, type TargetDefaultEntry, type TargetDefaults, type Tree } from 'nx/src/devkit-exports';
|
|
2
|
+
import { readTargetDefaultsForTarget as readTargetDefaultsForTargetFromNx } from 'nx/src/devkit-internals';
|
|
3
|
+
/**
|
|
4
|
+
* Upsert a `targetDefaults` entry on the provided `nxJson`. Mutates
|
|
5
|
+
* `nxJson` in place and returns it so the caller can chain or batch
|
|
6
|
+
* other edits before persisting via `updateNxJson` exactly once.
|
|
7
|
+
*
|
|
8
|
+
* Always writes the array shape — if the underlying value still uses
|
|
9
|
+
* the legacy record shape, it is upgraded in place. Finds a matching
|
|
10
|
+
* entry by the `(target, executor, projects, plugin)` tuple and merges
|
|
11
|
+
* the given config into it, or appends a new entry. The entry must set
|
|
12
|
+
* at least one of `target` / `executor`.
|
|
13
|
+
*/
|
|
14
|
+
export declare function upsertTargetDefault(tree: Tree, nxJson: NxJsonConfiguration, options: TargetDefaultEntry): NxJsonConfiguration;
|
|
15
|
+
/**
|
|
16
|
+
* Find a `targetDefaults` entry by its locator tuple
|
|
17
|
+
* `(target, executor, projects, plugin)`. Locator keys default to
|
|
18
|
+
* `undefined`, matching only entries that also leave them unset — same
|
|
19
|
+
* semantics as `upsertTargetDefault`. Accepts either array or legacy
|
|
20
|
+
* record shape.
|
|
21
|
+
*
|
|
22
|
+
* Throws when called with an empty locator (no `target`, `executor`,
|
|
23
|
+
* `projects`, or `plugin`). An empty locator is almost always a bug —
|
|
24
|
+
* the caller intended to find a specific entry but forgot to populate
|
|
25
|
+
* the lookup. Returning the first matching entry (or `undefined`) would
|
|
26
|
+
* silently mask the mistake.
|
|
27
|
+
*/
|
|
28
|
+
export declare function findTargetDefault(targetDefaults: TargetDefaults | undefined, locator: Pick<TargetDefaultEntry, 'target' | 'executor' | 'projects' | 'plugin'>): TargetDefaultEntry | undefined;
|
|
29
|
+
export declare function readTargetDefaultsForTarget(targetName: string, targetDefaults: TargetDefaults | undefined, executor?: string, opts?: Parameters<typeof readTargetDefaultsForTargetFromNx>[3]): Partial<TargetConfiguration> | null;
|
|
30
|
+
export declare function addBuildTargetDefaults(tree: Tree, executorName: string, buildTargetName?: string, extraInputs?: TargetConfiguration['inputs']): void;
|
|
31
|
+
export declare function addE2eCiTargetDefaults(tree: Tree, e2ePlugin: string, buildTarget: string, pathToE2EConfigFile: string): Promise<void>;
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.upsertTargetDefault = upsertTargetDefault;
|
|
4
|
+
exports.findTargetDefault = findTargetDefault;
|
|
5
|
+
exports.readTargetDefaultsForTarget = readTargetDefaultsForTarget;
|
|
6
|
+
exports.addBuildTargetDefaults = addBuildTargetDefaults;
|
|
7
|
+
exports.addE2eCiTargetDefaults = addE2eCiTargetDefaults;
|
|
8
|
+
const devkit_exports_1 = require("nx/src/devkit-exports");
|
|
9
|
+
const devkit_internals_1 = require("nx/src/devkit-internals");
|
|
10
|
+
const minimatch_1 = require("minimatch");
|
|
11
|
+
const semver_1 = require("semver");
|
|
12
|
+
const package_json_1 = require("../utils/package-json");
|
|
13
|
+
const normalize_target_defaults_1 = require("../utils/normalize-target-defaults");
|
|
14
|
+
// Only write the array shape on nx >= 23 (workspace placeholder "0.0.1"
|
|
15
|
+
// counts as modern); older nx can't validate it. Major-only compare so
|
|
16
|
+
// pre-release tags like `23.0.0-beta.8` count as nx 23.
|
|
17
|
+
const SUPPORTS_ARRAY_TARGET_DEFAULTS = !(0, semver_1.valid)(package_json_1.NX_VERSION) || package_json_1.NX_VERSION === '0.0.1' || (0, semver_1.major)(package_json_1.NX_VERSION) >= 23;
|
|
18
|
+
/**
|
|
19
|
+
* Upsert a `targetDefaults` entry on the provided `nxJson`. Mutates
|
|
20
|
+
* `nxJson` in place and returns it so the caller can chain or batch
|
|
21
|
+
* other edits before persisting via `updateNxJson` exactly once.
|
|
22
|
+
*
|
|
23
|
+
* Always writes the array shape — if the underlying value still uses
|
|
24
|
+
* the legacy record shape, it is upgraded in place. Finds a matching
|
|
25
|
+
* entry by the `(target, executor, projects, plugin)` tuple and merges
|
|
26
|
+
* the given config into it, or appends a new entry. The entry must set
|
|
27
|
+
* at least one of `target` / `executor`.
|
|
28
|
+
*/
|
|
29
|
+
function upsertTargetDefault(tree, nxJson, options) {
|
|
30
|
+
if (options.target === undefined && options.executor === undefined) {
|
|
31
|
+
throw new Error('upsertTargetDefault requires at least one of `target` or `executor` to be set.');
|
|
32
|
+
}
|
|
33
|
+
const { target, executor, projects, plugin, ...config } = options;
|
|
34
|
+
const originalShape = nxJson.targetDefaults;
|
|
35
|
+
// Copy — `normalizeTargetDefaults` returns the input array as-is when
|
|
36
|
+
// it's already array shape. Without the spread, `entries[matchIndex] = ...`
|
|
37
|
+
// and `entries.push(...)` would mutate the user's array reference (and
|
|
38
|
+
// any other holders of the same `nxJson.targetDefaults` reference).
|
|
39
|
+
const entries = [...normalizeTargetDefaultsForUpsert(tree, originalShape)];
|
|
40
|
+
const matchIndex = entries.findIndex((e) => e.target === target &&
|
|
41
|
+
e.executor === executor &&
|
|
42
|
+
projectsEqual(e.projects, projects) &&
|
|
43
|
+
e.plugin === plugin);
|
|
44
|
+
if (matchIndex >= 0) {
|
|
45
|
+
const existing = entries[matchIndex];
|
|
46
|
+
const { target: et, executor: ee, projects: ep, plugin: ep2, ...existingRest } = existing;
|
|
47
|
+
entries[matchIndex] = buildTargetDefaultEntry(target ?? et, projects ?? ep, plugin ?? ep2, executor ?? ee, { ...existingRest, ...config });
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
entries.push(buildTargetDefaultEntry(target, projects, plugin, executor, config));
|
|
51
|
+
}
|
|
52
|
+
// Preserve the record shape on pre-v23 nx when possible; promote to
|
|
53
|
+
// array if any entry can't be represented in record form.
|
|
54
|
+
if (SUPPORTS_ARRAY_TARGET_DEFAULTS || Array.isArray(originalShape)) {
|
|
55
|
+
nxJson.targetDefaults = entries;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
try {
|
|
59
|
+
nxJson.targetDefaults = (0, normalize_target_defaults_1.downgradeTargetDefaults)(entries);
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
nxJson.targetDefaults = entries;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return nxJson;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Find a `targetDefaults` entry by its locator tuple
|
|
69
|
+
* `(target, executor, projects, plugin)`. Locator keys default to
|
|
70
|
+
* `undefined`, matching only entries that also leave them unset — same
|
|
71
|
+
* semantics as `upsertTargetDefault`. Accepts either array or legacy
|
|
72
|
+
* record shape.
|
|
73
|
+
*
|
|
74
|
+
* Throws when called with an empty locator (no `target`, `executor`,
|
|
75
|
+
* `projects`, or `plugin`). An empty locator is almost always a bug —
|
|
76
|
+
* the caller intended to find a specific entry but forgot to populate
|
|
77
|
+
* the lookup. Returning the first matching entry (or `undefined`) would
|
|
78
|
+
* silently mask the mistake.
|
|
79
|
+
*/
|
|
80
|
+
function findTargetDefault(targetDefaults, locator) {
|
|
81
|
+
if (locator.target === undefined &&
|
|
82
|
+
locator.executor === undefined &&
|
|
83
|
+
locator.projects === undefined &&
|
|
84
|
+
locator.plugin === undefined) {
|
|
85
|
+
throw new Error('findTargetDefault requires at least one of `target`, `executor`, `projects`, or `plugin` on the locator.');
|
|
86
|
+
}
|
|
87
|
+
return (0, normalize_target_defaults_1.normalizeTargetDefaults)(targetDefaults).find((e) => e.target === locator.target &&
|
|
88
|
+
e.executor === locator.executor &&
|
|
89
|
+
projectsEqual(e.projects, locator.projects) &&
|
|
90
|
+
e.plugin === locator.plugin);
|
|
91
|
+
}
|
|
92
|
+
function readTargetDefaultsForTarget(targetName, targetDefaults, executor, opts) {
|
|
93
|
+
if (targetDefaults &&
|
|
94
|
+
!Array.isArray(targetDefaults) &&
|
|
95
|
+
Object.prototype.hasOwnProperty.call(targetDefaults, targetName)) {
|
|
96
|
+
return targetDefaults[targetName] ?? null;
|
|
97
|
+
}
|
|
98
|
+
return (0, devkit_internals_1.readTargetDefaultsForTarget)(targetName, targetDefaults, executor, opts);
|
|
99
|
+
}
|
|
100
|
+
function normalizeTargetDefaultsForUpsert(tree, targetDefaults) {
|
|
101
|
+
if (!targetDefaults) {
|
|
102
|
+
return [];
|
|
103
|
+
}
|
|
104
|
+
if (Array.isArray(targetDefaults)) {
|
|
105
|
+
return targetDefaults;
|
|
106
|
+
}
|
|
107
|
+
return (0, devkit_internals_1.normalizeTargetDefaultsAgainstRootMaps)(targetDefaults, buildProjectRootMap((0, devkit_exports_1.getProjects)(tree)));
|
|
108
|
+
}
|
|
109
|
+
function buildProjectRootMap(projects) {
|
|
110
|
+
return Object.fromEntries([...projects.values()].map((project) => [project.root, project]));
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Construct a `TargetDefaultEntry` with the canonical key order
|
|
114
|
+
* `target → projects → plugin → executor → ...rest`. Locators land first
|
|
115
|
+
* so an entry's filter shape is obvious at a glance; `executor` follows
|
|
116
|
+
* because it doubles as a payload field.
|
|
117
|
+
*/
|
|
118
|
+
function buildTargetDefaultEntry(target, projects, plugin, executor, rest) {
|
|
119
|
+
return {
|
|
120
|
+
...(target !== undefined ? { target } : {}),
|
|
121
|
+
...(projects !== undefined ? { projects } : {}),
|
|
122
|
+
...(plugin !== undefined ? { plugin } : {}),
|
|
123
|
+
...(executor !== undefined ? { executor } : {}),
|
|
124
|
+
...rest,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
// Order-insensitive equality so re-upserts with reordered patterns
|
|
128
|
+
// merge into the same entry rather than appending a duplicate.
|
|
129
|
+
function projectsEqual(a, b) {
|
|
130
|
+
if (a === b)
|
|
131
|
+
return true;
|
|
132
|
+
const aArr = a === undefined ? undefined : Array.isArray(a) ? a : [a];
|
|
133
|
+
const bArr = b === undefined ? undefined : Array.isArray(b) ? b : [b];
|
|
134
|
+
if (!aArr || !bArr)
|
|
135
|
+
return false;
|
|
136
|
+
if (aArr.length !== bArr.length)
|
|
137
|
+
return false;
|
|
138
|
+
const aSet = new Set(aArr);
|
|
139
|
+
if (aSet.size !== aArr.length) {
|
|
140
|
+
// Duplicates inside one array — fall back to positional comparison so
|
|
141
|
+
// we don't silently merge `['a','a']` with `['a']`.
|
|
142
|
+
for (let i = 0; i < aArr.length; i++)
|
|
143
|
+
if (aArr[i] !== bArr[i])
|
|
144
|
+
return false;
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
for (const item of bArr)
|
|
148
|
+
if (!aSet.has(item))
|
|
149
|
+
return false;
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
function addBuildTargetDefaults(tree, executorName, buildTargetName = 'build', extraInputs = []) {
|
|
153
|
+
const nxJson = (0, devkit_exports_1.readNxJson)(tree) ?? {};
|
|
154
|
+
const entries = (0, normalize_target_defaults_1.normalizeTargetDefaults)(nxJson.targetDefaults);
|
|
155
|
+
// Only skip when an *unfiltered* entry already covers this executor.
|
|
156
|
+
// A filtered entry (`projects:` or `plugin:`) only applies to a subset
|
|
157
|
+
// of targets, so it doesn't satisfy the workspace-wide default this
|
|
158
|
+
// helper writes — we still need to add the unfiltered baseline.
|
|
159
|
+
if (entries.some((e) => e.executor === executorName &&
|
|
160
|
+
e.projects === undefined &&
|
|
161
|
+
e.plugin === undefined)) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
upsertTargetDefault(tree, nxJson, {
|
|
165
|
+
executor: executorName,
|
|
166
|
+
cache: true,
|
|
167
|
+
dependsOn: [`^${buildTargetName}`],
|
|
168
|
+
inputs: [
|
|
169
|
+
...(nxJson.namedInputs && 'production' in nxJson.namedInputs
|
|
170
|
+
? ['production', '^production']
|
|
171
|
+
: ['default', '^default']),
|
|
172
|
+
...extraInputs,
|
|
173
|
+
],
|
|
174
|
+
});
|
|
175
|
+
(0, devkit_exports_1.updateNxJson)(tree, nxJson);
|
|
176
|
+
}
|
|
177
|
+
async function addE2eCiTargetDefaults(tree, e2ePlugin, buildTarget, pathToE2EConfigFile) {
|
|
178
|
+
const nxJson = (0, devkit_exports_1.readNxJson)(tree);
|
|
179
|
+
if (!nxJson?.plugins) {
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
const e2ePluginRegistrations = nxJson.plugins.filter((p) => typeof p === 'string' ? p === e2ePlugin : p.plugin === e2ePlugin);
|
|
183
|
+
if (!e2ePluginRegistrations.length) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
const resolvedE2ePlugin = await import(e2ePlugin);
|
|
187
|
+
const e2ePluginGlob = resolvedE2ePlugin.createNodes?.[0] ?? resolvedE2ePlugin.createNodesV2?.[0];
|
|
188
|
+
// The e2e config file must be one this plugin actually processes (its path
|
|
189
|
+
// matches the plugin's createNodes glob) before the registration's
|
|
190
|
+
// include/exclude filters are applied.
|
|
191
|
+
const e2eConfigMatchesPluginGlob = !e2ePluginGlob ||
|
|
192
|
+
(0, minimatch_1.minimatch)(pathToE2EConfigFile, e2ePluginGlob, { dot: true });
|
|
193
|
+
let foundPluginForApplication;
|
|
194
|
+
for (let i = 0; i < e2ePluginRegistrations.length; i++) {
|
|
195
|
+
let candidatePluginForApplication = e2ePluginRegistrations[i];
|
|
196
|
+
if (typeof candidatePluginForApplication === 'string') {
|
|
197
|
+
foundPluginForApplication = candidatePluginForApplication;
|
|
198
|
+
break;
|
|
199
|
+
}
|
|
200
|
+
const matchingConfigFiles = e2eConfigMatchesPluginGlob
|
|
201
|
+
? (0, devkit_internals_1.findMatchingConfigFiles)([pathToE2EConfigFile], candidatePluginForApplication.include, candidatePluginForApplication.exclude)
|
|
202
|
+
: [];
|
|
203
|
+
if (matchingConfigFiles.length) {
|
|
204
|
+
foundPluginForApplication = candidatePluginForApplication;
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
if (!foundPluginForApplication) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
const ciTargetName = typeof foundPluginForApplication === 'string'
|
|
212
|
+
? 'e2e-ci'
|
|
213
|
+
: (foundPluginForApplication.options?.ciTargetName ?? 'e2e-ci');
|
|
214
|
+
const ciTargetNameGlob = `${ciTargetName}--**/**`;
|
|
215
|
+
const existing = findTargetDefault(nxJson.targetDefaults, {
|
|
216
|
+
target: ciTargetNameGlob,
|
|
217
|
+
});
|
|
218
|
+
const dependsOn = [...(existing?.dependsOn ?? [])];
|
|
219
|
+
if (!dependsOn.includes(buildTarget)) {
|
|
220
|
+
dependsOn.push(buildTarget);
|
|
221
|
+
}
|
|
222
|
+
upsertTargetDefault(tree, nxJson, { target: ciTargetNameGlob, dependsOn });
|
|
223
|
+
(0, devkit_exports_1.updateNxJson)(tree, nxJson);
|
|
224
|
+
}
|