@code-pushup/core 0.93.0 → 0.95.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/package.json +3 -3
- package/src/index.d.ts +1 -1
- package/src/index.js +1 -1
- package/src/index.js.map +1 -1
- package/src/lib/collect-and-persist.d.ts +1 -1
- package/src/lib/collect-and-persist.js +8 -10
- package/src/lib/collect-and-persist.js.map +1 -1
- package/src/lib/history.js +4 -1
- package/src/lib/history.js.map +1 -1
- package/src/lib/implementation/collect.js +8 -2
- package/src/lib/implementation/collect.js.map +1 -1
- package/src/lib/implementation/persist.d.ts +8 -3
- package/src/lib/implementation/persist.js +13 -7
- package/src/lib/implementation/persist.js.map +1 -1
- package/src/lib/implementation/read-rc-file.d.ts +0 -3
- package/src/lib/implementation/read-rc-file.js +26 -18
- package/src/lib/implementation/read-rc-file.js.map +1 -1
- package/src/lib/implementation/runner.js +10 -4
- package/src/lib/implementation/runner.js.map +1 -1
- package/src/lib/load-portal-client.d.ts +1 -1
- package/src/lib/load-portal-client.js +3 -3
- package/src/lib/load-portal-client.js.map +1 -1
- package/src/lib/upload.d.ts +2 -5
- package/src/lib/upload.js +26 -25
- package/src/lib/upload.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-pushup/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.95.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Core business logic for the used by the Code PushUp CLI",
|
|
6
6
|
"homepage": "https://github.com/code-pushup/cli/tree/main/packages/core#readme",
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
},
|
|
40
40
|
"type": "module",
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@code-pushup/models": "0.
|
|
43
|
-
"@code-pushup/utils": "0.
|
|
42
|
+
"@code-pushup/models": "0.95.0",
|
|
43
|
+
"@code-pushup/utils": "0.95.0",
|
|
44
44
|
"ansis": "^3.3.0"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
package/src/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export { collect, type CollectOptions } from './lib/implementation/collect.js';
|
|
|
6
6
|
export type { ReportsToCompare } from './lib/implementation/compare-scorables.js';
|
|
7
7
|
export { executePlugin, executePlugins, } from './lib/implementation/execute-plugin.js';
|
|
8
8
|
export { persistReport } from './lib/implementation/persist.js';
|
|
9
|
-
export { autoloadRc,
|
|
9
|
+
export { autoloadRc, readRcByPath } from './lib/implementation/read-rc-file.js';
|
|
10
10
|
export { AuditOutputsMissingAuditError } from './lib/implementation/runner.js';
|
|
11
11
|
export { mergeDiffs } from './lib/merge-diffs.js';
|
|
12
12
|
export { upload, type UploadOptions } from './lib/upload.js';
|
package/src/index.js
CHANGED
|
@@ -5,7 +5,7 @@ export { history, } from './lib/history.js';
|
|
|
5
5
|
export { collect } from './lib/implementation/collect.js';
|
|
6
6
|
export { executePlugin, executePlugins, } from './lib/implementation/execute-plugin.js';
|
|
7
7
|
export { persistReport } from './lib/implementation/persist.js';
|
|
8
|
-
export { autoloadRc,
|
|
8
|
+
export { autoloadRc, readRcByPath } from './lib/implementation/read-rc-file.js';
|
|
9
9
|
export { AuditOutputsMissingAuditError } from './lib/implementation/runner.js';
|
|
10
10
|
export { mergeDiffs } from './lib/merge-diffs.js';
|
|
11
11
|
export { upload } from './lib/upload.js';
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAEzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,kBAAkB,EAClB,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,oBAAoB,GAErB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,OAAO,GAGR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAuB,MAAM,iCAAiC,CAAC;AAE/E,OAAO,EACL,aAAa,EACb,cAAc,GACf,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAEzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,kBAAkB,EAClB,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,oBAAoB,GAErB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,OAAO,GAGR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAuB,MAAM,iCAAiC,CAAC;AAE/E,OAAO,EACL,aAAa,EACb,cAAc,GACf,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAsB,MAAM,iBAAiB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { CacheConfigObject, CoreConfig, PersistConfig } from '@code-pushup/models';
|
|
2
2
|
export type CollectAndPersistReportsOptions = Pick<CoreConfig, 'plugins' | 'categories'> & {
|
|
3
3
|
persist: Required<Omit<PersistConfig, 'skipReports'>> & Pick<PersistConfig, 'skipReports'>;
|
|
4
4
|
cache: CacheConfigObject;
|
|
@@ -1,25 +1,23 @@
|
|
|
1
|
-
import { pluginReportSchema, validate, } from '@code-pushup/models';
|
|
2
1
|
import { logStdoutSummary, logger, scoreReport, sortReport, } from '@code-pushup/utils';
|
|
3
2
|
import { collect } from './implementation/collect.js';
|
|
4
|
-
import {
|
|
3
|
+
import { logPersistedReport, persistReport } from './implementation/persist.js';
|
|
5
4
|
export async function collectAndPersistReports(options) {
|
|
6
5
|
const reportResult = await collect(options);
|
|
7
6
|
const sortedScoredReport = sortReport(scoreReport(reportResult));
|
|
8
7
|
const { persist } = options;
|
|
9
8
|
const { skipReports = false, ...persistOptions } = persist ?? {};
|
|
10
9
|
if (skipReports) {
|
|
11
|
-
logger.info('
|
|
10
|
+
logger.info('Skipped saving report as persist.skipReports flag is set');
|
|
12
11
|
}
|
|
13
12
|
else {
|
|
14
|
-
const
|
|
15
|
-
|
|
13
|
+
const reportFiles = await persistReport(reportResult, sortedScoredReport, persistOptions);
|
|
14
|
+
logPersistedReport(reportFiles);
|
|
16
15
|
}
|
|
17
16
|
// terminal output
|
|
17
|
+
logger.newline();
|
|
18
|
+
logger.newline();
|
|
18
19
|
logStdoutSummary(sortedScoredReport);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
// Running checks after persisting helps while debugging as you can check the invalid output after the error is thrown
|
|
22
|
-
validate(pluginReportSchema, plugin);
|
|
23
|
-
});
|
|
20
|
+
logger.newline();
|
|
21
|
+
logger.newline();
|
|
24
22
|
}
|
|
25
23
|
//# sourceMappingURL=collect-and-persist.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collect-and-persist.js","sourceRoot":"","sources":["../../../src/lib/collect-and-persist.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"collect-and-persist.js","sourceRoot":"","sources":["../../../src/lib/collect-and-persist.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAWhF,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAAwC;IAExC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,kBAAkB,GAAG,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;IAEjE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAEjE,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IAC1E,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,GAAG,MAAM,aAAa,CACrC,YAAY,EACZ,kBAAkB,EAClB,cAAc,CACf,CAAC;QACF,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,kBAAkB;IAClB,MAAM,CAAC,OAAO,EAAE,CAAC;IACjB,MAAM,CAAC,OAAO,EAAE,CAAC;IACjB,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IACrC,MAAM,CAAC,OAAO,EAAE,CAAC;IACjB,MAAM,CAAC,OAAO,EAAE,CAAC;AACnB,CAAC"}
|
package/src/lib/history.js
CHANGED
|
@@ -26,7 +26,7 @@ export async function history(config, commits) {
|
|
|
26
26
|
logger.info('Upload is skipped because skipUploads is set to true.');
|
|
27
27
|
}
|
|
28
28
|
else {
|
|
29
|
-
if (currentConfig
|
|
29
|
+
if (hasUpload(currentConfig)) {
|
|
30
30
|
await upload(currentConfig);
|
|
31
31
|
}
|
|
32
32
|
else {
|
|
@@ -39,4 +39,7 @@ export async function history(config, commits) {
|
|
|
39
39
|
await safeCheckout(initialBranch, forceCleanStatus);
|
|
40
40
|
return reports;
|
|
41
41
|
}
|
|
42
|
+
function hasUpload(config) {
|
|
43
|
+
return config.upload != null;
|
|
44
|
+
}
|
|
42
45
|
//# sourceMappingURL=history.js.map
|
package/src/lib/history.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/lib/history.ts"],"names":[],"mappings":"AAMA,OAAO,
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/lib/history.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,qBAAqB,EACrB,MAAM,EACN,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAarC,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAsB,EACtB,OAAiB;IAEjB,MAAM,aAAa,GAAW,MAAM,qBAAqB,EAAE,CAAC;IAE5D,MAAM,EAAE,WAAW,GAAG,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAElE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,yDAAyD;IACzD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;QAC/C,MAAM,YAAY,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAE7C,MAAM,aAAa,GAAmB;YACpC,GAAG,MAAM;YACT,OAAO,EAAE;gBACP,GAAG,OAAO;gBACV,MAAM,EAAE,CAAC,MAAM,CAAC;gBAChB,QAAQ,EAAE,GAAG,MAAM,SAAS;aAC7B;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,KAAK;aACb;SACF,CAAC;QAEF,MAAM,wBAAwB,CAAC,aAAa,CAAC,CAAC;QAE9C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,IAAI,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC7B,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,YAAY,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IAEpD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,SAAS,CAChB,MAAsB;IAEtB,OAAO,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;AAC/B,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import ansis from 'ansis';
|
|
1
2
|
import { createRequire } from 'node:module';
|
|
2
|
-
import { calcDuration, getLatestCommit } from '@code-pushup/utils';
|
|
3
|
+
import { calcDuration, getLatestCommit, logger, pluralizeToken, } from '@code-pushup/utils';
|
|
3
4
|
import { executePlugins } from './execute-plugin.js';
|
|
4
5
|
/**
|
|
5
6
|
* Run audits, collect plugin output and aggregate it into a JSON object
|
|
@@ -9,9 +10,14 @@ export async function collect(options) {
|
|
|
9
10
|
const { plugins, categories, persist = {}, cache } = options;
|
|
10
11
|
const date = new Date().toISOString();
|
|
11
12
|
const start = performance.now();
|
|
13
|
+
const packageJson = createRequire(import.meta.url)('../../../package.json');
|
|
12
14
|
const commit = await getLatestCommit();
|
|
15
|
+
logger.debug(commit
|
|
16
|
+
? `Found latest commit ${commit.hash} ("${commit.message}" by ${commit.author})`
|
|
17
|
+
: 'Latest commit not found');
|
|
18
|
+
logger.info(`Collecting report from ${pluralizeToken('plugin', plugins.length)} ...`);
|
|
13
19
|
const pluginOutputs = await executePlugins({ plugins, persist, cache });
|
|
14
|
-
|
|
20
|
+
logger.info(ansis.green('Collected report ✓'));
|
|
15
21
|
return {
|
|
16
22
|
commit,
|
|
17
23
|
packageName: packageJson.name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collect.js","sourceRoot":"","sources":["../../../../src/lib/implementation/collect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAO5C,OAAO,
|
|
1
|
+
{"version":3,"file":"collect.js","sourceRoot":"","sources":["../../../../src/lib/implementation/collect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAO5C,OAAO,EACL,YAAY,EACZ,eAAe,EACf,MAAM,EACN,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAOrD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAuB;IACnD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAE7D,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAChD,uBAAuB,CACkB,CAAC;IAE5C,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;IACvC,MAAM,CAAC,KAAK,CACV,MAAM;QACJ,CAAC,CAAC,uBAAuB,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,OAAO,QAAQ,MAAM,CAAC,MAAM,GAAG;QAChF,CAAC,CAAC,yBAAyB,CAC9B,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,0BAA0B,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CACzE,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACxE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE/C,OAAO;QACL,MAAM;QACN,WAAW,EAAE,WAAW,CAAC,IAAI;QAC7B,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,IAAI;QACJ,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC;QAC7B,UAAU;QACV,OAAO,EAAE,aAAa;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import type { PersistConfig, Report } from '@code-pushup/models';
|
|
2
|
-
import { type
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import { type ScoredReport } from '@code-pushup/utils';
|
|
3
|
+
type FileSize = {
|
|
4
|
+
file: string;
|
|
5
|
+
size: number;
|
|
6
|
+
};
|
|
7
|
+
export declare function persistReport(report: Report, sortedScoredReport: ScoredReport, options: Required<Omit<PersistConfig, 'skipReports'>>): Promise<FileSize[]>;
|
|
8
|
+
export declare function logPersistedReport(reportFiles: FileSize[]): void;
|
|
9
|
+
export {};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import ansis from 'ansis';
|
|
2
2
|
import { mkdir, stat, writeFile } from 'node:fs/promises';
|
|
3
|
-
import
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { createReportPath, directoryExists, formatBytes, generateMdReport, logger, stringifyError, } from '@code-pushup/utils';
|
|
4
5
|
export async function persistReport(report, sortedScoredReport, options) {
|
|
5
6
|
const { outputDir, filename, format } = options;
|
|
6
|
-
//
|
|
7
|
+
// format report
|
|
7
8
|
const results = format.map((reportType) => {
|
|
8
9
|
switch (reportType) {
|
|
9
10
|
case 'json':
|
|
@@ -27,18 +28,23 @@ export async function persistReport(report, sortedScoredReport, options) {
|
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
// write relevant format outputs to file system
|
|
30
|
-
return Promise.
|
|
31
|
+
return Promise.all(results.map(result => persistResult(createReportPath({ outputDir, filename, format: result.format }), result.content)));
|
|
31
32
|
}
|
|
32
33
|
function persistResult(reportPath, content) {
|
|
33
34
|
return (writeFile(reportPath, content)
|
|
34
35
|
// return reportPath instead of void
|
|
35
36
|
.then(() => stat(reportPath))
|
|
36
|
-
.then(stats =>
|
|
37
|
+
.then((stats) => ({ file: reportPath, size: stats.size }))
|
|
37
38
|
.catch((error) => {
|
|
38
|
-
throw new Error(`Failed to
|
|
39
|
+
throw new Error(`Failed to save report in ${ansis.bold(reportPath)} - ${stringifyError(error)}`);
|
|
39
40
|
}));
|
|
40
41
|
}
|
|
41
|
-
export function
|
|
42
|
-
|
|
42
|
+
export function logPersistedReport(reportFiles) {
|
|
43
|
+
logger.info(`Persisted report to file system:`);
|
|
44
|
+
reportFiles.forEach(({ file, size }) => {
|
|
45
|
+
const name = ansis.bold(path.relative(process.cwd(), file));
|
|
46
|
+
const suffix = ansis.gray(`(${formatBytes(size)})`);
|
|
47
|
+
logger.info(`• ${name} ${suffix}`);
|
|
48
|
+
});
|
|
43
49
|
}
|
|
44
50
|
//# sourceMappingURL=persist.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persist.js","sourceRoot":"","sources":["../../../../src/lib/implementation/persist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"persist.js","sourceRoot":"","sources":["../../../../src/lib/implementation/persist.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
1
|
import { type CoreConfig } from '@code-pushup/models';
|
|
2
|
-
export declare class ConfigPathError extends Error {
|
|
3
|
-
constructor(configPath: string);
|
|
4
|
-
}
|
|
5
2
|
export declare function readRcByPath(filePath: string, tsconfig?: string): Promise<CoreConfig>;
|
|
6
3
|
export declare function autoloadRc(tsconfig?: string): Promise<CoreConfig>;
|
|
@@ -1,26 +1,33 @@
|
|
|
1
|
+
import ansis from 'ansis';
|
|
1
2
|
import path from 'node:path';
|
|
2
3
|
import { CONFIG_FILE_NAME, SUPPORTED_CONFIG_FILE_FORMATS, coreConfigSchema, validate, } from '@code-pushup/models';
|
|
3
|
-
import { fileExists, importModule } from '@code-pushup/utils';
|
|
4
|
-
export class ConfigPathError extends Error {
|
|
5
|
-
constructor(configPath) {
|
|
6
|
-
super(`Provided path '${configPath}' is not valid.`);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
4
|
+
import { fileExists, importModule, logger } from '@code-pushup/utils';
|
|
9
5
|
export async function readRcByPath(filePath, tsconfig) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
6
|
+
const formattedTarget = [
|
|
7
|
+
`${ansis.bold(path.relative(process.cwd(), filePath))}`,
|
|
8
|
+
tsconfig &&
|
|
9
|
+
`(paths from ${ansis.bold(path.relative(process.cwd(), tsconfig))})`,
|
|
10
|
+
]
|
|
11
|
+
.filter(Boolean)
|
|
12
|
+
.join(' ');
|
|
13
|
+
const value = await logger.task(`Importing config from ${formattedTarget}`, async () => {
|
|
14
|
+
const result = await importModule({
|
|
15
|
+
filepath: filePath,
|
|
16
|
+
tsconfig,
|
|
17
|
+
format: 'esm',
|
|
18
|
+
});
|
|
19
|
+
return { result, message: `Imported config from ${formattedTarget}` };
|
|
20
20
|
});
|
|
21
|
-
|
|
21
|
+
const config = validate(coreConfigSchema, value, { filePath });
|
|
22
|
+
logger.info('Configuration is valid ✓');
|
|
23
|
+
return config;
|
|
22
24
|
}
|
|
23
25
|
export async function autoloadRc(tsconfig) {
|
|
26
|
+
const configFilePatterns = [
|
|
27
|
+
CONFIG_FILE_NAME,
|
|
28
|
+
`{${SUPPORTED_CONFIG_FILE_FORMATS.join(',')}}`,
|
|
29
|
+
].join('.');
|
|
30
|
+
logger.debug(`Looking for default config file ${configFilePatterns}`);
|
|
24
31
|
// eslint-disable-next-line functional/no-let
|
|
25
32
|
let ext = '';
|
|
26
33
|
// eslint-disable-next-line functional/no-loop-statements
|
|
@@ -28,12 +35,13 @@ export async function autoloadRc(tsconfig) {
|
|
|
28
35
|
const filePath = `${CONFIG_FILE_NAME}.${extension}`;
|
|
29
36
|
const exists = await fileExists(filePath);
|
|
30
37
|
if (exists) {
|
|
38
|
+
logger.debug(`Found default config file ${ansis.bold(filePath)}`);
|
|
31
39
|
ext = extension;
|
|
32
40
|
break;
|
|
33
41
|
}
|
|
34
42
|
}
|
|
35
43
|
if (!ext) {
|
|
36
|
-
throw new Error(`No
|
|
44
|
+
throw new Error(`No ${configFilePatterns} file present in ${process.cwd()}`);
|
|
37
45
|
}
|
|
38
46
|
return readRcByPath(path.join(process.cwd(), `${CONFIG_FILE_NAME}.${ext}`), tsconfig);
|
|
39
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-rc-file.js","sourceRoot":"","sources":["../../../../src/lib/implementation/read-rc-file.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAEhB,6BAA6B,EAC7B,gBAAgB,EAChB,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"read-rc-file.js","sourceRoot":"","sources":["../../../../src/lib/implementation/read-rc-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAEhB,6BAA6B,EAC7B,gBAAgB,EAChB,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEtE,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAgB,EAChB,QAAiB;IAEjB,MAAM,eAAe,GAAG;QACtB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC,EAAE;QACvD,QAAQ;YACN,eAAe,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC,GAAG;KACvE;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAC7B,yBAAyB,eAAe,EAAE,EAC1C,KAAK,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;YAChC,QAAQ,EAAE,QAAQ;YAClB,QAAQ;YACR,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,eAAe,EAAE,EAAE,CAAC;IACxE,CAAC,CACF,CAAC;IAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAiB;IAChD,MAAM,kBAAkB,GAAG;QACzB,gBAAgB;QAChB,IAAI,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;KAC/C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEZ,MAAM,CAAC,KAAK,CAAC,mCAAmC,kBAAkB,EAAE,CAAC,CAAC;IAEtE,6CAA6C;IAC7C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,yDAAyD;IACzD,KAAK,MAAM,SAAS,IAAI,6BAA6B,EAAE,CAAC;QACtD,MAAM,QAAQ,GAAG,GAAG,gBAAgB,IAAI,SAAS,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE1C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,6BAA6B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAClE,GAAG,GAAG,SAAS,CAAC;YAChB,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,MAAM,kBAAkB,oBAAoB,OAAO,CAAC,GAAG,EAAE,EAAE,CAC5D,CAAC;IACJ,CAAC;IAED,OAAO,YAAY,CACjB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,gBAAgB,IAAI,GAAG,EAAE,CAAC,EACtD,QAAQ,CACT,CAAC;AACJ,CAAC"}
|
|
@@ -2,7 +2,7 @@ import ansis from 'ansis';
|
|
|
2
2
|
import { writeFile } from 'node:fs/promises';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { auditOutputsSchema, validate, } from '@code-pushup/models';
|
|
5
|
-
import { calcDuration, ensureDirectoryExists, executeProcess, fileExists, readJsonFile, removeDirectoryIfExists, runnerArgsToEnv, } from '@code-pushup/utils';
|
|
5
|
+
import { calcDuration, ensureDirectoryExists, executeProcess, fileExists, logger, readJsonFile, removeDirectoryIfExists, runnerArgsToEnv, } from '@code-pushup/utils';
|
|
6
6
|
import { normalizeAuditOutputs } from '../normalize.js';
|
|
7
7
|
export async function executeRunnerConfig(config, args) {
|
|
8
8
|
const { outputFile, outputTransform } = config;
|
|
@@ -67,17 +67,23 @@ export async function writeRunnerResults(pluginSlug, outputDir, runnerResult) {
|
|
|
67
67
|
const cacheFilePath = getRunnerOutputsPath(pluginSlug, outputDir);
|
|
68
68
|
await ensureDirectoryExists(path.dirname(cacheFilePath));
|
|
69
69
|
await writeFile(cacheFilePath, JSON.stringify(runnerResult.audits, null, 2));
|
|
70
|
+
logger.info(`Wrote runner output to cache ${formatCachePathSuffix(cacheFilePath)}`);
|
|
70
71
|
}
|
|
71
72
|
export async function readRunnerResults(pluginSlug, outputDir) {
|
|
72
|
-
const
|
|
73
|
-
if (await fileExists(
|
|
74
|
-
const cachedResult = await readJsonFile(
|
|
73
|
+
const cachePath = getRunnerOutputsPath(pluginSlug, outputDir);
|
|
74
|
+
if (await fileExists(cachePath)) {
|
|
75
|
+
const cachedResult = await readJsonFile(cachePath);
|
|
76
|
+
logger.info(`Read runner output from cache ${formatCachePathSuffix(cachePath)}`);
|
|
75
77
|
return {
|
|
76
78
|
audits: cachedResult,
|
|
77
79
|
duration: 0,
|
|
78
80
|
date: new Date().toISOString(),
|
|
79
81
|
};
|
|
80
82
|
}
|
|
83
|
+
logger.info(`Cached runner output is not available ${formatCachePathSuffix(cachePath)}`);
|
|
81
84
|
return null;
|
|
82
85
|
}
|
|
86
|
+
function formatCachePathSuffix(cacheFilePath) {
|
|
87
|
+
return ansis.gray(`(${cacheFilePath})`);
|
|
88
|
+
}
|
|
83
89
|
//# sourceMappingURL=runner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../src/lib/implementation/runner.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../src/lib/implementation/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function loadPortalClient(): Promise<typeof import('@code-pushup/portal-client')
|
|
1
|
+
export declare function loadPortalClient(): Promise<typeof import('@code-pushup/portal-client')>;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import ansis from 'ansis';
|
|
1
2
|
import { logger, stringifyError } from '@code-pushup/utils';
|
|
2
3
|
export async function loadPortalClient() {
|
|
3
4
|
try {
|
|
4
5
|
return await import('@code-pushup/portal-client');
|
|
5
6
|
}
|
|
6
7
|
catch (error) {
|
|
7
|
-
logger.
|
|
8
|
-
|
|
9
|
-
return null;
|
|
8
|
+
logger.error(`Failed to import @code-pushup/portal-client - ${stringifyError(error)}`);
|
|
9
|
+
throw new Error(`The ${ansis.bold('@code-pushup/portal-client')} peer dependency must be installed to enable uploading to Portal.`);
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=load-portal-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-portal-client.js","sourceRoot":"","sources":["../../../src/lib/load-portal-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,gBAAgB;IAGpC,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"load-portal-client.js","sourceRoot":"","sources":["../../../src/lib/load-portal-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,gBAAgB;IAGpC,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CACV,iDAAiD,cAAc,CAAC,KAAK,CAAC,EAAE,CACzE,CAAC;QACF,MAAM,IAAI,KAAK,CACb,OAAO,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,mEAAmE,CACnH,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/src/lib/upload.d.ts
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import type { PersistConfig, UploadConfig } from '@code-pushup/models';
|
|
2
2
|
export type UploadOptions = {
|
|
3
|
-
upload
|
|
4
|
-
} & {
|
|
3
|
+
upload: UploadConfig;
|
|
5
4
|
persist: Required<PersistConfig>;
|
|
6
5
|
};
|
|
7
6
|
/**
|
|
8
7
|
* Uploads collected audits to the portal
|
|
9
|
-
* @param options
|
|
10
|
-
* @param uploadFn
|
|
11
8
|
*/
|
|
12
|
-
export declare function upload(options: UploadOptions): Promise<
|
|
9
|
+
export declare function upload(options: UploadOptions): Promise<void>;
|
package/src/lib/upload.js
CHANGED
|
@@ -1,34 +1,35 @@
|
|
|
1
|
-
import { loadReport } from '@code-pushup/utils';
|
|
1
|
+
import { formatAsciiLink, loadReport, logger } from '@code-pushup/utils';
|
|
2
2
|
import { reportToGQL } from './implementation/report-to-gql.js';
|
|
3
3
|
import { loadPortalClient } from './load-portal-client.js';
|
|
4
4
|
/**
|
|
5
5
|
* Uploads collected audits to the portal
|
|
6
|
-
* @param options
|
|
7
|
-
* @param uploadFn
|
|
8
6
|
*/
|
|
9
7
|
export async function upload(options) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
8
|
+
await logger.task('Uploading report to Portal', async () => {
|
|
9
|
+
const portalClient = await loadPortalClient();
|
|
10
|
+
const { uploadReportToPortal } = portalClient;
|
|
11
|
+
const { apiKey, server, organization, project, timeout } = options.upload;
|
|
12
|
+
const report = await loadReport({
|
|
13
|
+
...options.persist,
|
|
14
|
+
format: 'json',
|
|
15
|
+
});
|
|
16
|
+
if (!report.commit) {
|
|
17
|
+
throw new Error('Commit must be linked in order to upload report');
|
|
18
|
+
}
|
|
19
|
+
const data = {
|
|
20
|
+
organization,
|
|
21
|
+
project,
|
|
22
|
+
commit: report.commit.hash,
|
|
23
|
+
...reportToGQL(report),
|
|
24
|
+
};
|
|
25
|
+
const { url } = await uploadReportToPortal({
|
|
26
|
+
apiKey,
|
|
27
|
+
server,
|
|
28
|
+
data,
|
|
29
|
+
timeout,
|
|
30
|
+
});
|
|
31
|
+
logger.info(formatAsciiLink(url));
|
|
32
|
+
return `Uploaded report to Portal`;
|
|
22
33
|
});
|
|
23
|
-
if (!report.commit) {
|
|
24
|
-
throw new Error('Commit must be linked in order to upload report');
|
|
25
|
-
}
|
|
26
|
-
const data = {
|
|
27
|
-
organization,
|
|
28
|
-
project,
|
|
29
|
-
commit: report.commit.hash,
|
|
30
|
-
...reportToGQL(report),
|
|
31
|
-
};
|
|
32
|
-
return uploadReportToPortal({ apiKey, server, data, timeout });
|
|
33
34
|
}
|
|
34
35
|
//# sourceMappingURL=upload.js.map
|
package/src/lib/upload.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/lib/upload.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/lib/upload.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAO3D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAsB;IACjD,MAAM,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,YAAY,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC9C,MAAM,EAAE,oBAAoB,EAAE,GAAG,YAAY,CAAC;QAC9C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAC1E,MAAM,MAAM,GAAW,MAAM,UAAU,CAAC;YACtC,GAAG,OAAO,CAAC,OAAO;YAClB,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,IAAI,GAAgC;YACxC,YAAY;YACZ,OAAO;YACP,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;YAC1B,GAAG,WAAW,CAAC,MAAM,CAAC;SACvB,CAAC;QAEF,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,oBAAoB,CAAC;YACzC,MAAM;YACN,MAAM;YACN,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAElC,OAAO,2BAA2B,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC"}
|