nx 19.6.0-canary.20240724-684d2a9 → 19.6.0-canary.20240726-b3c67de
Sign up to get free protection for your applications and to get access to all the features.
- package/bin/nx-cloud.d.ts +2 -1
- package/bin/nx-cloud.js +9 -17
- package/package.json +13 -13
- package/src/command-line/list/list.js +10 -14
- package/src/command-line/migrate/migrate.js +19 -7
- package/src/command-line/release/command-object.js +5 -21
- package/src/command-line/report/report.d.ts +1 -0
- package/src/command-line/report/report.js +14 -9
- package/src/command-line/reset/command-object.d.ts +1 -0
- package/src/command-line/reset/command-object.js +4 -0
- package/src/command-line/reset/reset.js +13 -0
- package/src/command-line/run/run.js +2 -14
- package/src/daemon/socket-utils.js +1 -1
- package/src/daemon/tmp-dir.d.ts +1 -1
- package/src/daemon/tmp-dir.js +3 -2
- package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.d.ts +6 -0
- package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.js +15 -5
- package/src/migrations/update-16-0-0/update-nx-cloud-runner.js +2 -0
- package/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.d.ts +1 -1
- package/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.js +3 -1
- package/src/native/index.d.ts +2 -0
- package/src/native/native-bindings.js +1 -0
- package/src/native/nx.wasi.cjs +35 -33
- package/src/native/nx.wasm32-wasi.wasm +0 -0
- package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.js +2 -10
- package/src/nx-cloud/utilities/client.d.ts +10 -0
- package/src/nx-cloud/utilities/client.js +35 -0
- package/src/nx-cloud/utilities/url-shorten.d.ts +2 -2
- package/src/nx-cloud/utilities/url-shorten.js +13 -6
- package/src/tasks-runner/task-env.js +3 -2
- package/src/tasks-runner/utils.js +9 -5
- package/src/utils/chunkify.d.ts +10 -0
- package/src/utils/chunkify.js +19 -12
- package/src/utils/command-line-utils.d.ts +3 -0
- package/src/utils/command-line-utils.js +11 -7
- package/src/utils/git-utils.js +14 -4
- package/src/utils/plugins/core-plugins.d.ts +6 -3
- package/src/utils/plugins/core-plugins.js +107 -115
- package/src/utils/plugins/index.d.ts +4 -4
- package/src/utils/plugins/index.js +7 -8
- package/src/utils/plugins/installed-plugins.d.ts +2 -3
- package/src/utils/plugins/installed-plugins.js +4 -31
- package/src/utils/plugins/local-plugins.d.ts +2 -3
- package/src/utils/plugins/local-plugins.js +2 -29
- package/src/utils/plugins/output.d.ts +5 -0
- package/src/utils/plugins/output.js +104 -0
- package/src/utils/plugins/plugin-capabilities.d.ts +12 -2
- package/src/utils/plugins/plugin-capabilities.js +2 -87
- package/src/utils/plugins/community-plugins.d.ts +0 -2
- package/src/utils/plugins/community-plugins.js +0 -28
- package/src/utils/plugins/models.d.ts +0 -22
- package/src/utils/plugins/models.js +0 -2
- package/src/utils/plugins/shared.d.ts +0 -1
- package/src/utils/plugins/shared.js +0 -7
package/bin/nx-cloud.d.ts
CHANGED
package/bin/nx-cloud.js
CHANGED
@@ -1,38 +1,30 @@
|
|
1
1
|
#!/usr/bin/env node
|
2
2
|
"use strict";
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
-
|
4
|
+
exports.invokeCommandWithNxCloudClient = invokeCommandWithNxCloudClient;
|
5
5
|
const get_cloud_options_1 = require("../src/nx-cloud/utilities/get-cloud-options");
|
6
6
|
const update_manager_1 = require("../src/nx-cloud/update-manager");
|
7
7
|
const output_1 = require("../src/utils/output");
|
8
|
+
const client_1 = require("../src/nx-cloud/utilities/client");
|
8
9
|
const command = process.argv[2];
|
9
10
|
const options = (0, get_cloud_options_1.getCloudOptions)();
|
10
11
|
Promise.resolve().then(async () => invokeCommandWithNxCloudClient(options));
|
11
12
|
async function invokeCommandWithNxCloudClient(options) {
|
12
13
|
try {
|
13
|
-
const
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
.then(() => process.exit(0))
|
19
|
-
.catch((e) => {
|
20
|
-
console.error(e);
|
21
|
-
process.exit(1);
|
22
|
-
});
|
23
|
-
}
|
24
|
-
else {
|
14
|
+
const client = await (0, client_1.getCloudClient)(options);
|
15
|
+
client.invoke(command);
|
16
|
+
}
|
17
|
+
catch (e) {
|
18
|
+
if (e instanceof client_1.UnknownCommandError) {
|
25
19
|
output_1.output.error({
|
26
|
-
title: `Unknown Command "${command}"`,
|
20
|
+
title: `Unknown Command "${e.command}"`,
|
27
21
|
});
|
28
22
|
output_1.output.log({
|
29
23
|
title: 'Available Commands:',
|
30
|
-
bodyLines:
|
24
|
+
bodyLines: e.availableCommands.map((c) => `- ${c}`),
|
31
25
|
});
|
32
26
|
process.exit(1);
|
33
27
|
}
|
34
|
-
}
|
35
|
-
catch (e) {
|
36
28
|
const body = ['Cannot run commands from the `nx-cloud` CLI.'];
|
37
29
|
if (e instanceof update_manager_1.NxCloudEnterpriseOutdatedError) {
|
38
30
|
try {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "nx",
|
3
|
-
"version": "19.6.0-canary.
|
3
|
+
"version": "19.6.0-canary.20240726-b3c67de",
|
4
4
|
"private": false,
|
5
5
|
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
|
6
6
|
"repository": {
|
@@ -41,7 +41,7 @@
|
|
41
41
|
"@yarnpkg/lockfile": "^1.1.0",
|
42
42
|
"@yarnpkg/parsers": "3.0.0-rc.46",
|
43
43
|
"@zkochan/js-yaml": "0.0.7",
|
44
|
-
"axios": "^1.
|
44
|
+
"axios": "^1.7.2",
|
45
45
|
"chalk": "^4.1.0",
|
46
46
|
"cli-cursor": "3.1.0",
|
47
47
|
"cli-spinners": "2.6.1",
|
@@ -71,7 +71,7 @@
|
|
71
71
|
"yargs-parser": "21.1.1",
|
72
72
|
"node-machine-id": "1.1.12",
|
73
73
|
"ora": "5.3.0",
|
74
|
-
"@nrwl/tao": "19.6.0-canary.
|
74
|
+
"@nrwl/tao": "19.6.0-canary.20240726-b3c67de"
|
75
75
|
},
|
76
76
|
"peerDependencies": {
|
77
77
|
"@swc-node/register": "^1.8.0",
|
@@ -86,16 +86,16 @@
|
|
86
86
|
}
|
87
87
|
},
|
88
88
|
"optionalDependencies": {
|
89
|
-
"@nx/nx-darwin-x64": "19.6.0-canary.
|
90
|
-
"@nx/nx-darwin-arm64": "19.6.0-canary.
|
91
|
-
"@nx/nx-linux-x64-gnu": "19.6.0-canary.
|
92
|
-
"@nx/nx-linux-x64-musl": "19.6.0-canary.
|
93
|
-
"@nx/nx-win32-x64-msvc": "19.6.0-canary.
|
94
|
-
"@nx/nx-linux-arm64-gnu": "19.6.0-canary.
|
95
|
-
"@nx/nx-linux-arm64-musl": "19.6.0-canary.
|
96
|
-
"@nx/nx-linux-arm-gnueabihf": "19.6.0-canary.
|
97
|
-
"@nx/nx-win32-arm64-msvc": "19.6.0-canary.
|
98
|
-
"@nx/nx-freebsd-x64": "19.6.0-canary.
|
89
|
+
"@nx/nx-darwin-x64": "19.6.0-canary.20240726-b3c67de",
|
90
|
+
"@nx/nx-darwin-arm64": "19.6.0-canary.20240726-b3c67de",
|
91
|
+
"@nx/nx-linux-x64-gnu": "19.6.0-canary.20240726-b3c67de",
|
92
|
+
"@nx/nx-linux-x64-musl": "19.6.0-canary.20240726-b3c67de",
|
93
|
+
"@nx/nx-win32-x64-msvc": "19.6.0-canary.20240726-b3c67de",
|
94
|
+
"@nx/nx-linux-arm64-gnu": "19.6.0-canary.20240726-b3c67de",
|
95
|
+
"@nx/nx-linux-arm64-musl": "19.6.0-canary.20240726-b3c67de",
|
96
|
+
"@nx/nx-linux-arm-gnueabihf": "19.6.0-canary.20240726-b3c67de",
|
97
|
+
"@nx/nx-win32-arm64-msvc": "19.6.0-canary.20240726-b3c67de",
|
98
|
+
"@nx/nx-freebsd-x64": "19.6.0-canary.20240726-b3c67de"
|
99
99
|
},
|
100
100
|
"nx-migrations": {
|
101
101
|
"migrations": "./migrations.json",
|
@@ -1,12 +1,11 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.listHandler = listHandler;
|
4
|
-
const
|
4
|
+
const nx_json_1 = require("../../config/nx-json");
|
5
|
+
const project_graph_1 = require("../../project-graph/project-graph");
|
5
6
|
const output_1 = require("../../utils/output");
|
6
7
|
const plugins_1 = require("../../utils/plugins");
|
7
|
-
const
|
8
|
-
const project_graph_1 = require("../../project-graph/project-graph");
|
9
|
-
const nx_json_1 = require("../../config/nx-json");
|
8
|
+
const workspace_root_1 = require("../../utils/workspace-root");
|
10
9
|
/**
|
11
10
|
* List available plugins or capabilities within a specific plugin
|
12
11
|
*
|
@@ -16,31 +15,28 @@ const nx_json_1 = require("../../config/nx-json");
|
|
16
15
|
*
|
17
16
|
*/
|
18
17
|
async function listHandler(args) {
|
19
|
-
const nxJson = (0, nx_json_1.readNxJson)();
|
20
18
|
const projectGraph = await (0, project_graph_1.createProjectGraphAsync)({ exitOnError: true });
|
21
19
|
const projects = (0, project_graph_1.readProjectsConfigurationFromProjectGraph)(projectGraph);
|
22
20
|
if (args.plugin) {
|
23
21
|
await (0, plugins_1.listPluginCapabilities)(args.plugin, projects.projects);
|
24
22
|
}
|
25
23
|
else {
|
26
|
-
const
|
27
|
-
const localPlugins = await (0,
|
24
|
+
const nxJson = (0, nx_json_1.readNxJson)();
|
25
|
+
const localPlugins = await (0, plugins_1.getLocalWorkspacePlugins)(projects, nxJson);
|
28
26
|
const installedPlugins = await (0, plugins_1.getInstalledPluginsAndCapabilities)(workspace_root_1.workspaceRoot, projects.projects);
|
29
27
|
if (localPlugins.size) {
|
30
|
-
(0,
|
28
|
+
(0, plugins_1.listPlugins)(localPlugins, 'Local workspace plugins:');
|
31
29
|
}
|
32
|
-
(0, plugins_1.
|
33
|
-
(0, plugins_1.
|
30
|
+
(0, plugins_1.listPlugins)(installedPlugins, 'Installed plugins:');
|
31
|
+
(0, plugins_1.listAlsoAvailableCorePlugins)(installedPlugins);
|
34
32
|
output_1.output.note({
|
35
33
|
title: 'Community Plugins',
|
36
34
|
bodyLines: [
|
37
35
|
'Looking for a technology / framework not listed above?',
|
38
36
|
'There are many excellent plugins maintained by the Nx community.',
|
39
|
-
'Search for the one you need here: https://nx.dev/
|
37
|
+
'Search for the one you need here: https://nx.dev/plugin-registry.',
|
40
38
|
],
|
41
39
|
});
|
42
|
-
output_1.output.note({
|
43
|
-
title: `Use "nx list [plugin]" to find out more`,
|
44
|
-
});
|
40
|
+
output_1.output.note({ title: `Use "nx list [plugin]" to find out more` });
|
45
41
|
}
|
46
42
|
}
|
@@ -30,6 +30,7 @@ const child_process_2 = require("../../utils/child-process");
|
|
30
30
|
const client_1 = require("../../daemon/client/client");
|
31
31
|
const nx_cloud_utils_1 = require("../../utils/nx-cloud-utils");
|
32
32
|
const project_graph_1 = require("../../project-graph/project-graph");
|
33
|
+
const format_changed_files_with_prettier_if_available_1 = require("../../generators/internal-utils/format-changed-files-with-prettier-if-available");
|
33
34
|
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
34
35
|
function normalizeVersion(version) {
|
35
36
|
const [semver, ...prereleaseTagParts] = version.split('-');
|
@@ -669,10 +670,10 @@ function readPackageMigrationConfig(packageName, dir) {
|
|
669
670
|
};
|
670
671
|
}
|
671
672
|
}
|
672
|
-
function createMigrationsFile(root, migrations) {
|
673
|
-
|
673
|
+
async function createMigrationsFile(root, migrations) {
|
674
|
+
await writeFormattedJsonFile((0, path_1.join)(root, 'migrations.json'), { migrations });
|
674
675
|
}
|
675
|
-
function updatePackageJson(root, updatedPackages) {
|
676
|
+
async function updatePackageJson(root, updatedPackages) {
|
676
677
|
const packageJsonPath = (0, path_1.join)(root, 'package.json');
|
677
678
|
if (!(0, fs_1.existsSync)(packageJsonPath)) {
|
678
679
|
return;
|
@@ -694,7 +695,7 @@ function updatePackageJson(root, updatedPackages) {
|
|
694
695
|
json[dependencyType][p] = updatedPackages[p].version;
|
695
696
|
}
|
696
697
|
});
|
697
|
-
|
698
|
+
await writeFormattedJsonFile(packageJsonPath, json, {
|
698
699
|
appendNewLine: parseOptions.endsWithNewline,
|
699
700
|
});
|
700
701
|
}
|
@@ -719,7 +720,7 @@ async function updateInstallationDetails(root, updatedPackages) {
|
|
719
720
|
}
|
720
721
|
}
|
721
722
|
}
|
722
|
-
|
723
|
+
await writeFormattedJsonFile(nxJsonPath, nxJson, {
|
723
724
|
appendNewLine: parseOptions.endsWithNewline,
|
724
725
|
});
|
725
726
|
}
|
@@ -765,10 +766,10 @@ async function generateMigrationsJsonAndUpdatePackageJson(root, opts) {
|
|
765
766
|
excludeAppliedMigrations: opts.excludeAppliedMigrations,
|
766
767
|
});
|
767
768
|
const { migrations, packageUpdates, minVersionWithSkippedUpdates } = await migrator.migrate(opts.targetPackage, opts.targetVersion);
|
768
|
-
updatePackageJson(root, packageUpdates);
|
769
|
+
await updatePackageJson(root, packageUpdates);
|
769
770
|
await updateInstallationDetails(root, packageUpdates);
|
770
771
|
if (migrations.length > 0) {
|
771
|
-
createMigrationsFile(root, [
|
772
|
+
await createMigrationsFile(root, [
|
772
773
|
...addSplitConfigurationMigrationIfAvailable(from, packageUpdates),
|
773
774
|
...migrations,
|
774
775
|
]);
|
@@ -835,6 +836,17 @@ async function generateMigrationsJsonAndUpdatePackageJson(root, opts) {
|
|
835
836
|
throw e;
|
836
837
|
}
|
837
838
|
}
|
839
|
+
async function writeFormattedJsonFile(filePath, content, options) {
|
840
|
+
const formattedContent = await (0, format_changed_files_with_prettier_if_available_1.formatFilesWithPrettierIfAvailable)([{ path: filePath, content: JSON.stringify(content) }], workspace_root_1.workspaceRoot, { silent: true });
|
841
|
+
if (formattedContent.has(filePath)) {
|
842
|
+
(0, fs_1.writeFileSync)(filePath, formattedContent.get(filePath), {
|
843
|
+
encoding: 'utf-8',
|
844
|
+
});
|
845
|
+
}
|
846
|
+
else {
|
847
|
+
(0, fileutils_1.writeJsonFile)(filePath, content, options);
|
848
|
+
}
|
849
|
+
}
|
838
850
|
function addSplitConfigurationMigrationIfAvailable(from, packageJson) {
|
839
851
|
if (!packageJson['@nrwl/workspace'])
|
840
852
|
return [];
|
@@ -5,6 +5,7 @@ const yargs_1 = require("yargs");
|
|
5
5
|
const nx_json_1 = require("../../config/nx-json");
|
6
6
|
const logger_1 = require("../../utils/logger");
|
7
7
|
const shared_options_1 = require("../yargs-utils/shared-options");
|
8
|
+
const command_line_utils_1 = require("../../utils/command-line-utils");
|
8
9
|
exports.yargsReleaseCommand = {
|
9
10
|
command: 'release',
|
10
11
|
describe: 'Orchestrate versioning and publishing of applications and libraries',
|
@@ -223,27 +224,10 @@ const planCommand = {
|
|
223
224
|
},
|
224
225
|
};
|
225
226
|
function coerceParallelOption(args) {
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
};
|
231
|
-
}
|
232
|
-
else if (args['parallel'] === 'true' ||
|
233
|
-
args['parallel'] === true ||
|
234
|
-
args['parallel'] === '') {
|
235
|
-
return {
|
236
|
-
...args,
|
237
|
-
parallel: Number(args['maxParallel'] || args['max-parallel'] || 3),
|
238
|
-
};
|
239
|
-
}
|
240
|
-
else if (args['parallel'] !== undefined) {
|
241
|
-
return {
|
242
|
-
...args,
|
243
|
-
parallel: Number(args['parallel']),
|
244
|
-
};
|
245
|
-
}
|
246
|
-
return args;
|
227
|
+
return {
|
228
|
+
...args,
|
229
|
+
parallel: (0, command_line_utils_1.readParallelFromArgsAndEnv)(args),
|
230
|
+
};
|
247
231
|
}
|
248
232
|
function withGitCommitAndGitTagOptions(yargs) {
|
249
233
|
return yargs
|
@@ -43,14 +43,18 @@ const LINE_SEPARATOR = '---------------------------------------';
|
|
43
43
|
*
|
44
44
|
*/
|
45
45
|
async function reportHandler() {
|
46
|
-
const { pm, pmVersion, localPlugins, communityPlugins, registeredPlugins, packageVersionsWeCareAbout, outOfSyncPackageGroup, projectGraphError, } = await getReportData();
|
47
|
-
const
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
46
|
+
const { pm, pmVersion, localPlugins, communityPlugins, registeredPlugins, packageVersionsWeCareAbout, outOfSyncPackageGroup, projectGraphError, nativeTarget, } = await getReportData();
|
47
|
+
const fields = [
|
48
|
+
['Node', process.versions.node],
|
49
|
+
['OS', `${process.platform}-${process.arch}`],
|
50
|
+
['Native Target', nativeTarget ?? 'Unavailable'],
|
51
|
+
[pm, pmVersion],
|
52
52
|
];
|
53
|
-
let padding = Math.max(...
|
53
|
+
let padding = Math.max(...fields.map((f) => f[0].length));
|
54
|
+
const bodyLines = fields.map(([field, value]) => `${field.padEnd(padding)} : ${value}`);
|
55
|
+
bodyLines.push('');
|
56
|
+
padding =
|
57
|
+
Math.max(...packageVersionsWeCareAbout.map((x) => x.package.length)) + 1;
|
54
58
|
packageVersionsWeCareAbout.forEach((p) => {
|
55
59
|
bodyLines.push(`${chalk.green(p.package.padEnd(padding))} : ${chalk.bold(p.version)}`);
|
56
60
|
});
|
@@ -116,6 +120,7 @@ async function getReportData() {
|
|
116
120
|
});
|
117
121
|
}
|
118
122
|
const outOfSyncPackageGroup = findMisalignedPackagesForPackage(nxPackageJson);
|
123
|
+
const native = isNativeAvailable();
|
119
124
|
return {
|
120
125
|
pm,
|
121
126
|
pmVersion,
|
@@ -125,6 +130,7 @@ async function getReportData() {
|
|
125
130
|
packageVersionsWeCareAbout,
|
126
131
|
outOfSyncPackageGroup,
|
127
132
|
projectGraphError,
|
133
|
+
nativeTarget: native ? native.getBinaryTarget() : null,
|
128
134
|
};
|
129
135
|
}
|
130
136
|
async function tryGetProjectGraph() {
|
@@ -248,8 +254,7 @@ function findInstalledPackagesWeCareAbout() {
|
|
248
254
|
}
|
249
255
|
function isNativeAvailable() {
|
250
256
|
try {
|
251
|
-
require('../../native');
|
252
|
-
return true;
|
257
|
+
return require('../../native');
|
253
258
|
}
|
254
259
|
catch {
|
255
260
|
return false;
|
@@ -13,6 +13,10 @@ exports.yargsResetCommand = {
|
|
13
13
|
.option('onlyDaemon', {
|
14
14
|
description: 'Stops the Nx Daemon, it will be restarted fresh when the next Nx command is run.',
|
15
15
|
type: 'boolean',
|
16
|
+
})
|
17
|
+
.option('onlyCloud', {
|
18
|
+
description: 'Resets the Nx Cloud client. NOTE: Does not clear the remote cache.',
|
19
|
+
type: 'boolean',
|
16
20
|
})
|
17
21
|
.option('onlyWorkspaceData', {
|
18
22
|
description: 'Clears the workspace data directory. Used by Nx to store cached data about the current workspace (e.g. partial results, incremental data, etc)',
|
@@ -6,6 +6,8 @@ const client_1 = require("../../daemon/client/client");
|
|
6
6
|
const cache_directory_1 = require("../../utils/cache-directory");
|
7
7
|
const output_1 = require("../../utils/output");
|
8
8
|
const native_file_cache_location_1 = require("../../native/native-file-cache-location");
|
9
|
+
const client_2 = require("../../nx-cloud/utilities/client");
|
10
|
+
const get_cloud_options_1 = require("../../nx-cloud/utilities/get-cloud-options");
|
9
11
|
// Wait at max 5 seconds before giving up on a failing operation.
|
10
12
|
const INCREMENTAL_BACKOFF_MAX_DURATION = 5000;
|
11
13
|
// If an operation fails, wait 100ms before first retry.
|
@@ -61,6 +63,9 @@ async function resetHandler(args) {
|
|
61
63
|
errors.push('Failed to clean up the workspace data directory.');
|
62
64
|
}
|
63
65
|
}
|
66
|
+
if (all || args.onlyCloud) {
|
67
|
+
await resetCloudClient();
|
68
|
+
}
|
64
69
|
if (errors.length > 0) {
|
65
70
|
output_1.output.error({
|
66
71
|
title: 'Failed to reset the Nx workspace.',
|
@@ -77,6 +82,14 @@ async function resetHandler(args) {
|
|
77
82
|
function killDaemon() {
|
78
83
|
return client_1.daemonClient.stop();
|
79
84
|
}
|
85
|
+
async function resetCloudClient() {
|
86
|
+
// Remove nx cloud marker files. This helps if the use happens to run `nx-cloud start-ci-run` or
|
87
|
+
// similar commands on their local machine.
|
88
|
+
try {
|
89
|
+
(await (0, client_2.getCloudClient)((0, get_cloud_options_1.getCloudOptions)())).invoke('cleanup');
|
90
|
+
}
|
91
|
+
catch { }
|
92
|
+
}
|
80
93
|
function cleanupCacheEntries() {
|
81
94
|
return incrementalBackoff(INCREMENTAL_BACKOFF_FIRST_DELAY, INCREMENTAL_BACKOFF_MAX_DURATION, () => {
|
82
95
|
(0, fs_extra_1.rmSync)(cache_directory_1.cacheDir, { recursive: true, force: true });
|
@@ -35,20 +35,8 @@ async function* promiseToIterator(v) {
|
|
35
35
|
yield await v;
|
36
36
|
}
|
37
37
|
async function iteratorToProcessStatusCode(i) {
|
38
|
-
|
39
|
-
|
40
|
-
// on version 12.0.1, a SASS compilation implementation was
|
41
|
-
// introduced making use of workers and it's unref()-ing the worker
|
42
|
-
// too early, causing the process to exit early in environments
|
43
|
-
// like CI or when running Docker builds.
|
44
|
-
const keepProcessAliveInterval = setInterval(() => { }, 1000);
|
45
|
-
try {
|
46
|
-
const { success } = await (0, async_iterator_1.getLastValueFromAsyncIterableIterator)(i);
|
47
|
-
return success ? 0 : 1;
|
48
|
-
}
|
49
|
-
finally {
|
50
|
-
clearInterval(keepProcessAliveInterval);
|
51
|
-
}
|
38
|
+
const { success } = await (0, async_iterator_1.getLastValueFromAsyncIterableIterator)(i);
|
39
|
+
return success ? 0 : 1;
|
52
40
|
}
|
53
41
|
async function parseExecutorAndTarget({ project, target }, root, projectsConfigurations) {
|
54
42
|
const proj = projectsConfigurations.projects[project];
|
@@ -25,7 +25,7 @@ const getForkedProcessOsSocketPath = (id) => {
|
|
25
25
|
};
|
26
26
|
exports.getForkedProcessOsSocketPath = getForkedProcessOsSocketPath;
|
27
27
|
const getPluginOsSocketPath = (id) => {
|
28
|
-
let path = (0, path_1.resolve)((0, path_1.join)((0, tmp_dir_1.getSocketDir)(), 'plugin' + id + '.sock'));
|
28
|
+
let path = (0, path_1.resolve)((0, path_1.join)((0, tmp_dir_1.getSocketDir)(true), 'plugin' + id + '.sock'));
|
29
29
|
return exports.isWindows ? '\\\\.\\pipe\\nx\\' + (0, path_1.resolve)(path) : (0, path_1.resolve)(path);
|
30
30
|
};
|
31
31
|
exports.getPluginOsSocketPath = getPluginOsSocketPath;
|
package/src/daemon/tmp-dir.d.ts
CHANGED
@@ -8,5 +8,5 @@ export declare function isDaemonDisabled(): boolean;
|
|
8
8
|
* We try to create a socket file in a tmp dir, but if it doesn't work because
|
9
9
|
* for instance we don't have permissions, we create it in DAEMON_DIR_FOR_CURRENT_WORKSPACE
|
10
10
|
*/
|
11
|
-
export declare function getSocketDir(): string;
|
11
|
+
export declare function getSocketDir(alreadyUnique?: boolean): string;
|
12
12
|
export declare function removeSocketDir(): void;
|
package/src/daemon/tmp-dir.js
CHANGED
@@ -51,9 +51,10 @@ function socketDirName() {
|
|
51
51
|
* We try to create a socket file in a tmp dir, but if it doesn't work because
|
52
52
|
* for instance we don't have permissions, we create it in DAEMON_DIR_FOR_CURRENT_WORKSPACE
|
53
53
|
*/
|
54
|
-
function getSocketDir() {
|
54
|
+
function getSocketDir(alreadyUnique = false) {
|
55
55
|
try {
|
56
|
-
const dir = process.env.NX_DAEMON_SOCKET_DIR ??
|
56
|
+
const dir = process.env.NX_DAEMON_SOCKET_DIR ??
|
57
|
+
(alreadyUnique ? tmp_1.tmpdir : socketDirName());
|
57
58
|
(0, fs_extra_1.ensureDirSync)(dir);
|
58
59
|
return dir;
|
59
60
|
}
|
@@ -6,3 +6,9 @@ import type { Tree } from '../tree';
|
|
6
6
|
export declare function formatChangedFilesWithPrettierIfAvailable(tree: Tree, options?: {
|
7
7
|
silent?: boolean;
|
8
8
|
}): Promise<void>;
|
9
|
+
export declare function formatFilesWithPrettierIfAvailable(files: {
|
10
|
+
path: string;
|
11
|
+
content: string | Buffer;
|
12
|
+
}[], root: string, options?: {
|
13
|
+
silent?: boolean;
|
14
|
+
}): Promise<Map<string, string>>;
|
@@ -1,23 +1,32 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.formatChangedFilesWithPrettierIfAvailable = formatChangedFilesWithPrettierIfAvailable;
|
4
|
+
exports.formatFilesWithPrettierIfAvailable = formatFilesWithPrettierIfAvailable;
|
4
5
|
const path = require("path");
|
5
6
|
/**
|
6
7
|
* Formats all the created or updated files using Prettier
|
7
8
|
* @param tree - the file system tree
|
8
9
|
*/
|
9
10
|
async function formatChangedFilesWithPrettierIfAvailable(tree, options) {
|
11
|
+
const files = new Set(tree.listChanges().filter((file) => file.type !== 'DELETE'));
|
12
|
+
const results = await formatFilesWithPrettierIfAvailable(Array.from(files), tree.root, options);
|
13
|
+
for (const [path, content] of results) {
|
14
|
+
tree.write(path, content);
|
15
|
+
}
|
16
|
+
}
|
17
|
+
async function formatFilesWithPrettierIfAvailable(files, root, options) {
|
18
|
+
const results = new Map();
|
10
19
|
let prettier;
|
11
20
|
try {
|
12
21
|
prettier = await Promise.resolve().then(() => require('prettier'));
|
13
22
|
}
|
14
23
|
catch { }
|
15
|
-
if (!prettier)
|
16
|
-
return;
|
17
|
-
|
24
|
+
if (!prettier) {
|
25
|
+
return results;
|
26
|
+
}
|
18
27
|
await Promise.all(Array.from(files).map(async (file) => {
|
19
28
|
try {
|
20
|
-
const systemPath = path.join(
|
29
|
+
const systemPath = path.join(root, file.path);
|
21
30
|
let options = {
|
22
31
|
filepath: systemPath,
|
23
32
|
};
|
@@ -35,7 +44,7 @@ async function formatChangedFilesWithPrettierIfAvailable(tree, options) {
|
|
35
44
|
if (support.ignored || !support.inferredParser) {
|
36
45
|
return;
|
37
46
|
}
|
38
|
-
|
47
|
+
results.set(file.path,
|
39
48
|
// In prettier v3 the format result is a promise
|
40
49
|
await prettier.format(file.content.toString('utf-8'), options));
|
41
50
|
}
|
@@ -45,4 +54,5 @@ async function formatChangedFilesWithPrettierIfAvailable(tree, options) {
|
|
45
54
|
}
|
46
55
|
}
|
47
56
|
}));
|
57
|
+
return results;
|
48
58
|
}
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.default = default_1;
|
4
4
|
const project_configuration_1 = require("../../generators/utils/project-configuration");
|
5
5
|
const json_1 = require("../../generators/utils/json");
|
6
|
+
const format_changed_files_with_prettier_if_available_1 = require("../../generators/internal-utils/format-changed-files-with-prettier-if-available");
|
6
7
|
async function default_1(tree) {
|
7
8
|
(0, json_1.updateJson)(tree, 'package.json', (json) => {
|
8
9
|
if (json.dependencies && json.dependencies['@nrwl/nx-cloud']) {
|
@@ -24,4 +25,5 @@ async function default_1(tree) {
|
|
24
25
|
}
|
25
26
|
}
|
26
27
|
(0, project_configuration_1.updateNxJson)(tree, nxJson);
|
28
|
+
await (0, format_changed_files_with_prettier_if_available_1.formatChangedFilesWithPrettierIfAvailable)(tree);
|
27
29
|
}
|
@@ -1,2 +1,2 @@
|
|
1
1
|
import { Tree } from '../../generators/tree';
|
2
|
-
export default function migrate(tree: Tree): void
|
2
|
+
export default function migrate(tree: Tree): Promise<void>;
|
@@ -2,8 +2,10 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.default = migrate;
|
4
4
|
const nx_json_1 = require("../../generators/utils/nx-json");
|
5
|
-
|
5
|
+
const format_changed_files_with_prettier_if_available_1 = require("../../generators/internal-utils/format-changed-files-with-prettier-if-available");
|
6
|
+
async function migrate(tree) {
|
6
7
|
const nxJson = (0, nx_json_1.readNxJson)(tree);
|
7
8
|
nxJson.useInferencePlugins = false;
|
8
9
|
(0, nx_json_1.updateNxJson)(tree, nxJson);
|
10
|
+
await (0, format_changed_files_with_prettier_if_available_1.formatChangedFilesWithPrettierIfAvailable)(tree);
|
9
11
|
}
|
package/src/native/index.d.ts
CHANGED
@@ -116,6 +116,8 @@ export interface FileSetInput {
|
|
116
116
|
|
117
117
|
export declare export function findImports(projectFileMap: Record<string, Array<string>>): Array<ImportResult>
|
118
118
|
|
119
|
+
export declare export function getBinaryTarget(): string
|
120
|
+
|
119
121
|
/**
|
120
122
|
* Expands the given outputs into a list of existing files.
|
121
123
|
* This is used when hashing outputs
|
@@ -372,6 +372,7 @@ module.exports.copy = nativeBinding.copy
|
|
372
372
|
module.exports.EventType = nativeBinding.EventType
|
373
373
|
module.exports.expandOutputs = nativeBinding.expandOutputs
|
374
374
|
module.exports.findImports = nativeBinding.findImports
|
375
|
+
module.exports.getBinaryTarget = nativeBinding.getBinaryTarget
|
375
376
|
module.exports.getFilesForOutputs = nativeBinding.getFilesForOutputs
|
376
377
|
module.exports.hashArray = nativeBinding.hashArray
|
377
378
|
module.exports.hashFile = nativeBinding.hashFile
|