@code-pushup/cli 0.93.0 → 0.94.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/README.md +3 -3
- package/package.json +4 -4
- package/src/lib/autorun/autorun-command.js +9 -14
- package/src/lib/autorun/autorun-command.js.map +1 -1
- package/src/lib/cli.js +2 -2
- package/src/lib/cli.js.map +1 -1
- package/src/lib/collect/collect-command.d.ts +0 -1
- package/src/lib/collect/collect-command.js +11 -23
- package/src/lib/collect/collect-command.js.map +1 -1
- package/src/lib/compare/compare-command.js +2 -3
- package/src/lib/compare/compare-command.js.map +1 -1
- package/src/lib/constants.d.ts +1 -1
- package/src/lib/constants.js +1 -1
- package/src/lib/constants.js.map +1 -1
- package/src/lib/history/history-command.js +2 -4
- package/src/lib/history/history-command.js.map +1 -1
- package/src/lib/implementation/core-config.middleware.d.ts +0 -1
- package/src/lib/implementation/core-config.middleware.js +30 -21
- package/src/lib/implementation/core-config.middleware.js.map +1 -1
- package/src/lib/implementation/log-intro.middleware.d.ts +2 -0
- package/src/lib/implementation/log-intro.middleware.js +9 -0
- package/src/lib/implementation/log-intro.middleware.js.map +1 -0
- package/src/lib/implementation/logging.d.ts +4 -4
- package/src/lib/implementation/logging.js +20 -13
- package/src/lib/implementation/logging.js.map +1 -1
- package/src/lib/implementation/print-config.model.d.ts +1 -1
- package/src/lib/implementation/print-config.options.js +2 -1
- package/src/lib/implementation/print-config.options.js.map +1 -1
- package/src/lib/implementation/version.d.ts +1 -0
- package/src/lib/implementation/version.js +6 -0
- package/src/lib/implementation/version.js.map +1 -0
- package/src/lib/merge-diffs/merge-diffs-command.js +2 -3
- package/src/lib/merge-diffs/merge-diffs-command.js.map +1 -1
- package/src/lib/middlewares.js +5 -0
- package/src/lib/middlewares.js.map +1 -1
- package/src/lib/print-config/print-config-command.js +5 -8
- package/src/lib/print-config/print-config-command.js.map +1 -1
- package/src/lib/upload/upload-command.js +7 -11
- package/src/lib/upload/upload-command.js.map +1 -1
- package/src/lib/yargs-cli.d.ts +2 -2
- package/src/lib/yargs-cli.js +2 -3
- package/src/lib/yargs-cli.js.map +1 -1
package/README.md
CHANGED
|
@@ -331,9 +331,9 @@ Print the resolved configuration.
|
|
|
331
331
|
|
|
332
332
|
In addition to the [Common Command Options](#common-command-options), the following options are recognized by the `print-config` command:
|
|
333
333
|
|
|
334
|
-
| Option | Required | Type | Description
|
|
335
|
-
| -------------- | :------: | -------- |
|
|
336
|
-
| **`--output`** |
|
|
334
|
+
| Option | Required | Type | Description |
|
|
335
|
+
| -------------- | :------: | -------- | ------------------------------------ |
|
|
336
|
+
| **`--output`** | yes | `string` | Path to output file to print config. |
|
|
337
337
|
|
|
338
338
|
#### `merge-diffs` command
|
|
339
339
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-pushup/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.94.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "A CLI to run all kinds of code quality measurements to align your team with company goals",
|
|
6
6
|
"homepage": "https://code-pushup.dev",
|
|
@@ -45,9 +45,9 @@
|
|
|
45
45
|
"node": ">=20"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@code-pushup/models": "0.
|
|
49
|
-
"@code-pushup/core": "0.
|
|
50
|
-
"@code-pushup/utils": "0.
|
|
48
|
+
"@code-pushup/models": "0.94.0",
|
|
49
|
+
"@code-pushup/core": "0.94.0",
|
|
50
|
+
"@code-pushup/utils": "0.94.0",
|
|
51
51
|
"yargs": "^17.7.2",
|
|
52
52
|
"ansis": "^3.3.0",
|
|
53
53
|
"simple-git": "^3.20.0"
|
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
import ansis from 'ansis';
|
|
2
1
|
import { collectAndPersistReports, upload, } from '@code-pushup/core';
|
|
3
2
|
import { logger } from '@code-pushup/utils';
|
|
4
|
-
import {
|
|
5
|
-
import { collectSuccessfulLog, renderConfigureCategoriesHint, renderIntegratePortalHint, uploadSuccessfulLog, } from '../implementation/logging.js';
|
|
3
|
+
import { printCliCommand, renderCategoriesHint, renderPortalHint, } from '../implementation/logging.js';
|
|
6
4
|
export function yargsAutorunCommandObject() {
|
|
7
5
|
const command = 'autorun';
|
|
8
6
|
return {
|
|
9
7
|
command,
|
|
10
8
|
describe: 'Shortcut for running collect followed by upload',
|
|
11
9
|
handler: async (args) => {
|
|
12
|
-
|
|
13
|
-
logger.debug(`Running ${ansis.bold(command)} command`);
|
|
10
|
+
printCliCommand(command);
|
|
14
11
|
const options = args;
|
|
15
12
|
// we need to ensure `json` is part of the formats as we want to upload
|
|
16
13
|
const optionsWithFormat = {
|
|
@@ -23,19 +20,17 @@ export function yargsAutorunCommandObject() {
|
|
|
23
20
|
},
|
|
24
21
|
};
|
|
25
22
|
await collectAndPersistReports(optionsWithFormat);
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
if (!options.categories?.length) {
|
|
24
|
+
renderCategoriesHint();
|
|
25
|
+
logger.newline();
|
|
29
26
|
}
|
|
30
27
|
if (options.upload) {
|
|
31
|
-
|
|
32
|
-
if (report?.url) {
|
|
33
|
-
uploadSuccessfulLog(report.url);
|
|
34
|
-
}
|
|
28
|
+
await upload(options);
|
|
35
29
|
}
|
|
36
30
|
else {
|
|
37
|
-
logger.warn('Upload skipped because
|
|
38
|
-
|
|
31
|
+
logger.warn('Upload skipped because Portal is not configured.');
|
|
32
|
+
logger.newline();
|
|
33
|
+
renderPortalHint();
|
|
39
34
|
}
|
|
40
35
|
},
|
|
41
36
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autorun-command.js","sourceRoot":"","sources":["../../../../src/lib/autorun/autorun-command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"autorun-command.js","sourceRoot":"","sources":["../../../../src/lib/autorun/autorun-command.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,wBAAwB,EACxB,MAAM,GACP,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AAItC,MAAM,UAAU,yBAAyB;IACvC,MAAM,OAAO,GAAG,SAAS,CAAC;IAC1B,OAAO;QACL,OAAO;QACP,QAAQ,EAAE,iDAAiD;QAC3D,OAAO,EAAE,KAAK,EAAK,IAA2B,EAAE,EAAE;YAChD,eAAe,CAAC,OAAO,CAAC,CAAC;YAEzB,MAAM,OAAO,GAAG,IAAiC,CAAC;YAElD,uEAAuE;YACvE,MAAM,iBAAiB,GAAmB;gBACxC,GAAG,OAAO;gBACV,OAAO,EAAE;oBACP,GAAG,OAAO,CAAC,OAAO;oBAClB,MAAM,EAAE;wBACN,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;qBACT;iBACzC;aACF,CAAC;YAEF,MAAM,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;YAElD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;gBAChC,oBAAoB,EAAE,CAAC;gBACvB,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;gBAChE,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,gBAAgB,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;KACsB,CAAC;AAC5B,CAAC"}
|
package/src/lib/cli.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { commands } from './commands.js';
|
|
2
|
-
import {
|
|
2
|
+
import { CLI_DISPLAY_NAME, CLI_SCRIPT_NAME } from './constants.js';
|
|
3
3
|
import { middlewares } from './middlewares.js';
|
|
4
4
|
import { groups, options } from './options.js';
|
|
5
5
|
import { yargsCli } from './yargs-cli.js';
|
|
6
6
|
export const cli = (args) => yargsCli(args, {
|
|
7
|
-
usageMessage:
|
|
7
|
+
usageMessage: CLI_DISPLAY_NAME,
|
|
8
8
|
scriptName: CLI_SCRIPT_NAME,
|
|
9
9
|
options,
|
|
10
10
|
groups,
|
package/src/lib/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/lib/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/lib/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,IAAc,EAAE,EAAE,CACpC,QAAQ,CAAC,IAAI,EAAE;IACb,YAAY,EAAE,gBAAgB;IAC9B,UAAU,EAAE,eAAe;IAC3B,OAAO;IACP,MAAM;IACN,QAAQ,EAAE;QACR;YACE,aAAa;YACb,uFAAuF;SACxF;QACD;YACE,mDAAmD;YACnD,wEAAwE;SACzE;QACD;YACE,4CAA4C;YAC5C,wFAAwF;SACzF;QACD;YACE,4CAA4C;YAC5C,4FAA4F;SAC7F;QACD;YACE,yEAAyE;YACzE,2EAA2E;SAC5E;QACD;YACE,8DAA8D;YAC9D,iEAAiE;SAClE;KACF;IACD,WAAW;IACX,QAAQ;CACT,CAAC,CAAC"}
|
|
@@ -1,37 +1,25 @@
|
|
|
1
|
-
import ansis from 'ansis';
|
|
2
1
|
import { collectAndPersistReports, } from '@code-pushup/core';
|
|
3
|
-
import {
|
|
4
|
-
import { CLI_NAME } from '../constants.js';
|
|
5
|
-
import { collectSuccessfulLog, renderConfigureCategoriesHint, } from '../implementation/logging.js';
|
|
2
|
+
import { printCliCommand, renderCategoriesHint, renderPortalHint, renderUploadHint, } from '../implementation/logging.js';
|
|
6
3
|
export function yargsCollectCommandObject() {
|
|
7
4
|
const command = 'collect';
|
|
8
5
|
return {
|
|
9
6
|
command,
|
|
10
|
-
describe: 'Run
|
|
7
|
+
describe: 'Run plugins and collect results',
|
|
11
8
|
handler: async (args) => {
|
|
9
|
+
printCliCommand(command);
|
|
12
10
|
const options = args;
|
|
13
|
-
logger.info(ansis.bold(CLI_NAME));
|
|
14
|
-
logger.debug(`Running ${ansis.bold(command)} command`);
|
|
15
11
|
await collectAndPersistReports(options);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
renderConfigureCategoriesHint();
|
|
12
|
+
if (!options.categories?.length) {
|
|
13
|
+
renderCategoriesHint();
|
|
19
14
|
}
|
|
20
|
-
const { upload
|
|
21
|
-
if (
|
|
22
|
-
|
|
15
|
+
const { upload } = args;
|
|
16
|
+
if (upload) {
|
|
17
|
+
renderUploadHint();
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
renderPortalHint();
|
|
23
21
|
}
|
|
24
22
|
},
|
|
25
23
|
};
|
|
26
24
|
}
|
|
27
|
-
export function renderUploadAutorunHint() {
|
|
28
|
-
logger.info(formatAsciiSticker([
|
|
29
|
-
ansis.bold.gray('💡 Visualize your reports'),
|
|
30
|
-
'',
|
|
31
|
-
`${ansis.gray('❯')} npx code-pushup upload - ${ansis.gray('Run upload to upload the created report to the server')}`,
|
|
32
|
-
` ${formatAsciiLink('https://github.com/code-pushup/cli/tree/main/packages/cli#upload-command')}`,
|
|
33
|
-
`${ansis.gray('❯')} npx code-pushup autorun - ${ansis.gray('Run collect & upload')}`,
|
|
34
|
-
` ${formatAsciiLink('https://github.com/code-pushup/cli/tree/main/packages/cli#autorun-command')}`,
|
|
35
|
-
]));
|
|
36
|
-
}
|
|
37
25
|
//# sourceMappingURL=collect-command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collect-command.js","sourceRoot":"","sources":["../../../../src/lib/collect/collect-command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"collect-command.js","sourceRoot":"","sources":["../../../../src/lib/collect/collect-command.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,UAAU,yBAAyB;IACvC,MAAM,OAAO,GAAG,SAAS,CAAC;IAC1B,OAAO;QACL,OAAO;QACP,QAAQ,EAAE,iCAAiC;QAC3C,OAAO,EAAE,KAAK,EAAK,IAA2B,EAAE,EAAE;YAChD,eAAe,CAAC,OAAO,CAAC,CAAC;YAEzB,MAAM,OAAO,GAAG,IAAkD,CAAC;YAEnE,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAC;YAExC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;gBAChC,oBAAoB,EAAE,CAAC;YACzB,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,GAAG,IAGlB,CAAC;YACF,IAAI,MAAM,EAAE,CAAC;gBACX,gBAAgB,EAAE,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,gBAAgB,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;KACsB,CAAC;AAC5B,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import ansis from 'ansis';
|
|
2
2
|
import { compareReportFiles } from '@code-pushup/core';
|
|
3
3
|
import { logger } from '@code-pushup/utils';
|
|
4
|
-
import { CLI_NAME } from '../constants.js';
|
|
5
4
|
import { yargsCompareOptionsDefinition } from '../implementation/compare.options.js';
|
|
5
|
+
import { printCliCommand } from '../implementation/logging.js';
|
|
6
6
|
export function yargsCompareCommandObject() {
|
|
7
7
|
const command = 'compare';
|
|
8
8
|
return {
|
|
@@ -10,8 +10,7 @@ export function yargsCompareCommandObject() {
|
|
|
10
10
|
describe: 'Compare 2 report files and create a diff file',
|
|
11
11
|
builder: yargsCompareOptionsDefinition(),
|
|
12
12
|
handler: async (args) => {
|
|
13
|
-
|
|
14
|
-
logger.debug(`Running ${ansis.bold(command)} command`);
|
|
13
|
+
printCliCommand(command);
|
|
15
14
|
const options = args;
|
|
16
15
|
const { before, after, label, persist, upload } = options;
|
|
17
16
|
const outputPaths = await compareReportFiles({ persist, upload }, { before, after, label });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare-command.js","sourceRoot":"","sources":["../../../../src/lib/compare/compare-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAuB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"compare-command.js","sourceRoot":"","sources":["../../../../src/lib/compare/compare-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAuB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,UAAU,yBAAyB;IACvC,MAAM,OAAO,GAAG,SAAS,CAAC;IAC1B,OAAO;QACL,OAAO;QACP,QAAQ,EAAE,+CAA+C;QACzD,OAAO,EAAE,6BAA6B,EAAE;QACxC,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;YAC/B,eAAe,CAAC,OAAO,CAAC,CAAC;YAEzB,MAAM,OAAO,GAAG,IAGf,CAAC;YAEF,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;YAE1D,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAC1C,EAAE,OAAO,EAAE,MAAM,EAAE,EACnB,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CACzB,CAAC;YAEF,MAAM,CAAC,IAAI,CACT,2BAA2B,WAAW;iBACnC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC7B,IAAI,CAAC,OAAO,CAAC,EAAE,CACnB,CAAC;QACJ,CAAC;KACsB,CAAC;AAC5B,CAAC"}
|
package/src/lib/constants.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const CLI_DISPLAY_NAME = "Code PushUp CLI";
|
|
2
2
|
export declare const CLI_SCRIPT_NAME = "code-pushup";
|
package/src/lib/constants.js
CHANGED
package/src/lib/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAClD,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAC"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import ansis from 'ansis';
|
|
2
1
|
import { history } from '@code-pushup/core';
|
|
3
2
|
import { getCurrentBranchOrTag, getHashes, getSemverTags, logger, safeCheckout, } from '@code-pushup/utils';
|
|
4
|
-
import { CLI_NAME } from '../constants.js';
|
|
5
3
|
import { yargsFilterOptionsDefinition } from '../implementation/filter.options.js';
|
|
4
|
+
import { printCliCommand } from '../implementation/logging.js';
|
|
6
5
|
import { yargsHistoryOptionsDefinition } from './history.options.js';
|
|
7
6
|
import { normalizeHashOptions } from './utils.js';
|
|
8
7
|
const command = 'history';
|
|
9
8
|
async function handler(args) {
|
|
10
|
-
|
|
11
|
-
logger.debug(`Running ${ansis.bold(command)} command`);
|
|
9
|
+
printCliCommand(command);
|
|
12
10
|
const currentBranch = await getCurrentBranchOrTag();
|
|
13
11
|
const { targetBranch: rawTargetBranch, ...opt } = args;
|
|
14
12
|
const { targetBranch, from, to, maxCount, onlySemverTags, ...historyOptions } = await normalizeHashOptions({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history-command.js","sourceRoot":"","sources":["../../../../src/lib/history/history-command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"history-command.js","sourceRoot":"","sources":["../../../../src/lib/history/history-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAEL,qBAAqB,EACrB,SAAS,EACT,aAAa,EACb,MAAM,EACN,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,OAAO,GAAG,SAAS,CAAC;AAC1B,KAAK,UAAU,OAAO,CAAC,IAAa;IAClC,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzB,MAAM,aAAa,GAAG,MAAM,qBAAqB,EAAE,CAAC;IACpD,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,GAAG,EAAE,GAAG,IAClC,CAAC;IACjB,MAAM,EACJ,YAAY,EACZ,IAAI,EACJ,EAAE,EACF,QAAQ,EACR,cAAc,EACd,GAAG,cAAc,EAClB,GAAG,MAAM,oBAAoB,CAAC;QAC7B,GAAG,GAAG;QACN,YAAY,EAAE,eAAe,IAAI,aAAa;KAC/C,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAgB,cAAc;QACzC,CAAC,CAAC,MAAM,aAAa,CAAC,aAAa,CAAC;QACpC,CAAC,CAAC,MAAM,SAAS,CAAC,aAAa,CAAC,CAAC;IAEnC,IAAI,CAAC;QACH,oBAAoB;QACpB,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B;YACE,YAAY;YACZ,GAAG,cAAc;SAClB,EACD,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAChC,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;YAAS,CAAC;QACT,4BAA4B;QAC5B,MAAM,YAAY,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO;QACL,OAAO;QACP,QAAQ,EAAE,oCAAoC;QAC9C,OAAO,EAAE,KAAK,CAAC,EAAE;YACf,KAAK,CAAC,OAAO,CAAC;gBACZ,GAAG,6BAA6B,EAAE;gBAClC,GAAG,4BAA4B,EAAE;aAClC,CAAC,CAAC;YACH,KAAK,CAAC,KAAK,CACT,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC,EAC5C,kBAAkB,CACnB,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO;KACgB,CAAC;AAC5B,CAAC"}
|
|
@@ -4,6 +4,5 @@ import type { FilterOptions } from './filter.model.js';
|
|
|
4
4
|
import type { GlobalOptions } from './global.model.js';
|
|
5
5
|
export type CoreConfigMiddlewareOptions = GlobalOptions & CoreConfigCliOptions & FilterOptions;
|
|
6
6
|
export declare function coreConfigMiddleware<T extends CoreConfigMiddlewareOptions>(processArgs: T): Promise<GlobalOptions & CoreConfig & FilterOptions>;
|
|
7
|
-
export declare const normalizeBooleanWithNegation: <T extends string>(propertyName: T, cliOptions?: Record<T, unknown>, rcOptions?: Record<T, unknown>) => boolean;
|
|
8
7
|
export declare const normalizeCache: (cache?: CacheConfig) => CacheConfigObject;
|
|
9
8
|
export declare const normalizeFormats: (formats?: string[]) => Format[];
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { autoloadRc, readRcByPath } from '@code-pushup/core';
|
|
2
2
|
import { DEFAULT_PERSIST_FILENAME, DEFAULT_PERSIST_FORMAT, DEFAULT_PERSIST_OUTPUT_DIR, uploadConfigSchema, validate, } from '@code-pushup/models';
|
|
3
|
+
import { logger, pluralizeToken } from '@code-pushup/utils';
|
|
3
4
|
function buildPersistConfig(cliPersist, rcPersist) {
|
|
4
5
|
return {
|
|
5
6
|
outputDir: cliPersist?.outputDir ??
|
|
@@ -12,28 +13,36 @@ function buildPersistConfig(cliPersist, rcPersist) {
|
|
|
12
13
|
}
|
|
13
14
|
export async function coreConfigMiddleware(processArgs) {
|
|
14
15
|
const { config, tsconfig, persist: cliPersist, upload: cliUpload, cache: cliCache, ...remainingCliOptions } = processArgs;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
16
|
+
return logger.group('Loading configuration', async () => {
|
|
17
|
+
// Search for possible configuration file extensions if path is not given
|
|
18
|
+
const importedRc = config
|
|
19
|
+
? await readRcByPath(config, tsconfig)
|
|
20
|
+
: await autoloadRc(tsconfig);
|
|
21
|
+
const { persist: rcPersist, upload: rcUpload, ...remainingRcConfig } = importedRc;
|
|
22
|
+
const upload = rcUpload == null && cliUpload == null
|
|
23
|
+
? undefined
|
|
24
|
+
: validate(uploadConfigSchema, { ...rcUpload, ...cliUpload });
|
|
25
|
+
const result = {
|
|
26
|
+
...(config != null && { config }),
|
|
27
|
+
cache: normalizeCache(cliCache),
|
|
28
|
+
persist: buildPersistConfig(cliPersist, rcPersist),
|
|
29
|
+
...(upload != null && { upload }),
|
|
30
|
+
...remainingRcConfig,
|
|
31
|
+
...remainingCliOptions,
|
|
32
|
+
};
|
|
33
|
+
return {
|
|
34
|
+
message: `Parsed config: ${summarizeConfig(result)}`,
|
|
35
|
+
result,
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function summarizeConfig(config) {
|
|
40
|
+
return [
|
|
41
|
+
pluralizeToken('plugin', config.plugins.length),
|
|
42
|
+
pluralizeToken('category', config.categories?.length ?? 0),
|
|
43
|
+
`upload ${config.upload ? 'enabled' : 'disabled'}`,
|
|
44
|
+
].join(', ');
|
|
31
45
|
}
|
|
32
|
-
export const normalizeBooleanWithNegation = (propertyName, cliOptions, rcOptions) => propertyName in (cliOptions ?? {})
|
|
33
|
-
? cliOptions?.[propertyName]
|
|
34
|
-
: `no-${propertyName}` in (cliOptions ?? {})
|
|
35
|
-
? false
|
|
36
|
-
: (rcOptions?.[propertyName] ?? true);
|
|
37
46
|
export const normalizeCache = (cache) => {
|
|
38
47
|
if (cache == null) {
|
|
39
48
|
return { write: false, read: false };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-config.middleware.js","sourceRoot":"","sources":["../../../../src/lib/implementation/core-config.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAIL,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAE1B,kBAAkB,EAClB,QAAQ,GACT,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"core-config.middleware.js","sourceRoot":"","sources":["../../../../src/lib/implementation/core-config.middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import ansis from 'ansis';
|
|
2
|
+
import { CODE_PUSHUP_UNICODE_LOGO, logger } from '@code-pushup/utils';
|
|
3
|
+
import { CLI_DISPLAY_NAME } from '../constants.js';
|
|
4
|
+
import { getVersion } from './version.js';
|
|
5
|
+
export function logIntroMiddleware(args) {
|
|
6
|
+
logger.info(ansis.bold.blue(`${CODE_PUSHUP_UNICODE_LOGO} ${CLI_DISPLAY_NAME} v${getVersion()}`));
|
|
7
|
+
return args;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=log-intro.middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-intro.middleware.js","sourceRoot":"","sources":["../../../../src/lib/implementation/log-intro.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,UAAU,kBAAkB,CAChC,IAAwB;IAExB,MAAM,CAAC,IAAI,CACT,KAAK,CAAC,IAAI,CAAC,IAAI,CACb,GAAG,wBAAwB,IAAI,gBAAgB,KAAK,UAAU,EAAE,EAAE,CACnE,CACF,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare function
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function
|
|
1
|
+
export declare function printCliCommand(command: string): void;
|
|
2
|
+
export declare function renderCategoriesHint(): void;
|
|
3
|
+
export declare function renderPortalHint(): void;
|
|
4
|
+
export declare function renderUploadHint(): void;
|
|
@@ -1,23 +1,30 @@
|
|
|
1
1
|
import ansis from 'ansis';
|
|
2
2
|
import { formatAsciiLink, formatAsciiSticker, logger, } from '@code-pushup/utils';
|
|
3
|
-
export function
|
|
4
|
-
logger.debug(
|
|
3
|
+
export function printCliCommand(command) {
|
|
4
|
+
logger.debug(`Running ${ansis.bold(command)} command`);
|
|
5
5
|
}
|
|
6
|
-
export function
|
|
7
|
-
logger.info(
|
|
8
|
-
|
|
6
|
+
export function renderCategoriesHint() {
|
|
7
|
+
logger.info(formatAsciiSticker([
|
|
8
|
+
ansis.bold.gray('💡 Configure categories'),
|
|
9
|
+
'',
|
|
10
|
+
ansis.gray('❯ Aggregate audit scores to get a high-level overview'),
|
|
11
|
+
`${ansis.gray('❯')} ${formatAsciiLink('https://www.npmjs.com/package/@code-pushup/cli')}`,
|
|
12
|
+
]));
|
|
9
13
|
}
|
|
10
|
-
export function
|
|
11
|
-
logger.info(
|
|
14
|
+
export function renderPortalHint() {
|
|
15
|
+
logger.info(formatAsciiSticker([
|
|
16
|
+
ansis.bold.gray('💡 Upload report to Portal'),
|
|
17
|
+
'',
|
|
18
|
+
ansis.gray('❯ Visualize reports in an interactive UI'),
|
|
19
|
+
ansis.gray('❯ Track long-term progress via reports history'),
|
|
20
|
+
`${ansis.gray('❯')} ${formatAsciiLink('https://code-pushup.dev/')}`,
|
|
21
|
+
]));
|
|
12
22
|
}
|
|
13
|
-
export function
|
|
23
|
+
export function renderUploadHint() {
|
|
14
24
|
logger.info(formatAsciiSticker([
|
|
15
|
-
ansis.bold.gray('💡
|
|
25
|
+
ansis.bold.gray('💡 Upload report to Portal'),
|
|
16
26
|
'',
|
|
17
|
-
`${ansis.gray('❯')}
|
|
18
|
-
` ${formatAsciiLink('https://github.com/code-pushup/cli/tree/main/packages/cli#upload-command')}`,
|
|
19
|
-
`${ansis.gray('❯')} ${ansis.gray('Portal Integration')} - ${formatAsciiLink('https://github.com/code-pushup/cli/blob/main/packages/cli/README.md#portal-integration')}`,
|
|
20
|
-
`${ansis.gray('❯')} ${ansis.gray('Upload Command')} - ${formatAsciiLink('https://github.com/code-pushup/cli/blob/main/packages/cli/README.md#portal-integration')}`,
|
|
27
|
+
`${ansis.gray('❯')} npx code-pushup upload`,
|
|
21
28
|
]));
|
|
22
29
|
}
|
|
23
30
|
//# sourceMappingURL=logging.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../../src/lib/implementation/logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,MAAM,GACP,MAAM,oBAAoB,CAAC;AAE5B,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../../src/lib/implementation/logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,MAAM,GACP,MAAM,oBAAoB,CAAC;AAE5B,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,CAAC,KAAK,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,MAAM,CAAC,IAAI,CACT,kBAAkB,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC;QAC1C,EAAE;QACF,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC;QACnE,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,gDAAgD,CAAC,EAAE;KAC1F,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,CAAC,IAAI,CACT,kBAAkB,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC;QAC7C,EAAE;QACF,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC;QAC5D,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,0BAA0B,CAAC,EAAE;KACpE,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,CAAC,IAAI,CACT,kBAAkB,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC;QAC7C,EAAE;QACF,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,yBAAyB;KAC5C,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"print-config.options.js","sourceRoot":"","sources":["../../../../src/lib/implementation/print-config.options.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,iCAAiC;IAI/C,OAAO;QACL,MAAM,EAAE;YACN,QAAQ,EAAE,2CAA2C;YACrD,IAAI,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"print-config.options.js","sourceRoot":"","sources":["../../../../src/lib/implementation/print-config.options.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,iCAAiC;IAI/C,OAAO;QACL,MAAM,EAAE;YACN,QAAQ,EAAE,2CAA2C;YACrD,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,IAAI;SACnB;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getVersion(): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../src/lib/implementation/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,UAAU,UAAU;IACxB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAChD,uBAAuB,CACkB,CAAC;IAC5C,OAAO,WAAW,CAAC,OAAO,CAAC;AAC7B,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import ansis from 'ansis';
|
|
2
2
|
import { mergeDiffs } from '@code-pushup/core';
|
|
3
3
|
import { logger } from '@code-pushup/utils';
|
|
4
|
-
import {
|
|
4
|
+
import { printCliCommand } from '../implementation/logging.js';
|
|
5
5
|
import { yargsMergeDiffsOptionsDefinition } from '../implementation/merge-diffs.options.js';
|
|
6
6
|
export function yargsMergeDiffsCommandObject() {
|
|
7
7
|
const command = 'merge-diffs';
|
|
@@ -10,8 +10,7 @@ export function yargsMergeDiffsCommandObject() {
|
|
|
10
10
|
describe: 'Combine many report diffs into a single diff file',
|
|
11
11
|
builder: yargsMergeDiffsOptionsDefinition(),
|
|
12
12
|
handler: async (args) => {
|
|
13
|
-
|
|
14
|
-
logger.debug(`Running ${ansis.bold(command)} command`);
|
|
13
|
+
printCliCommand(command);
|
|
15
14
|
const options = args;
|
|
16
15
|
const { files, persist } = options;
|
|
17
16
|
const outputPath = await mergeDiffs(files, persist);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-diffs-command.js","sourceRoot":"","sources":["../../../../src/lib/merge-diffs/merge-diffs-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"merge-diffs-command.js","sourceRoot":"","sources":["../../../../src/lib/merge-diffs/merge-diffs-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,gCAAgC,EAAE,MAAM,0CAA0C,CAAC;AAE5F,MAAM,UAAU,4BAA4B;IAC1C,MAAM,OAAO,GAAG,aAAa,CAAC;IAC9B,OAAO;QACL,OAAO;QACP,QAAQ,EAAE,mDAAmD;QAC7D,OAAO,EAAE,gCAAgC,EAAE;QAC3C,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;YAC/B,eAAe,CAAC,OAAO,CAAC,CAAC;YAEzB,MAAM,OAAO,GAAG,IAEf,CAAC;YACF,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;YAEnC,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAEpD,MAAM,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;KACsB,CAAC;AAC5B,CAAC"}
|
package/src/lib/middlewares.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { coreConfigMiddleware } from './implementation/core-config.middleware.js';
|
|
2
2
|
import { filterMiddleware } from './implementation/filter.middleware.js';
|
|
3
|
+
import { logIntroMiddleware } from './implementation/log-intro.middleware.js';
|
|
3
4
|
import { setVerboseMiddleware } from './implementation/set-verbose.middleware.js';
|
|
4
5
|
export const middlewares = [
|
|
6
|
+
{
|
|
7
|
+
middlewareFunction: logIntroMiddleware,
|
|
8
|
+
applyBeforeValidation: true,
|
|
9
|
+
},
|
|
5
10
|
{
|
|
6
11
|
middlewareFunction: setVerboseMiddleware,
|
|
7
12
|
applyBeforeValidation: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../../../src/lib/middlewares.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAElF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB;QACE,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../../../src/lib/middlewares.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAElF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB;QACE,kBAAkB,EAAE,kBAAmD;QACvE,qBAAqB,EAAE,IAAI;KAC5B;IACD;QACE,kBAAkB,EAAE,oBAA0C;QAC9D,qBAAqB,EAAE,KAAK;KAC7B;IACD;QACE,kBAAkB,EAAE,oBAAqD;QACzE,qBAAqB,EAAE,KAAK;KAC7B;IACD;QACE,kBAAkB,EAAE,gBAAiD;QACrE,qBAAqB,EAAE,KAAK;KAC7B;CACF,CAAC"}
|
|
@@ -3,6 +3,7 @@ import { mkdir, writeFile } from 'node:fs/promises';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { logger } from '@code-pushup/utils';
|
|
5
5
|
import { filterKebabCaseKeys } from '../implementation/global.utils.js';
|
|
6
|
+
import { printCliCommand } from '../implementation/logging.js';
|
|
6
7
|
import { yargsPrintConfigOptionsDefinition } from '../implementation/print-config.options.js';
|
|
7
8
|
export function yargsPrintConfigCommandObject() {
|
|
8
9
|
const command = 'print-config';
|
|
@@ -11,19 +12,15 @@ export function yargsPrintConfigCommandObject() {
|
|
|
11
12
|
describe: 'Print config',
|
|
12
13
|
builder: yargsPrintConfigOptionsDefinition(),
|
|
13
14
|
handler: async (yargsArgs) => {
|
|
15
|
+
printCliCommand(command);
|
|
14
16
|
// it is important to filter out kebab case keys
|
|
15
17
|
// because yargs duplicates options in camel case and kebab case
|
|
16
18
|
const { _, $0, ...args } = filterKebabCaseKeys(yargsArgs);
|
|
17
19
|
const { output, ...config } = args;
|
|
18
20
|
const content = JSON.stringify(config, null, 2);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
logger.info(`Config printed to file ${ansis.bold(output)}`);
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
logger.info(content);
|
|
26
|
-
}
|
|
21
|
+
await mkdir(path.dirname(output), { recursive: true });
|
|
22
|
+
await writeFile(output, content);
|
|
23
|
+
logger.info(`Config printed to file ${ansis.bold(output)}`);
|
|
27
24
|
},
|
|
28
25
|
};
|
|
29
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"print-config-command.js","sourceRoot":"","sources":["../../../../src/lib/print-config/print-config-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"print-config-command.js","sourceRoot":"","sources":["../../../../src/lib/print-config/print-config-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,iCAAiC,EAAE,MAAM,2CAA2C,CAAC;AAE9F,MAAM,UAAU,6BAA6B;IAC3C,MAAM,OAAO,GAAG,cAAc,CAAC;IAC/B,OAAO;QACL,OAAO;QACP,QAAQ,EAAE,cAAc;QACxB,OAAO,EAAE,iCAAiC,EAAE;QAC5C,OAAO,EAAE,KAAK,EAAC,SAAS,EAAC,EAAE;YACzB,eAAe,CAAC,OAAO,CAAC,CAAC;YAEzB,gDAAgD;YAChD,gEAAgE;YAChE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAC1D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,IACL,CAAC;YAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAEhD,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,0BAA0B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC;KACsB,CAAC;AAC5B,CAAC"}
|
|
@@ -1,25 +1,21 @@
|
|
|
1
|
-
import ansis from 'ansis';
|
|
2
1
|
import { upload } from '@code-pushup/core';
|
|
3
2
|
import { logger } from '@code-pushup/utils';
|
|
4
|
-
import {
|
|
5
|
-
import { renderIntegratePortalHint, uploadSuccessfulLog, } from '../implementation/logging.js';
|
|
3
|
+
import { printCliCommand, renderPortalHint, } from '../implementation/logging.js';
|
|
6
4
|
export function yargsUploadCommandObject() {
|
|
7
5
|
const command = 'upload';
|
|
8
6
|
return {
|
|
9
7
|
command,
|
|
10
8
|
describe: 'Upload report results to the portal',
|
|
11
9
|
handler: async (args) => {
|
|
12
|
-
|
|
13
|
-
logger.debug(`Running ${ansis.bold(command)} command`);
|
|
10
|
+
printCliCommand(command);
|
|
14
11
|
const options = args;
|
|
15
12
|
if (options.upload == null) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if (report?.url) {
|
|
21
|
-
uploadSuccessfulLog(report.url);
|
|
13
|
+
logger.newline();
|
|
14
|
+
renderPortalHint();
|
|
15
|
+
logger.newline();
|
|
16
|
+
throw new Error('Upload to Portal is missing configuration');
|
|
22
17
|
}
|
|
18
|
+
await upload(options);
|
|
23
19
|
},
|
|
24
20
|
};
|
|
25
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-command.js","sourceRoot":"","sources":["../../../../src/lib/upload/upload-command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upload-command.js","sourceRoot":"","sources":["../../../../src/lib/upload/upload-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,eAAe,EACf,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,UAAU,wBAAwB;IACtC,MAAM,OAAO,GAAG,QAAQ,CAAC;IACzB,OAAO;QACL,OAAO;QACP,QAAQ,EAAE,qCAAqC;QAC/C,OAAO,EAAE,KAAK,EAAK,IAA2B,EAAE,EAAE;YAChD,eAAe,CAAC,OAAO,CAAC,CAAC;YAEzB,MAAM,OAAO,GAAG,IAAgC,CAAC;YACjD,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC3B,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,gBAAgB,EAAE,CAAC;gBACnB,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;KACsB,CAAC;AAC5B,CAAC"}
|
package/src/lib/yargs-cli.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Argv, type CommandModule, type Options } from 'yargs';
|
|
1
|
+
import { type Argv, type CommandModule, type MiddlewareFunction, type Options } from 'yargs';
|
|
2
2
|
export declare const yargsDecorator: {
|
|
3
3
|
'Commands:': string;
|
|
4
4
|
'Options:': string;
|
|
@@ -31,7 +31,7 @@ export declare function yargsCli<T = unknown>(argv: string[], cfg: {
|
|
|
31
31
|
};
|
|
32
32
|
examples?: [string, string][];
|
|
33
33
|
middlewares?: {
|
|
34
|
-
middlewareFunction:
|
|
34
|
+
middlewareFunction: MiddlewareFunction;
|
|
35
35
|
applyBeforeValidation?: boolean;
|
|
36
36
|
}[];
|
|
37
37
|
noExitProcess?: boolean;
|
package/src/lib/yargs-cli.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/* eslint-disable max-lines-per-function */
|
|
2
2
|
import ansis from 'ansis';
|
|
3
|
-
import { createRequire } from 'node:module';
|
|
4
3
|
import yargs, {} from 'yargs';
|
|
5
4
|
import { formatSchema, validate, } from '@code-pushup/models';
|
|
6
5
|
import { TERMINAL_WIDTH, isRecord } from '@code-pushup/utils';
|
|
7
6
|
import { descriptionStyle, formatNestedValues, formatObjectValue, headerStyle, titleStyle, } from './implementation/formatting.js';
|
|
8
7
|
import { logErrorBeforeThrow } from './implementation/global.utils.js';
|
|
8
|
+
import { getVersion } from './implementation/version.js';
|
|
9
9
|
export const yargsDecorator = {
|
|
10
10
|
'Commands:': `${ansis.green('Commands')}:`,
|
|
11
11
|
'Options:': `${ansis.green('Options')}:`,
|
|
@@ -34,7 +34,6 @@ export function yargsCli(argv, cfg) {
|
|
|
34
34
|
const groups = cfg.groups ?? {};
|
|
35
35
|
const examples = cfg.examples ?? [];
|
|
36
36
|
const cli = yargs(argv);
|
|
37
|
-
const packageJson = createRequire(import.meta.url)('../../package.json');
|
|
38
37
|
// setup yargs
|
|
39
38
|
cli
|
|
40
39
|
.updateLocale(yargsDecorator)
|
|
@@ -43,7 +42,7 @@ export function yargsCli(argv, cfg) {
|
|
|
43
42
|
.help('help', descriptionStyle('Show help'))
|
|
44
43
|
.alias('h', 'help')
|
|
45
44
|
.showHelpOnFail(false)
|
|
46
|
-
.version('version', ansis.dim('Show version'),
|
|
45
|
+
.version('version', ansis.dim('Show version'), getVersion())
|
|
47
46
|
.check(args => {
|
|
48
47
|
const persist = args['persist'];
|
|
49
48
|
return persist == null || validatePersistFormat(persist);
|
package/src/lib/yargs-cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yargs-cli.js","sourceRoot":"","sources":["../../../src/lib/yargs-cli.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"yargs-cli.js","sourceRoot":"","sources":["../../../src/lib/yargs-cli.ts"],"names":[],"mappings":"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"}
|