@backstage/cli 0.34.6-next.0 → 0.35.0-next.2
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 +42 -0
- package/config/nodeTransform.cjs +1 -1
- package/config/nodeTransformHooks.mjs +1 -1
- package/config/tsconfig.json +4 -4
- package/dist/lib/errors.cjs.js +0 -10
- package/dist/lib/versioning/packages.cjs.js +3 -7
- package/dist/lib/versioning/yarn.cjs.js +2 -8
- package/dist/modules/build/commands/package/start/startFrontend.cjs.js +1 -1
- package/dist/modules/build/lib/buildFrontend.cjs.js +1 -1
- package/dist/modules/build/lib/builder/config.cjs.js +1 -1
- package/dist/modules/build/lib/bundler/config.cjs.js +3 -3
- package/dist/modules/build/lib/bundler/optimization.cjs.js +2 -2
- package/dist/modules/build/lib/bundler/transforms.cjs.js +2 -2
- package/dist/modules/build/lib/packager/createDistWorkspace.cjs.js +7 -7
- package/dist/modules/config/index.cjs.js +4 -4
- package/dist/modules/info/commands/info.cjs.js +2 -3
- package/dist/modules/maintenance/commands/repo/clean.cjs.js +4 -9
- package/dist/modules/migrate/commands/packageLintConfigs.cjs.js +2 -2
- package/dist/modules/migrate/commands/versions/bump.cjs.js +1 -2
- package/dist/modules/migrate/lib/utils.cjs.js +5 -5
- package/dist/modules/new/lib/execution/PortableTemplater.cjs.js +1 -2
- package/dist/modules/new/lib/execution/executePortableTemplate.cjs.js +20 -8
- package/dist/modules/new/lib/tasks.cjs.js +0 -26
- package/dist/modules/test/commands/package/test.cjs.js +3 -3
- package/dist/modules/test/commands/repo/test.cjs.js +5 -6
- package/dist/packages/backend-defaults/package.json.cjs.js +1 -1
- package/dist/packages/backend-plugin-api/package.json.cjs.js +1 -1
- package/dist/packages/backend-test-utils/package.json.cjs.js +1 -1
- package/dist/packages/cli/package.json.cjs.js +6 -6
- package/dist/packages/core-app-api/package.json.cjs.js +1 -1
- package/dist/packages/core-components/package.json.cjs.js +1 -1
- package/dist/packages/dev-utils/package.json.cjs.js +1 -1
- package/dist/packages/frontend-plugin-api/package.json.cjs.js +1 -1
- package/dist/plugins/auth-backend/package.json.cjs.js +1 -1
- package/dist/plugins/auth-backend-module-guest-provider/package.json.cjs.js +1 -1
- package/dist/plugins/catalog-node/package.json.cjs.js +1 -1
- package/dist/plugins/scaffolder-node/package.json.cjs.js +1 -1
- package/dist/plugins/scaffolder-node-test-utils/package.json.cjs.js +1 -1
- package/package.json +22 -22
- package/dist/lib/run.cjs.js +0 -82
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,47 @@
|
|
|
1
1
|
# @backstage/cli
|
|
2
2
|
|
|
3
|
+
## 0.35.0-next.2
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- f8dff94: Switched the default module resolution to `bundler` and the `module` setting to `ES2020`.
|
|
8
|
+
|
|
9
|
+
You may need to bump some dependencies as part of this change and fix imports in code. The most common source of this is that type checking will now consider the `exports` field in `package.json` when resolving imports. This in turn can break older versions of packages that had incompatible `exports` fields. Generally these issues will have already been fixed in the upstream packages.
|
|
10
|
+
|
|
11
|
+
You might be tempted to use `--skipLibCheck` to hide issues due to this change, but it will weaken the type safety of your project. If you run into a large number of issues and want to keep the old behavior, you can reset the `moduleResolution` and `module` settings your own `tsconfig.json` file to `node` and `ESNext` respectively. But keep in mind that the `node` option will be removed in future versions of TypeScript.
|
|
12
|
+
|
|
13
|
+
A future version of Backstage will make these new settings mandatory, as we move to rely on the `exports` field for type resolution in packages, rather than the `typesVersions` field.
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- de96a60: chore(deps): bump `express` from 4.21.2 to 4.22.0
|
|
18
|
+
- 1226647: Updated dependency `esbuild` to `^0.27.0`.
|
|
19
|
+
- f89a074: Updated dependency `@pmmmwh/react-refresh-webpack-plugin` to `^0.6.0`.
|
|
20
|
+
- 2b81751: Updated dependency `webpack` to `~5.103.0`.
|
|
21
|
+
- fafd9e1: Fixed internal usage of `yargs`.
|
|
22
|
+
- 2bae83a: Switched ECMAScript version to ES2023.
|
|
23
|
+
- 2bae83a: Bumped dev dependencies `@types/node`
|
|
24
|
+
- Updated dependencies
|
|
25
|
+
- @backstage/integration@1.18.3-next.1
|
|
26
|
+
- @backstage/config-loader@1.10.7-next.1
|
|
27
|
+
- @backstage/cli-common@0.1.16-next.2
|
|
28
|
+
- @backstage/catalog-model@1.7.6
|
|
29
|
+
- @backstage/cli-node@0.2.16-next.1
|
|
30
|
+
- @backstage/config@1.3.6
|
|
31
|
+
- @backstage/errors@1.2.7
|
|
32
|
+
- @backstage/eslint-plugin@0.2.0
|
|
33
|
+
- @backstage/release-manifests@0.0.13
|
|
34
|
+
- @backstage/types@1.2.2
|
|
35
|
+
|
|
36
|
+
## 0.34.6-next.1
|
|
37
|
+
|
|
38
|
+
### Patch Changes
|
|
39
|
+
|
|
40
|
+
- 7fbac5c: Updated to use new utilities from `@backstage/cli-common`.
|
|
41
|
+
- Updated dependencies
|
|
42
|
+
- @backstage/cli-node@0.2.16-next.1
|
|
43
|
+
- @backstage/cli-common@0.1.16-next.1
|
|
44
|
+
|
|
3
45
|
## 0.34.6-next.0
|
|
4
46
|
|
|
5
47
|
### Patch Changes
|
package/config/nodeTransform.cjs
CHANGED
package/config/tsconfig.json
CHANGED
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
"incremental": true,
|
|
13
13
|
"isolatedModules": true,
|
|
14
14
|
"jsx": "react",
|
|
15
|
-
"lib": ["DOM", "DOM.Iterable", "ScriptHost", "
|
|
16
|
-
"module": "
|
|
17
|
-
"moduleResolution": "
|
|
15
|
+
"lib": ["DOM", "DOM.Iterable", "ScriptHost", "ES2023"],
|
|
16
|
+
"module": "ES2020",
|
|
17
|
+
"moduleResolution": "bundler",
|
|
18
18
|
"noEmit": false,
|
|
19
19
|
"noFallthroughCasesInSwitch": true,
|
|
20
20
|
"noImplicitAny": true,
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"strictNullChecks": true,
|
|
34
34
|
"strictPropertyInitialization": true,
|
|
35
35
|
"stripInternal": true,
|
|
36
|
-
"target": "
|
|
36
|
+
"target": "ES2023",
|
|
37
37
|
"types": ["node", "jest", "webpack-env"],
|
|
38
38
|
"useDefineForClassFields": true
|
|
39
39
|
}
|
package/dist/lib/errors.cjs.js
CHANGED
|
@@ -7,15 +7,6 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
7
7
|
|
|
8
8
|
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
9
9
|
|
|
10
|
-
class ExitCodeError extends errors.CustomErrorBase {
|
|
11
|
-
code;
|
|
12
|
-
constructor(code, command) {
|
|
13
|
-
super(
|
|
14
|
-
command ? `Command '${command}' exited with code ${code}` : `Child exited with code ${code}`
|
|
15
|
-
);
|
|
16
|
-
this.code = code;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
10
|
function exit(message, code = 1) {
|
|
20
11
|
process.stderr.write(`
|
|
21
12
|
${chalk__default.default.red(message)}
|
|
@@ -67,6 +58,5 @@ ${chalk__default.default.red(errors.stringifyError(error))}
|
|
|
67
58
|
}
|
|
68
59
|
}
|
|
69
60
|
|
|
70
|
-
exports.ExitCodeError = ExitCodeError;
|
|
71
61
|
exports.exitWithError = exitWithError;
|
|
72
62
|
//# sourceMappingURL=errors.cjs.js.map
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var minimatch = require('minimatch');
|
|
4
4
|
var getPackages = require('@manypkg/get-packages');
|
|
5
5
|
var yarn = require('./yarn.cjs.js');
|
|
6
|
-
var
|
|
6
|
+
var cliCommon = require('@backstage/cli-common');
|
|
7
7
|
var errors = require('@backstage/errors');
|
|
8
8
|
|
|
9
9
|
const DEP_TYPES = [
|
|
@@ -16,11 +16,7 @@ async function fetchPackageInfo(name) {
|
|
|
16
16
|
const yarnVersion = await yarn.detectYarnVersion();
|
|
17
17
|
const cmd = yarnVersion === "classic" ? ["info"] : ["npm", "info"];
|
|
18
18
|
try {
|
|
19
|
-
const
|
|
20
|
-
"yarn",
|
|
21
|
-
[...cmd, "--json", name],
|
|
22
|
-
{ shell: true }
|
|
23
|
-
);
|
|
19
|
+
const output = await cliCommon.runOutput(["yarn", ...cmd, "--json", name]);
|
|
24
20
|
if (!output) {
|
|
25
21
|
throw new errors.NotFoundError(
|
|
26
22
|
`No package information found for package ${name}`
|
|
@@ -38,7 +34,7 @@ async function fetchPackageInfo(name) {
|
|
|
38
34
|
if (yarnVersion === "classic") {
|
|
39
35
|
throw error;
|
|
40
36
|
}
|
|
41
|
-
if (error
|
|
37
|
+
if (error instanceof Error && "stdout" in error && typeof error.stdout === "string" && error.stdout.includes("Response Code: 404")) {
|
|
42
38
|
throw new errors.NotFoundError(
|
|
43
39
|
`No package information found for package ${name}`
|
|
44
40
|
);
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var errors = require('@backstage/errors');
|
|
4
|
-
var
|
|
5
|
-
var util = require('util');
|
|
4
|
+
var cliCommon = require('@backstage/cli-common');
|
|
6
5
|
|
|
7
|
-
const execFile = util.promisify(child_process.execFile);
|
|
8
6
|
const versions = /* @__PURE__ */ new Map();
|
|
9
7
|
function detectYarnVersion(dir) {
|
|
10
8
|
const cwd = process.cwd();
|
|
@@ -13,16 +11,12 @@ function detectYarnVersion(dir) {
|
|
|
13
11
|
}
|
|
14
12
|
const promise = Promise.resolve().then(async () => {
|
|
15
13
|
try {
|
|
16
|
-
const
|
|
17
|
-
shell: true,
|
|
14
|
+
const stdout = await cliCommon.runOutput(["yarn", "--version"], {
|
|
18
15
|
cwd
|
|
19
16
|
});
|
|
20
17
|
return stdout.trim().startsWith("1.") ? "classic" : "berry";
|
|
21
18
|
} catch (error) {
|
|
22
19
|
errors.assertError(error);
|
|
23
|
-
if ("stderr" in error) {
|
|
24
|
-
process.stderr.write(error.stderr);
|
|
25
|
-
}
|
|
26
20
|
throw new errors.ForwardedError("Failed to determine yarn version", error);
|
|
27
21
|
}
|
|
28
22
|
});
|
|
@@ -13,7 +13,7 @@ require('react-dev-utils/ModuleScopePlugin');
|
|
|
13
13
|
require('@module-federation/enhanced/rspack');
|
|
14
14
|
var paths = require('../../../../../lib/paths.cjs.js');
|
|
15
15
|
require('lodash/pickBy');
|
|
16
|
-
require('
|
|
16
|
+
require('@backstage/cli-common');
|
|
17
17
|
require('../../../../../lib/version.cjs.js');
|
|
18
18
|
var hasReactDomClient = require('../../../lib/bundler/hasReactDomClient.cjs.js');
|
|
19
19
|
require('@manypkg/get-packages');
|
|
@@ -16,7 +16,7 @@ require('html-webpack-plugin');
|
|
|
16
16
|
require('react-dev-utils/ModuleScopePlugin');
|
|
17
17
|
require('@module-federation/enhanced/rspack');
|
|
18
18
|
require('lodash/pickBy');
|
|
19
|
-
require('
|
|
19
|
+
require('@backstage/cli-common');
|
|
20
20
|
require('../../../lib/version.cjs.js');
|
|
21
21
|
require('yn');
|
|
22
22
|
require('@manypkg/get-packages');
|
|
@@ -11,7 +11,7 @@ var paths = require('../../../../lib/paths.cjs.js');
|
|
|
11
11
|
var fs = require('fs-extra');
|
|
12
12
|
var optimization = require('./optimization.cjs.js');
|
|
13
13
|
var pickBy = require('lodash/pickBy');
|
|
14
|
-
var
|
|
14
|
+
var cliCommon = require('@backstage/cli-common');
|
|
15
15
|
var transforms = require('./transforms.cjs.js');
|
|
16
16
|
var version = require('../../../../lib/version.cjs.js');
|
|
17
17
|
var yn = require('yn');
|
|
@@ -48,12 +48,12 @@ async function readBuildInfo() {
|
|
|
48
48
|
const timestamp = Date.now();
|
|
49
49
|
let commit;
|
|
50
50
|
try {
|
|
51
|
-
commit = await
|
|
51
|
+
commit = await cliCommon.runOutput(["git", "rev-parse", "HEAD"]);
|
|
52
52
|
} catch (error) {
|
|
53
53
|
}
|
|
54
54
|
let gitVersion;
|
|
55
55
|
try {
|
|
56
|
-
gitVersion = await
|
|
56
|
+
gitVersion = await cliCommon.runOutput(["git", "describe", "--always"]);
|
|
57
57
|
} catch (error) {
|
|
58
58
|
}
|
|
59
59
|
if (commit === void 0 || gitVersion === void 0) {
|
|
@@ -9,13 +9,13 @@ const optimization = (options) => {
|
|
|
9
9
|
minimize: !isDev,
|
|
10
10
|
minimizer: [
|
|
11
11
|
new MinifyPlugin({
|
|
12
|
-
target: "
|
|
12
|
+
target: "ES2023",
|
|
13
13
|
format: "iife",
|
|
14
14
|
exclude: "remoteEntry.js"
|
|
15
15
|
}),
|
|
16
16
|
// Avoid iife wrapping of module federation remote entry as it breaks the variable assignment
|
|
17
17
|
new MinifyPlugin({
|
|
18
|
-
target: "
|
|
18
|
+
target: "ES2023",
|
|
19
19
|
format: void 0,
|
|
20
20
|
include: "remoteEntry.js"
|
|
21
21
|
}),
|
|
@@ -23,7 +23,7 @@ const transforms = (options) => {
|
|
|
23
23
|
loader: webpack ? require.resolve("swc-loader") : "builtin:swc-loader",
|
|
24
24
|
options: {
|
|
25
25
|
jsc: {
|
|
26
|
-
target: "
|
|
26
|
+
target: "es2023",
|
|
27
27
|
externalHelpers: !isBackend,
|
|
28
28
|
parser: {
|
|
29
29
|
syntax: "typescript",
|
|
@@ -49,7 +49,7 @@ const transforms = (options) => {
|
|
|
49
49
|
loader: webpack ? require.resolve("swc-loader") : "builtin:swc-loader",
|
|
50
50
|
options: {
|
|
51
51
|
jsc: {
|
|
52
|
-
target: "
|
|
52
|
+
target: "es2023",
|
|
53
53
|
externalHelpers: !isBackend,
|
|
54
54
|
parser: {
|
|
55
55
|
syntax: "ecmascript",
|
|
@@ -7,7 +7,7 @@ var os = require('os');
|
|
|
7
7
|
var tar = require('tar');
|
|
8
8
|
var partition = require('lodash/partition');
|
|
9
9
|
var paths = require('../../../../lib/paths.cjs.js');
|
|
10
|
-
var
|
|
10
|
+
var cliCommon = require('@backstage/cli-common');
|
|
11
11
|
var _package = require('../../../../packages/cli/package.json.cjs.js');
|
|
12
12
|
var packager = require('../builder/packager.cjs.js');
|
|
13
13
|
var types = require('../builder/types.cjs.js');
|
|
@@ -104,11 +104,11 @@ async function createDistWorkspace(packageNames, options = {}) {
|
|
|
104
104
|
await parallel.runParallelWorkers({
|
|
105
105
|
items: customBuild,
|
|
106
106
|
worker: async ({ name, dir, args }) => {
|
|
107
|
-
await
|
|
107
|
+
await cliCommon.run(["yarn", "run", "build", ...args || []], {
|
|
108
108
|
cwd: dir,
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
});
|
|
109
|
+
onStdout: prefixLogFunc(`${name}: `, "stdout"),
|
|
110
|
+
onStderr: prefixLogFunc(`${name}: `, "stderr")
|
|
111
|
+
}).waitForExit();
|
|
112
112
|
}
|
|
113
113
|
});
|
|
114
114
|
}
|
|
@@ -169,9 +169,9 @@ async function moveToDistWorkspace(workspaceDir, localPackages, alwaysPack, enab
|
|
|
169
169
|
async function pack(target, archive) {
|
|
170
170
|
console.log(`Repacking ${target.name} into dist workspace`);
|
|
171
171
|
const archivePath = path.resolve(workspaceDir, archive);
|
|
172
|
-
await
|
|
172
|
+
await cliCommon.run(["yarn", "pack", "--filename", archivePath], {
|
|
173
173
|
cwd: target.dir
|
|
174
|
-
});
|
|
174
|
+
}).waitForExit();
|
|
175
175
|
const outputDir = path.relative(paths.paths.targetRoot, target.dir);
|
|
176
176
|
const absoluteOutputPath = path.resolve(workspaceDir, outputDir);
|
|
177
177
|
await fs__default.default.ensureDir(absoluteOutputPath);
|
|
@@ -46,7 +46,7 @@ var index = factory.createCliPlugin({
|
|
|
46
46
|
path: ["config:print"],
|
|
47
47
|
description: "Print the app configuration for the current package",
|
|
48
48
|
execute: async ({ args, info }) => {
|
|
49
|
-
const argv = await yargs__default.default.options({
|
|
49
|
+
const argv = await yargs__default.default().options({
|
|
50
50
|
package: { type: "string" },
|
|
51
51
|
lax: { type: "boolean" },
|
|
52
52
|
frontend: { type: "boolean" },
|
|
@@ -61,7 +61,7 @@ var index = factory.createCliPlugin({
|
|
|
61
61
|
path: ["config:check"],
|
|
62
62
|
description: "Validate that the given configuration loads and matches schema",
|
|
63
63
|
execute: async ({ args }) => {
|
|
64
|
-
const argv = await yargs__default.default.options({
|
|
64
|
+
const argv = await yargs__default.default().options({
|
|
65
65
|
package: { type: "string" },
|
|
66
66
|
lax: { type: "boolean" },
|
|
67
67
|
frontend: { type: "boolean" },
|
|
@@ -80,7 +80,7 @@ var index = factory.createCliPlugin({
|
|
|
80
80
|
path: ["config:schema"],
|
|
81
81
|
description: "Print the JSON schema for the given configuration",
|
|
82
82
|
execute: async ({ args }) => {
|
|
83
|
-
const argv = await yargs__default.default.options({
|
|
83
|
+
const argv = await yargs__default.default().options({
|
|
84
84
|
package: { type: "string" },
|
|
85
85
|
format: { type: "string" },
|
|
86
86
|
merge: { type: "boolean" },
|
|
@@ -93,7 +93,7 @@ var index = factory.createCliPlugin({
|
|
|
93
93
|
path: ["config", "schema"],
|
|
94
94
|
description: "Print the JSON schema for the given configuration",
|
|
95
95
|
execute: async ({ args }) => {
|
|
96
|
-
const argv = await yargs__default.default.options({
|
|
96
|
+
const argv = await yargs__default.default().options({
|
|
97
97
|
package: { type: "string" },
|
|
98
98
|
format: { type: "string" },
|
|
99
99
|
merge: { type: "boolean" },
|
|
@@ -4,12 +4,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var _package = require('../../../packages/cli/package.json.cjs.js');
|
|
6
6
|
var os = require('os');
|
|
7
|
-
var
|
|
7
|
+
var cliCommon = require('@backstage/cli-common');
|
|
8
8
|
var paths = require('../../../lib/paths.cjs.js');
|
|
9
9
|
var Lockfile = require('../../../lib/versioning/Lockfile.cjs.js');
|
|
10
10
|
require('minimatch');
|
|
11
11
|
require('@manypkg/get-packages');
|
|
12
|
-
require('../../../lib/versioning/yarn.cjs.js');
|
|
13
12
|
require('@backstage/errors');
|
|
14
13
|
var fs = require('fs-extra');
|
|
15
14
|
|
|
@@ -20,7 +19,7 @@ var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
|
20
19
|
|
|
21
20
|
var info = async () => {
|
|
22
21
|
await new Promise(async () => {
|
|
23
|
-
const yarnVersion = await
|
|
22
|
+
const yarnVersion = await cliCommon.runOutput(["yarn", "--version"]);
|
|
24
23
|
const isLocal = fs__default.default.existsSync(paths.paths.resolveOwn("./src"));
|
|
25
24
|
const backstageFile = paths.paths.resolveTargetRoot("backstage.json");
|
|
26
25
|
let backstageVersion = "N/A";
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var child_process = require('child_process');
|
|
4
3
|
var fs = require('fs-extra');
|
|
5
4
|
var path = require('path');
|
|
6
|
-
var util = require('util');
|
|
7
5
|
var cliNode = require('@backstage/cli-node');
|
|
8
6
|
var paths = require('../../../../lib/paths.cjs.js');
|
|
7
|
+
var cliCommon = require('@backstage/cli-common');
|
|
9
8
|
|
|
10
9
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
11
10
|
|
|
12
11
|
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
13
12
|
|
|
14
|
-
const execFile = util.promisify(child_process.execFile);
|
|
15
13
|
async function command() {
|
|
16
14
|
const packages = await cliNode.PackageGraph.listTargetPackages();
|
|
17
15
|
await fs__default.default.remove(paths.paths.resolveTargetRoot("dist"));
|
|
@@ -27,12 +25,9 @@ async function command() {
|
|
|
27
25
|
await fs__default.default.remove(path.resolve(pkg.dir, "dist-types"));
|
|
28
26
|
await fs__default.default.remove(path.resolve(pkg.dir, "coverage"));
|
|
29
27
|
} else if (cleanScript) {
|
|
30
|
-
|
|
31
|
-
cwd: pkg.dir
|
|
32
|
-
|
|
33
|
-
});
|
|
34
|
-
process.stdout.write(result.stdout);
|
|
35
|
-
process.stderr.write(result.stderr);
|
|
28
|
+
await cliCommon.run(["yarn", "run", "clean"], {
|
|
29
|
+
cwd: pkg.dir
|
|
30
|
+
}).waitForExit();
|
|
36
31
|
}
|
|
37
32
|
}
|
|
38
33
|
})
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var fs = require('fs-extra');
|
|
4
4
|
var path = require('path');
|
|
5
5
|
var cliNode = require('@backstage/cli-node');
|
|
6
|
-
var
|
|
6
|
+
var cliCommon = require('@backstage/cli-common');
|
|
7
7
|
|
|
8
8
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
9
9
|
|
|
@@ -65,7 +65,7 @@ async function command() {
|
|
|
65
65
|
} catch {
|
|
66
66
|
}
|
|
67
67
|
if (hasPrettier) {
|
|
68
|
-
await
|
|
68
|
+
await cliCommon.runOutput(["prettier", "--write", ...configPaths]);
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
|
|
@@ -18,7 +18,6 @@ var parallel = require('../../../../lib/parallel.cjs.js');
|
|
|
18
18
|
var releaseManifests = require('@backstage/release-manifests');
|
|
19
19
|
var migrate = require('./migrate.cjs.js');
|
|
20
20
|
var utils = require('../../lib/utils.cjs.js');
|
|
21
|
-
var run = require('../../../../lib/run.cjs.js');
|
|
22
21
|
|
|
23
22
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
24
23
|
|
|
@@ -94,7 +93,7 @@ var bump = async (opts) => {
|
|
|
94
93
|
);
|
|
95
94
|
console.log();
|
|
96
95
|
const yarnPluginUrl = process.env.BACKSTAGE_VERSIONS_BASE_URL ? `${process.env.BACKSTAGE_VERSIONS_BASE_URL}/v1/releases/${releaseManifest.releaseVersion}/yarn-plugin` : `https://versions.backstage.io/v1/releases/${releaseManifest.releaseVersion}/yarn-plugin`;
|
|
97
|
-
await
|
|
96
|
+
await cliCommon.run(["yarn", "plugin", "import", yarnPluginUrl]).waitForExit();
|
|
98
97
|
console.log();
|
|
99
98
|
}
|
|
100
99
|
const dependencyMap = await packages.mapDependencies(paths.paths.targetDir, pattern);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var ora = require('ora');
|
|
4
4
|
var chalk = require('chalk');
|
|
5
|
-
var
|
|
5
|
+
var cliCommon = require('@backstage/cli-common');
|
|
6
6
|
|
|
7
7
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
8
8
|
|
|
@@ -17,7 +17,7 @@ async function runYarnInstall() {
|
|
|
17
17
|
}).start();
|
|
18
18
|
const installOutput = new Array();
|
|
19
19
|
try {
|
|
20
|
-
await
|
|
20
|
+
await cliCommon.run(["yarn", "install"], {
|
|
21
21
|
env: {
|
|
22
22
|
FORCE_COLOR: "true",
|
|
23
23
|
// We filter out all of the npm_* environment variables that are added when
|
|
@@ -29,9 +29,9 @@ async function runYarnInstall() {
|
|
|
29
29
|
)
|
|
30
30
|
)
|
|
31
31
|
},
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
});
|
|
32
|
+
onStdout: (data) => installOutput.push(data),
|
|
33
|
+
onStderr: (data) => installOutput.push(data)
|
|
34
|
+
}).waitForExit();
|
|
35
35
|
spinner.succeed();
|
|
36
36
|
} catch (error) {
|
|
37
37
|
spinner.fail();
|
|
@@ -12,9 +12,8 @@ var lowerFirst = require('lodash/lowerFirst');
|
|
|
12
12
|
var Lockfile = require('../../../../lib/versioning/Lockfile.cjs.js');
|
|
13
13
|
require('minimatch');
|
|
14
14
|
require('@manypkg/get-packages');
|
|
15
|
-
require('../../../../lib/versioning/yarn.cjs.js');
|
|
16
|
-
require('../../../../lib/run.cjs.js');
|
|
17
15
|
require('@backstage/errors');
|
|
16
|
+
require('@backstage/cli-common');
|
|
18
17
|
var paths = require('../../../../lib/paths.cjs.js');
|
|
19
18
|
var version = require('../../../../lib/version.cjs.js');
|
|
20
19
|
var yarnPlugin = require('../../../../lib/yarnPlugin.cjs.js');
|
|
@@ -5,6 +5,7 @@ var codeowners = require('../codeowners/codeowners.cjs.js');
|
|
|
5
5
|
var tasks = require('../tasks.cjs.js');
|
|
6
6
|
var installNewPackage = require('./installNewPackage.cjs.js');
|
|
7
7
|
var writeTemplateContents = require('./writeTemplateContents.cjs.js');
|
|
8
|
+
var cliCommon = require('@backstage/cli-common');
|
|
8
9
|
|
|
9
10
|
async function executePortableTemplate(options) {
|
|
10
11
|
const { template, input } = options;
|
|
@@ -21,14 +22,25 @@ async function executePortableTemplate(options) {
|
|
|
21
22
|
await codeowners.addCodeownersEntry(targetDir, input.owner);
|
|
22
23
|
}
|
|
23
24
|
if (!options.skipInstall) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
for (const command of [
|
|
26
|
+
["yarn", "install"],
|
|
27
|
+
["yarn", "lint", "--fix"]
|
|
28
|
+
]) {
|
|
29
|
+
const commandStr = command.join(" ");
|
|
30
|
+
try {
|
|
31
|
+
await tasks.Task.forItem("executing", commandStr, async () => {
|
|
32
|
+
await cliCommon.run(command, {
|
|
33
|
+
cwd: targetDir,
|
|
34
|
+
stdio: "ignore"
|
|
35
|
+
}).waitForExit();
|
|
36
|
+
});
|
|
37
|
+
} catch (error) {
|
|
38
|
+
errors.assertError(error);
|
|
39
|
+
tasks.Task.error(
|
|
40
|
+
`Warning: Failed to execute command '${commandStr}', ${error}`
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
32
44
|
}
|
|
33
45
|
tasks.Task.log();
|
|
34
46
|
tasks.Task.log(`\u{1F389} Successfully created ${template.name}`);
|
|
@@ -2,16 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
4
|
var ora = require('ora');
|
|
5
|
-
var util = require('util');
|
|
6
|
-
var child_process = require('child_process');
|
|
7
|
-
var errors = require('@backstage/errors');
|
|
8
5
|
|
|
9
6
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
10
7
|
|
|
11
8
|
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
12
9
|
var ora__default = /*#__PURE__*/_interopDefaultCompat(ora);
|
|
13
10
|
|
|
14
|
-
const exec = util.promisify(child_process.exec);
|
|
15
11
|
const TASK_NAME_MAX_LENGTH = 14;
|
|
16
12
|
class Task {
|
|
17
13
|
static log(name = "") {
|
|
@@ -49,28 +45,6 @@ ${chalk__default.default.red(message)}
|
|
|
49
45
|
throw error;
|
|
50
46
|
}
|
|
51
47
|
}
|
|
52
|
-
static async forCommand(command, options) {
|
|
53
|
-
try {
|
|
54
|
-
await Task.forItem("executing", command, async () => {
|
|
55
|
-
await exec(command, { cwd: options?.cwd });
|
|
56
|
-
});
|
|
57
|
-
} catch (error) {
|
|
58
|
-
errors.assertError(error);
|
|
59
|
-
if (error.stderr) {
|
|
60
|
-
process.stderr.write(error.stderr);
|
|
61
|
-
}
|
|
62
|
-
if (error.stdout) {
|
|
63
|
-
process.stdout.write(error.stdout);
|
|
64
|
-
}
|
|
65
|
-
if (options?.optional) {
|
|
66
|
-
Task.error(`Warning: Failed to execute command ${chalk__default.default.cyan(command)}`);
|
|
67
|
-
} else {
|
|
68
|
-
throw new Error(
|
|
69
|
-
`Failed to execute command '${chalk__default.default.cyan(command)}', ${error}`
|
|
70
|
-
);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
48
|
}
|
|
75
49
|
|
|
76
50
|
exports.Task = Task;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var paths = require('../../../../lib/paths.cjs.js');
|
|
6
|
-
var
|
|
6
|
+
var cliCommon = require('@backstage/cli-common');
|
|
7
7
|
|
|
8
8
|
function includesAnyOf(hayStack, ...needles) {
|
|
9
9
|
for (const needle of needles) {
|
|
@@ -29,8 +29,8 @@ var test = async (_opts, cmd) => {
|
|
|
29
29
|
if (!process.env.CI && !args.includes("--coverage") && // explicitly no watching
|
|
30
30
|
!includesAnyOf(args, "--no-watch", "--watch=false", "--watchAll=false") && // already watching
|
|
31
31
|
!includesAnyOf(args, "--watch", "--watchAll")) {
|
|
32
|
-
const isGitRepo = () =>
|
|
33
|
-
const isMercurialRepo = () =>
|
|
32
|
+
const isGitRepo = () => cliCommon.runCheck(["git", "rev-parse", "--is-inside-work-tree"]);
|
|
33
|
+
const isMercurialRepo = () => cliCommon.runCheck(["hg", "--cwd", ".", "root"]);
|
|
34
34
|
if (await isGitRepo() || await isMercurialRepo()) {
|
|
35
35
|
args.push("--watch");
|
|
36
36
|
} else {
|
|
@@ -7,7 +7,6 @@ var jestCli = require('jest-cli');
|
|
|
7
7
|
var path = require('path');
|
|
8
8
|
var cliNode = require('@backstage/cli-node');
|
|
9
9
|
var paths = require('../../../../lib/paths.cjs.js');
|
|
10
|
-
var run = require('../../../../lib/run.cjs.js');
|
|
11
10
|
var cliCommon = require('@backstage/cli-common');
|
|
12
11
|
var SuccessCache = require('../../../../lib/cache/SuccessCache.cjs.js');
|
|
13
12
|
|
|
@@ -22,14 +21,14 @@ async function readPackageTreeHashes(graph) {
|
|
|
22
21
|
...pkg,
|
|
23
22
|
path: path.relative(paths.paths.targetRoot, pkg.dir)
|
|
24
23
|
}));
|
|
25
|
-
const output = await
|
|
24
|
+
const output = await cliCommon.runOutput([
|
|
26
25
|
"git",
|
|
27
26
|
"ls-tree",
|
|
28
|
-
|
|
27
|
+
"--format=%(objectname)=%(path)",
|
|
29
28
|
"HEAD",
|
|
30
29
|
"--",
|
|
31
30
|
...pkgs.map((pkg) => pkg.path)
|
|
32
|
-
);
|
|
31
|
+
]);
|
|
33
32
|
const map = new Map(
|
|
34
33
|
output.trim().split(/\r?\n/).map((line) => {
|
|
35
34
|
const [itemSha, ...itemPathParts] = line.split("=");
|
|
@@ -108,8 +107,8 @@ async function command(opts, cmd) {
|
|
|
108
107
|
}
|
|
109
108
|
let isSingleWatchMode = args.includes("--watch");
|
|
110
109
|
if (!opts.since && !process.env.CI && !hasFlags("--coverage", "--watch", "--watchAll")) {
|
|
111
|
-
const isGitRepo = () =>
|
|
112
|
-
const isMercurialRepo = () =>
|
|
110
|
+
const isGitRepo = () => cliCommon.runCheck(["git", "rev-parse", "--is-inside-work-tree"]);
|
|
111
|
+
const isMercurialRepo = () => cliCommon.runCheck(["hg", "--cwd", ".", "root"]);
|
|
113
112
|
if (await isGitRepo() || await isMercurialRepo()) {
|
|
114
113
|
isSingleWatchMode = true;
|
|
115
114
|
args.push("--watch");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var version = "0.
|
|
3
|
+
var version = "0.35.0-next.2";
|
|
4
4
|
var dependencies = {
|
|
5
5
|
"@backstage/catalog-model": "workspace:^",
|
|
6
6
|
"@backstage/cli-common": "workspace:^",
|
|
@@ -43,7 +43,7 @@ var dependencies = {
|
|
|
43
43
|
"cross-spawn": "^7.0.3",
|
|
44
44
|
"css-loader": "^6.5.1",
|
|
45
45
|
"ctrlc-windows": "^2.1.0",
|
|
46
|
-
esbuild: "^0.
|
|
46
|
+
esbuild: "^0.27.0",
|
|
47
47
|
eslint: "^8.6.0",
|
|
48
48
|
"eslint-config-prettier": "^9.0.0",
|
|
49
49
|
"eslint-formatter-friendly": "^7.0.0",
|
|
@@ -55,7 +55,7 @@ var dependencies = {
|
|
|
55
55
|
"eslint-plugin-react-hooks": "^5.0.0",
|
|
56
56
|
"eslint-plugin-unused-imports": "^4.1.4",
|
|
57
57
|
"eslint-rspack-plugin": "^4.2.1",
|
|
58
|
-
express: "^4.
|
|
58
|
+
express: "^4.22.0",
|
|
59
59
|
"fs-extra": "^11.2.0",
|
|
60
60
|
"git-url-parse": "^15.0.0",
|
|
61
61
|
glob: "^7.1.7",
|
|
@@ -122,14 +122,14 @@ var devDependencies = {
|
|
|
122
122
|
"@backstage/plugin-scaffolder-node-test-utils": "workspace:^",
|
|
123
123
|
"@backstage/test-utils": "workspace:^",
|
|
124
124
|
"@backstage/theme": "workspace:^",
|
|
125
|
-
"@pmmmwh/react-refresh-webpack-plugin": "^0.
|
|
125
|
+
"@pmmmwh/react-refresh-webpack-plugin": "^0.6.0",
|
|
126
126
|
"@types/cross-spawn": "^6.0.2",
|
|
127
127
|
"@types/ejs": "^3.1.3",
|
|
128
128
|
"@types/express": "^4.17.6",
|
|
129
129
|
"@types/fs-extra": "^11.0.0",
|
|
130
130
|
"@types/http-proxy": "^1.17.4",
|
|
131
131
|
"@types/inquirer": "^8.1.3",
|
|
132
|
-
"@types/node": "^
|
|
132
|
+
"@types/node": "^22.13.14",
|
|
133
133
|
"@types/npm-packlist": "^3.0.0",
|
|
134
134
|
"@types/recursive-readdir": "^2.2.0",
|
|
135
135
|
"@types/rollup-plugin-peer-deps-external": "^2.2.0",
|
|
@@ -147,7 +147,7 @@ var devDependencies = {
|
|
|
147
147
|
msw: "^1.0.0",
|
|
148
148
|
nodemon: "^3.0.1",
|
|
149
149
|
"terser-webpack-plugin": "^5.1.3",
|
|
150
|
-
webpack: "~5.
|
|
150
|
+
webpack: "~5.103.0",
|
|
151
151
|
"webpack-dev-server": "^5.0.0"
|
|
152
152
|
};
|
|
153
153
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.35.0-next.2",
|
|
4
4
|
"description": "CLI for developing Backstage plugins and apps",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "cli"
|
|
@@ -48,13 +48,13 @@
|
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"@backstage/catalog-model": "1.7.6",
|
|
51
|
-
"@backstage/cli-common": "0.1.16-next.
|
|
52
|
-
"@backstage/cli-node": "0.2.16-next.
|
|
51
|
+
"@backstage/cli-common": "0.1.16-next.2",
|
|
52
|
+
"@backstage/cli-node": "0.2.16-next.1",
|
|
53
53
|
"@backstage/config": "1.3.6",
|
|
54
|
-
"@backstage/config-loader": "1.10.7-next.
|
|
54
|
+
"@backstage/config-loader": "1.10.7-next.1",
|
|
55
55
|
"@backstage/errors": "1.2.7",
|
|
56
56
|
"@backstage/eslint-plugin": "0.2.0",
|
|
57
|
-
"@backstage/integration": "1.18.3-next.
|
|
57
|
+
"@backstage/integration": "1.18.3-next.1",
|
|
58
58
|
"@backstage/release-manifests": "0.0.13",
|
|
59
59
|
"@backstage/types": "1.2.2",
|
|
60
60
|
"@manypkg/get-packages": "^1.1.3",
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"cross-spawn": "^7.0.3",
|
|
89
89
|
"css-loader": "^6.5.1",
|
|
90
90
|
"ctrlc-windows": "^2.1.0",
|
|
91
|
-
"esbuild": "^0.
|
|
91
|
+
"esbuild": "^0.27.0",
|
|
92
92
|
"eslint": "^8.6.0",
|
|
93
93
|
"eslint-config-prettier": "^9.0.0",
|
|
94
94
|
"eslint-formatter-friendly": "^7.0.0",
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
"eslint-plugin-react-hooks": "^5.0.0",
|
|
101
101
|
"eslint-plugin-unused-imports": "^4.1.4",
|
|
102
102
|
"eslint-rspack-plugin": "^4.2.1",
|
|
103
|
-
"express": "^4.
|
|
103
|
+
"express": "^4.22.0",
|
|
104
104
|
"fs-extra": "^11.2.0",
|
|
105
105
|
"git-url-parse": "^15.0.0",
|
|
106
106
|
"glob": "^7.1.7",
|
|
@@ -151,30 +151,30 @@
|
|
|
151
151
|
"zod-validation-error": "^3.4.0"
|
|
152
152
|
},
|
|
153
153
|
"devDependencies": {
|
|
154
|
-
"@backstage/backend-plugin-api": "1.
|
|
155
|
-
"@backstage/backend-test-utils": "1.10.
|
|
154
|
+
"@backstage/backend-plugin-api": "1.6.0-next.1",
|
|
155
|
+
"@backstage/backend-test-utils": "1.10.2-next.1",
|
|
156
156
|
"@backstage/catalog-client": "1.12.1",
|
|
157
157
|
"@backstage/config": "1.3.6",
|
|
158
|
-
"@backstage/core-app-api": "1.19.3-next.
|
|
159
|
-
"@backstage/core-components": "0.18.4-next.
|
|
158
|
+
"@backstage/core-app-api": "1.19.3-next.1",
|
|
159
|
+
"@backstage/core-components": "0.18.4-next.2",
|
|
160
160
|
"@backstage/core-plugin-api": "1.12.1-next.0",
|
|
161
|
-
"@backstage/dev-utils": "1.1.18-next.
|
|
161
|
+
"@backstage/dev-utils": "1.1.18-next.1",
|
|
162
162
|
"@backstage/errors": "1.2.7",
|
|
163
|
-
"@backstage/plugin-auth-backend": "0.25.7-next.
|
|
164
|
-
"@backstage/plugin-auth-backend-module-guest-provider": "0.2.15-next.
|
|
165
|
-
"@backstage/plugin-catalog-node": "1.20.1-next.
|
|
166
|
-
"@backstage/plugin-scaffolder-node": "0.12.2-next.
|
|
167
|
-
"@backstage/plugin-scaffolder-node-test-utils": "0.3.6-next.
|
|
163
|
+
"@backstage/plugin-auth-backend": "0.25.7-next.1",
|
|
164
|
+
"@backstage/plugin-auth-backend-module-guest-provider": "0.2.15-next.1",
|
|
165
|
+
"@backstage/plugin-catalog-node": "1.20.1-next.1",
|
|
166
|
+
"@backstage/plugin-scaffolder-node": "0.12.2-next.1",
|
|
167
|
+
"@backstage/plugin-scaffolder-node-test-utils": "0.3.6-next.1",
|
|
168
168
|
"@backstage/test-utils": "1.7.14-next.0",
|
|
169
169
|
"@backstage/theme": "0.7.1-next.0",
|
|
170
|
-
"@pmmmwh/react-refresh-webpack-plugin": "^0.
|
|
170
|
+
"@pmmmwh/react-refresh-webpack-plugin": "^0.6.0",
|
|
171
171
|
"@types/cross-spawn": "^6.0.2",
|
|
172
172
|
"@types/ejs": "^3.1.3",
|
|
173
173
|
"@types/express": "^4.17.6",
|
|
174
174
|
"@types/fs-extra": "^11.0.0",
|
|
175
175
|
"@types/http-proxy": "^1.17.4",
|
|
176
176
|
"@types/inquirer": "^8.1.3",
|
|
177
|
-
"@types/node": "^
|
|
177
|
+
"@types/node": "^22.13.14",
|
|
178
178
|
"@types/npm-packlist": "^3.0.0",
|
|
179
179
|
"@types/recursive-readdir": "^2.2.0",
|
|
180
180
|
"@types/rollup-plugin-peer-deps-external": "^2.2.0",
|
|
@@ -192,18 +192,18 @@
|
|
|
192
192
|
"msw": "^1.0.0",
|
|
193
193
|
"nodemon": "^3.0.1",
|
|
194
194
|
"terser-webpack-plugin": "^5.1.3",
|
|
195
|
-
"webpack": "~5.
|
|
195
|
+
"webpack": "~5.103.0",
|
|
196
196
|
"webpack-dev-server": "^5.0.0"
|
|
197
197
|
},
|
|
198
198
|
"peerDependencies": {
|
|
199
199
|
"@module-federation/enhanced": "^0.9.0",
|
|
200
|
-
"@pmmmwh/react-refresh-webpack-plugin": "^0.
|
|
200
|
+
"@pmmmwh/react-refresh-webpack-plugin": "^0.6.0",
|
|
201
201
|
"esbuild-loader": "^4.0.0",
|
|
202
202
|
"eslint-webpack-plugin": "^4.2.0",
|
|
203
203
|
"fork-ts-checker-webpack-plugin": "^9.0.0",
|
|
204
204
|
"mini-css-extract-plugin": "^2.4.2",
|
|
205
205
|
"terser-webpack-plugin": "^5.1.3",
|
|
206
|
-
"webpack": "~5.
|
|
206
|
+
"webpack": "~5.103.0",
|
|
207
207
|
"webpack-dev-server": "^5.0.0"
|
|
208
208
|
},
|
|
209
209
|
"peerDependenciesMeta": {
|
package/dist/lib/run.cjs.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var child_process = require('child_process');
|
|
4
|
-
var errors = require('./errors.cjs.js');
|
|
5
|
-
var util = require('util');
|
|
6
|
-
var errors$1 = require('@backstage/errors');
|
|
7
|
-
|
|
8
|
-
const execFile = util.promisify(child_process.execFile);
|
|
9
|
-
async function run(name, args = [], options = {}) {
|
|
10
|
-
const { stdoutLogFunc, stderrLogFunc } = options;
|
|
11
|
-
const env = {
|
|
12
|
-
...process.env,
|
|
13
|
-
FORCE_COLOR: "true",
|
|
14
|
-
...options.env ?? {}
|
|
15
|
-
};
|
|
16
|
-
const stdio = [
|
|
17
|
-
"inherit",
|
|
18
|
-
stdoutLogFunc ? "pipe" : "inherit",
|
|
19
|
-
stderrLogFunc ? "pipe" : "inherit"
|
|
20
|
-
];
|
|
21
|
-
const child = child_process.spawn(name, args, {
|
|
22
|
-
stdio,
|
|
23
|
-
shell: true,
|
|
24
|
-
...options,
|
|
25
|
-
env
|
|
26
|
-
});
|
|
27
|
-
if (stdoutLogFunc && child.stdout) {
|
|
28
|
-
child.stdout.on("data", stdoutLogFunc);
|
|
29
|
-
}
|
|
30
|
-
if (stderrLogFunc && child.stderr) {
|
|
31
|
-
child.stderr.on("data", stderrLogFunc);
|
|
32
|
-
}
|
|
33
|
-
await waitForExit(child, name);
|
|
34
|
-
}
|
|
35
|
-
async function runPlain(cmd, ...args) {
|
|
36
|
-
try {
|
|
37
|
-
const { stdout } = await execFile(cmd, args, { shell: true });
|
|
38
|
-
return stdout.trim();
|
|
39
|
-
} catch (error) {
|
|
40
|
-
errors$1.assertError(error);
|
|
41
|
-
if ("stderr" in error) {
|
|
42
|
-
process.stderr.write(error.stderr);
|
|
43
|
-
}
|
|
44
|
-
if (typeof error.code === "number") {
|
|
45
|
-
throw new errors.ExitCodeError(error.code, [cmd, ...args].join(" "));
|
|
46
|
-
}
|
|
47
|
-
throw new errors$1.ForwardedError("Unknown execution error", error);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
async function runCheck(cmd, ...args) {
|
|
51
|
-
try {
|
|
52
|
-
await execFile(cmd, args, { shell: true });
|
|
53
|
-
return true;
|
|
54
|
-
} catch (error) {
|
|
55
|
-
return false;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
async function waitForExit(child, name) {
|
|
59
|
-
if (typeof child.exitCode === "number") {
|
|
60
|
-
if (child.exitCode) {
|
|
61
|
-
throw new errors.ExitCodeError(child.exitCode, name);
|
|
62
|
-
}
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
await new Promise((resolve, reject) => {
|
|
66
|
-
child.once("error", (error) => reject(error));
|
|
67
|
-
child.once("exit", (code) => {
|
|
68
|
-
if (code) {
|
|
69
|
-
reject(new errors.ExitCodeError(code, name));
|
|
70
|
-
} else {
|
|
71
|
-
resolve();
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
exports.execFile = execFile;
|
|
78
|
-
exports.run = run;
|
|
79
|
-
exports.runCheck = runCheck;
|
|
80
|
-
exports.runPlain = runPlain;
|
|
81
|
-
exports.waitForExit = waitForExit;
|
|
82
|
-
//# sourceMappingURL=run.cjs.js.map
|