@trackunit/nx-utils 0.0.86 → 0.0.87
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/package.json +2 -3
- package/src/projectUtils.js +4 -0
- package/src/projectUtils.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [0.0.87](https://github.com/Trackunit/manager/compare/nx-utils/0.0.86...nx-utils/0.0.87) (2025-01-14)
|
|
6
|
+
|
|
5
7
|
## [0.0.86](https://github.com/Trackunit/manager/compare/nx-utils/0.0.85...nx-utils/0.0.86) (2025-01-10)
|
|
6
8
|
|
|
7
9
|
### Dependency Updates
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trackunit/nx-utils",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.87",
|
|
4
4
|
"main": "src/index.js",
|
|
5
5
|
"repository": "https://github.com/Trackunit/manager",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
@@ -8,8 +8,7 @@
|
|
|
8
8
|
"node": ">=20.x"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@nx/plugin": "19.8.3"
|
|
12
|
-
"tslib": "^2.6.2"
|
|
11
|
+
"@nx/plugin": "19.8.3"
|
|
13
12
|
},
|
|
14
13
|
"type": "commonjs",
|
|
15
14
|
"types": "./src/index.d.ts"
|
package/src/projectUtils.js
CHANGED
|
@@ -52,6 +52,10 @@ function runCommandAsync(command, rootDir, opts = {
|
|
|
52
52
|
});
|
|
53
53
|
childProcess.on("close", code => {
|
|
54
54
|
if (code !== 0 && !opts.silenceError) {
|
|
55
|
+
if (command.includes("--verbose") || stderr.length > 0) {
|
|
56
|
+
// eslint-disable-next-line no-console
|
|
57
|
+
console.log(`---------------------\n`, `Cwd: ${rootDir}\n`, `Cmd: ${command}\n`, `Stdout:\n`, stdout, `\nStderr:\n`, stderr, `\n---------------------`);
|
|
58
|
+
}
|
|
55
59
|
reject(new Error(stderr));
|
|
56
60
|
}
|
|
57
61
|
else if (opts.waitForProcessToTerminate) {
|
package/src/projectUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectUtils.js","sourceRoot":"","sources":["../../../../../libs/nx/utils/src/projectUtils.ts"],"names":[],"mappings":";;;AAiBA,
|
|
1
|
+
{"version":3,"file":"projectUtils.js","sourceRoot":"","sources":["../../../../../libs/nx/utils/src/projectUtils.ts"],"names":[],"mappings":";;;AAiBA,0CAkFC;AAYD,8CAUC;AA0BD,4CAOC;AA1JD,iDAAiD;AACjD,gDAAuD;AACvD,iDAAsE;AACtE,2BAAmD;AACnD,2BAA4B;AAC5B,+BAA4B;AAE5B;;;;;;;;;GASG;AACH,SAAgB,eAAe,CAC7B,OAAe,EACf,OAAe,EACf,OAAiG;IAC/F,YAAY,EAAE,KAAK;IACnB,yBAAyB,EAAE,IAAI;CAChC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,YAAY,GAAG,IAAA,qBAAK,EAAC,GAAG,EAAE,IAAI,EAAE;YACpC,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;YACpC,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;YACpC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,yBAAyB,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrE,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;YACpC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,yBAAyB,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrE,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;YAC9B,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACrC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvD,sCAAsC;oBACtC,OAAO,CAAC,GAAG,CACT,yBAAyB,EACzB,QAAQ,OAAO,IAAI,EACnB,QAAQ,OAAO,IAAI,EACnB,WAAW,EACX,MAAM,EACN,aAAa,EACb,MAAM,EACN,yBAAyB,CAC1B,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5B,CAAC;iBAAM,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBAC1C,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvD,sCAAsC;oBACtC,OAAO,CAAC,GAAG,CACT,yBAAyB,EACzB,QAAQ,OAAO,IAAI,EACnB,QAAQ,OAAO,IAAI,EACnB,WAAW,EACX,MAAM,EACN,aAAa,EACb,MAAM,EACN,yBAAyB,CAC1B,CAAC;gBACJ,CAAC;gBACD,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACpC,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,iBAAiB,CAC/B,OAAe,EACf,SAAiB,EACjB,OAAiG;IAC/F,YAAY,EAAE,KAAK;IACnB,yBAAyB,EAAE,IAAI;CAChC;IAED,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;IAC7E,OAAO,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACI,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,YAAoC,EAAE,EAAE;IACjF,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;QACjC,OAAO,IAAA,WAAI,EAAC,IAAA,qBAAW,GAAE,EAAE,IAAA,cAAI,EAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,KAAK,EAAE,IAAA,cAAI,EAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AALW,QAAA,YAAY,gBAKvB;AAEF;;;;GAIG;AACI,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;IACrC,OAAO,IAAA,cAAI,EAAC,IAAI,CAAC,CAAC;AACpB,CAAC,CAAC;AAFW,QAAA,MAAM,UAEjB;AAEF;;GAEG;AACH,SAAgB,gBAAgB,CAAC,UAAkB;IACjD,IAAI,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,IAAA,WAAM,EAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,IAAA,cAAS,EAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC","sourcesContent":["// eslint-disable-next-line no-restricted-imports\nimport { tmpProjPath, uniq } from \"@nx/plugin/testing\";\nimport { ChildProcessWithoutNullStreams, spawn } from \"child_process\";\nimport { existsSync, mkdirSync, rmSync } from \"fs\";\nimport { tmpdir } from \"os\";\nimport { join } from \"path\";\n\n/**\n * Run a command asynchronously with the option of outputting stdout and stderr.\n *\n * @param command command to run\n * @param rootDir command execution directory\n * @param opts options\n * @param opts.silenceError silence errors logged to console\n * @param opts.waitForProcessToTerminate Wait for the process to terminate before resolving.\n * @param opts.env environment variables to pass to the command\n */\nexport function runCommandAsync(\n command: string,\n rootDir: string,\n opts: { silenceError?: boolean; waitForProcessToTerminate?: boolean; env?: NodeJS.ProcessEnv } = {\n silenceError: false,\n waitForProcessToTerminate: true,\n }\n): Promise<{ process: ChildProcessWithoutNullStreams; stdout: string; stderr: string }> {\n return new Promise((resolve, reject) => {\n const [cmd, ...args] = [...command.split(\" \")];\n if (!cmd) {\n throw new Error(\"Command cannot be empty\");\n }\n const childProcess = spawn(cmd, args, {\n cwd: rootDir,\n env: { ...process.env, ...opts.env },\n shell: true,\n });\n\n let stdout = \"\";\n let stderr = \"\";\n\n childProcess.stdout.on(\"data\", data => {\n stdout += data.toString();\n if (!opts.waitForProcessToTerminate && command.includes(\"--verbose\")) {\n // eslint-disable-next-line no-console\n console.log(data.toString());\n }\n });\n\n childProcess.stderr.on(\"data\", data => {\n stderr += data.toString();\n if (!opts.waitForProcessToTerminate && command.includes(\"--verbose\")) {\n // eslint-disable-next-line no-console\n console.log(data.toString());\n }\n });\n\n childProcess.on(\"close\", code => {\n if (code !== 0 && !opts.silenceError) {\n if (command.includes(\"--verbose\") || stderr.length > 0) {\n // eslint-disable-next-line no-console\n console.log(\n `---------------------\\n`,\n `Cwd: ${rootDir}\\n`,\n `Cmd: ${command}\\n`,\n `Stdout:\\n`,\n stdout,\n `\\nStderr:\\n`,\n stderr,\n `\\n---------------------`\n );\n }\n reject(new Error(stderr));\n } else if (opts.waitForProcessToTerminate) {\n if (command.includes(\"--verbose\") || stderr.length > 0) {\n // eslint-disable-next-line no-console\n console.log(\n `---------------------\\n`,\n `Cwd: ${rootDir}\\n`,\n `Cmd: ${command}\\n`,\n `Stdout:\\n`,\n stdout,\n `\\nStderr:\\n`,\n stderr,\n `\\n---------------------`\n );\n }\n resolve({ process: childProcess, stdout, stderr });\n }\n });\n\n childProcess.on(\"error\", err => {\n if (!opts.silenceError) {\n reject(err);\n }\n });\n\n if (!opts.waitForProcessToTerminate) {\n resolve({ process: childProcess, stdout: \"\", stderr: \"\" });\n }\n });\n}\n\n/**\n * Run a nx command asynchronously inside the given nx workspace directory\n *\n * @param command command to run\n * @param nxRootDir the nx workspace root directory\n * @param opts options\n * @param opts.silenceError silence errors logged to console\n * @param opts.waitForProcessToTerminate Wait for the process to terminate before resolving.\n * @param opts.env environment variables to pass to the command\n */\nexport function runNxCommandAsync(\n command: string,\n nxRootDir: string,\n opts: { silenceError?: boolean; waitForProcessToTerminate?: boolean; env?: NodeJS.ProcessEnv } = {\n silenceError: false,\n waitForProcessToTerminate: true,\n }\n): Promise<{ process: ChildProcessWithoutNullStreams; stdout: string; stderr: string }> {\n const cmd = `${process.platform === \"win32\" ? \"./nx.bat\" : \"nx\"} ${command}`;\n return runCommandAsync(cmd, nxRootDir, opts);\n}\n\n/**\n * Creates a unique path to a folder in the tmp directory of the OS or in the tmp directory of this repo.\n *\n * @returns { string } unique path\n */\nexport const uniqNxFolder = (name: string, parentFolder: \"OS_TMP\" | \"THIS_REPO\") => {\n if (parentFolder === \"THIS_REPO\") {\n return join(tmpProjPath(), uniq(name));\n }\n return join(tmpdir(), \"e2e\", uniq(name));\n};\n\n/**\n * Creates a unique name for a project.\n *\n * @returns { string } unique name\n */\nexport const unique = (name: string) => {\n return uniq(name);\n};\n\n/**\n * Creates a new root folder for the end 2 end test.\n */\nexport function createRootFolder(e2eRootDir: string) {\n if (existsSync(e2eRootDir)) {\n rmSync(e2eRootDir, { recursive: true });\n }\n mkdirSync(e2eRootDir, { recursive: true });\n // eslint-disable-next-line no-console\n console.log(\"Using E2E root folder:\", e2eRootDir);\n}\n"]}
|