@code-pushup/typescript-plugin 0.97.0 → 0.99.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/lib/constants.d.ts +1 -0
- package/src/lib/constants.js +1 -0
- package/src/lib/constants.js.map +1 -1
- package/src/lib/format.d.ts +1 -0
- package/src/lib/format.js +4 -0
- package/src/lib/format.js.map +1 -0
- package/src/lib/runner/runner.js +10 -3
- package/src/lib/runner/runner.js.map +1 -1
- package/src/lib/runner/ts-runner.d.ts +1 -1
- package/src/lib/runner/ts-runner.js +7 -4
- package/src/lib/runner/ts-runner.js.map +1 -1
- package/src/lib/runner/utils.d.ts +4 -4
- package/src/lib/runner/utils.js +5 -11
- package/src/lib/runner/utils.js.map +1 -1
- package/src/lib/typescript-plugin.js +12 -12
- package/src/lib/typescript-plugin.js.map +1 -1
- package/src/lib/utils.d.ts +2 -2
- package/src/lib/utils.js +13 -4
- package/src/lib/utils.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-pushup/typescript-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.99.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Code PushUp plugin for incrementally adopting strict compilation flags in TypeScript projects",
|
|
6
6
|
"homepage": "https://github.com/code-pushup/cli/tree/main/packages/plugin-typescript#readme",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
},
|
|
24
24
|
"type": "module",
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@code-pushup/models": "0.
|
|
27
|
-
"@code-pushup/utils": "0.
|
|
26
|
+
"@code-pushup/models": "0.99.0",
|
|
27
|
+
"@code-pushup/utils": "0.99.0",
|
|
28
28
|
"zod": "^4.0.5"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
package/src/lib/constants.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Audit, Group } from '@code-pushup/models';
|
|
2
2
|
import type { AuditSlug } from './types.js';
|
|
3
3
|
export declare const TYPESCRIPT_PLUGIN_SLUG = "typescript";
|
|
4
|
+
export declare const TYPESCRIPT_PLUGIN_TITLE = "TypeScript";
|
|
4
5
|
export declare const DEFAULT_TS_CONFIG = "tsconfig.json";
|
|
5
6
|
export declare const AUDITS: (Audit & {
|
|
6
7
|
slug: AuditSlug;
|
package/src/lib/constants.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { toSentenceCase } from '@code-pushup/utils';
|
|
2
2
|
import { TS_CODE_RANGE_NAMES } from './runner/ts-error-codes.js';
|
|
3
3
|
export const TYPESCRIPT_PLUGIN_SLUG = 'typescript';
|
|
4
|
+
export const TYPESCRIPT_PLUGIN_TITLE = 'TypeScript';
|
|
4
5
|
export const DEFAULT_TS_CONFIG = 'tsconfig.json';
|
|
5
6
|
const AUDIT_DESCRIPTIONS = {
|
|
6
7
|
'semantic-errors': 'Errors that occur during type checking and type inference',
|
package/src/lib/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,MAAM,CAAC,MAAM,sBAAsB,GAAG,YAAY,CAAC;AACnD,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEjD,MAAM,kBAAkB,GAA8B;IACpD,iBAAiB,EACf,2DAA2D;IAC7D,eAAe,EACb,uEAAuE;IACzE,sBAAsB,EACpB,+DAA+D;IACjE,yCAAyC,EACvC,iEAAiE;IACnE,iBAAiB,EAAE,yDAAyD;IAC5E,wBAAwB,EAAE,mDAAmD;IAC7E,eAAe,EAAE,0DAA0D;CAC5E,CAAC;AACF,MAAM,CAAC,MAAM,MAAM,GAAoC,MAAM,CAAC,MAAM,CAClE,mBAAmB,CACpB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,IAAI;IACJ,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC;IAC3B,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC;CACtC,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,MAAM,GAAY;IAC7B;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,WAAW,EACT,kGAAkG;QACpG,IAAI,EACF;YACE,eAAe;YACf,iBAAiB;YACjB,wBAAwB;SAE3B,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACb,IAAI;YACJ,MAAM,EAAE,CAAC;SACV,CAAC,CAAC;KACJ;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,iHAAiH;QACnH,IAAI,EAAG,CAAC,sBAAsB,CAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClE,IAAI;YACJ,MAAM,EAAE,CAAC;SACV,CAAC,CAAC;KACJ;IACD;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,6FAA6F;QAC/F,IAAI,EACF;YACE,eAAe;YACf,iBAAiB;YACjB,yCAAyC;SAE5C,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACb,IAAI;YACJ,MAAM,EAAE,CAAC;SACV,CAAC,CAAC;KACJ;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,MAAM,CAAC,MAAM,sBAAsB,GAAG,YAAY,CAAC;AACnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAEpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEjD,MAAM,kBAAkB,GAA8B;IACpD,iBAAiB,EACf,2DAA2D;IAC7D,eAAe,EACb,uEAAuE;IACzE,sBAAsB,EACpB,+DAA+D;IACjE,yCAAyC,EACvC,iEAAiE;IACnE,iBAAiB,EAAE,yDAAyD;IAC5E,wBAAwB,EAAE,mDAAmD;IAC7E,eAAe,EAAE,0DAA0D;CAC5E,CAAC;AACF,MAAM,CAAC,MAAM,MAAM,GAAoC,MAAM,CAAC,MAAM,CAClE,mBAAmB,CACpB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,IAAI;IACJ,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC;IAC3B,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC;CACtC,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,MAAM,GAAY;IAC7B;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,WAAW,EACT,kGAAkG;QACpG,IAAI,EACF;YACE,eAAe;YACf,iBAAiB;YACjB,wBAAwB;SAE3B,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACb,IAAI;YACJ,MAAM,EAAE,CAAC;SACV,CAAC,CAAC;KACJ;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,iHAAiH;QACnH,IAAI,EAAG,CAAC,sBAAsB,CAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClE,IAAI;YACJ,MAAM,EAAE,CAAC;SACV,CAAC,CAAC;KACJ;IACD;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,6FAA6F;QAC/F,IAAI,EACF;YACE,eAAe;YACf,iBAAiB;YACjB,yCAAyC;SAE5C,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACb,IAAI;YACJ,MAAM,EAAE,CAAC;SACV,CAAC,CAAC;KACJ;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const formatMetaLog: (message: string) => string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/lib/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,MAAM,CAAC,MAAM,aAAa,GAAG,sBAAsB,CAAC,uBAAuB,CAAC,CAAC"}
|
package/src/lib/runner/runner.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { pluralizeToken } from '@code-pushup/utils';
|
|
1
|
+
import { formatAsciiTable, logger, pluralizeToken, toSentenceCase, } from '@code-pushup/utils';
|
|
2
2
|
import { getTypeScriptDiagnostics, } from './ts-runner.js';
|
|
3
3
|
import { getIssueFromDiagnostic, tsCodeToAuditSlug } from './utils.js';
|
|
4
4
|
export function createRunnerFunction(options) {
|
|
5
5
|
const { tsconfig, expectedAudits } = options;
|
|
6
|
-
return
|
|
7
|
-
const diagnostics =
|
|
6
|
+
return () => {
|
|
7
|
+
const diagnostics = getTypeScriptDiagnostics({ tsconfig });
|
|
8
8
|
const result = diagnostics.reduce((acc, diag) => {
|
|
9
9
|
const slug = tsCodeToAuditSlug(diag.code);
|
|
10
10
|
const existingIssues = acc[slug]?.details?.issues ?? [];
|
|
@@ -18,6 +18,13 @@ export function createRunnerFunction(options) {
|
|
|
18
18
|
},
|
|
19
19
|
};
|
|
20
20
|
}, {});
|
|
21
|
+
logger.debug(formatAsciiTable({
|
|
22
|
+
columns: ['left', 'right'],
|
|
23
|
+
rows: Object.values(result).map(audit => [
|
|
24
|
+
`• ${toSentenceCase(audit.slug)}`,
|
|
25
|
+
audit.details?.issues?.length ?? 0,
|
|
26
|
+
]),
|
|
27
|
+
}, { borderless: true }));
|
|
21
28
|
return expectedAudits.map(({ slug }) => {
|
|
22
29
|
const { details } = result[slug] ?? {};
|
|
23
30
|
const issues = details?.issues ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../src/lib/runner/runner.ts"],"names":[],"mappings":"AAMA,OAAO,
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../src/lib/runner/runner.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,gBAAgB,EAChB,MAAM,EACN,cAAc,EACd,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAEL,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMvE,MAAM,UAAU,oBAAoB,CAAC,OAAsB;IACzD,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAE7C,OAAO,GAAiB,EAAE;QACxB,MAAM,WAAW,GAAG,wBAAwB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE3D,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAE/B,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACd,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,cAAc,GAAY,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC;YACjE,OAAO;gBACL,GAAG,GAAG;gBACN,CAAC,IAAI,CAAC,EAAE;oBACN,IAAI;oBACJ,OAAO,EAAE;wBACP,MAAM,EAAE,CAAC,GAAG,cAAc,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;qBAC1D;iBACF;aACF,CAAC;QACJ,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,MAAM,CAAC,KAAK,CACV,gBAAgB,CACd;YACE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvC,KAAK,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBACjC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;aACnC,CAAC;SACH,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,CACrB,CACF,CAAC;QAEF,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAe,EAAE;YAClD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAEvC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC;YACrC,OAAO;gBACL,IAAI;gBACJ,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClC,KAAK,EAAE,MAAM,CAAC,MAAM;gBACpB,YAAY,EACV,MAAM,CAAC,MAAM,KAAK,CAAC;oBACjB,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;gBAC5C,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1C,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -2,4 +2,4 @@ import { type Diagnostic } from 'typescript';
|
|
|
2
2
|
export type DiagnosticsOptions = {
|
|
3
3
|
tsconfig: string;
|
|
4
4
|
};
|
|
5
|
-
export declare function getTypeScriptDiagnostics({ tsconfig, }: DiagnosticsOptions):
|
|
5
|
+
export declare function getTypeScriptDiagnostics({ tsconfig, }: DiagnosticsOptions): readonly Diagnostic[];
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { createProgram, getPreEmitDiagnostics, } from 'typescript';
|
|
2
|
-
import { stringifyError } from '@code-pushup/utils';
|
|
2
|
+
import { logger, pluralizeToken, stringifyError } from '@code-pushup/utils';
|
|
3
3
|
import { loadTargetConfig } from './utils.js';
|
|
4
|
-
export
|
|
4
|
+
export function getTypeScriptDiagnostics({ tsconfig, }) {
|
|
5
5
|
const { fileNames, options } = loadTargetConfig(tsconfig);
|
|
6
|
+
logger.info(`Parsed TypeScript config file ${tsconfig}, program includes ${pluralizeToken('file', fileNames.length)}`);
|
|
6
7
|
try {
|
|
7
8
|
const program = createProgram(fileNames, options);
|
|
8
|
-
|
|
9
|
+
const diagnostics = getPreEmitDiagnostics(program);
|
|
10
|
+
logger.info(`TypeScript compiler found ${pluralizeToken('diagnostic', diagnostics.length)}`);
|
|
11
|
+
return diagnostics;
|
|
9
12
|
}
|
|
10
13
|
catch (error) {
|
|
11
|
-
throw new Error(`Can't create TS program
|
|
14
|
+
throw new Error(`Can't create TS program and get diagnostics.\n${stringifyError(error)}`);
|
|
12
15
|
}
|
|
13
16
|
}
|
|
14
17
|
//# sourceMappingURL=ts-runner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts-runner.js","sourceRoot":"","sources":["../../../../src/lib/runner/ts-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ts-runner.js","sourceRoot":"","sources":["../../../../src/lib/runner/ts-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAM9C,MAAM,UAAU,wBAAwB,CAAC,EACvC,QAAQ,GACW;IACnB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,CAAC,IAAI,CACT,iCAAiC,QAAQ,sBAAsB,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAC1G,CAAC;IACF,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CACT,6BAA6B,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAChF,CAAC;QACF,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,iDAAiD,cAAc,CAAC,KAAK,CAAC,EAAE,CACzE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -3,7 +3,7 @@ import type { Issue } from '@code-pushup/models';
|
|
|
3
3
|
import type { CodeRangeName } from './types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Transform the TypeScript error code to the audit slug.
|
|
6
|
-
* @param code
|
|
6
|
+
* @param code The TypeScript error code.
|
|
7
7
|
* @returns The audit slug.
|
|
8
8
|
* @throws Error if the code is not supported.
|
|
9
9
|
*/
|
|
@@ -14,19 +14,19 @@ export declare function tsCodeToAuditSlug(code: number): CodeRangeName;
|
|
|
14
14
|
* - ts.DiagnosticCategory.Error (2)
|
|
15
15
|
* - ts.DiagnosticCategory.Suggestion (3)
|
|
16
16
|
* - ts.DiagnosticCategory.Message (4)
|
|
17
|
-
* @param category
|
|
17
|
+
* @param category The TypeScript diagnostic category.
|
|
18
18
|
* @returns The severity of the issue.
|
|
19
19
|
*/
|
|
20
20
|
export declare function getSeverity(category: DiagnosticCategory): Issue['severity'];
|
|
21
21
|
/**
|
|
22
22
|
* Format issue message from the TypeScript diagnostic.
|
|
23
|
-
* @param diag
|
|
23
|
+
* @param diag The TypeScript diagnostic.
|
|
24
24
|
* @returns The issue message.
|
|
25
25
|
*/
|
|
26
26
|
export declare function getMessage(diag: Diagnostic): string;
|
|
27
27
|
/**
|
|
28
28
|
* Get the issue from the TypeScript diagnostic.
|
|
29
|
-
* @param diag
|
|
29
|
+
* @param diag The TypeScript diagnostic.
|
|
30
30
|
* @returns The issue.
|
|
31
31
|
* @throws Error if the diagnostic is global (e.g., invalid compiler option).
|
|
32
32
|
*/
|
package/src/lib/runner/utils.js
CHANGED
|
@@ -4,7 +4,7 @@ import { truncateIssueMessage } from '@code-pushup/utils';
|
|
|
4
4
|
import { TS_CODE_RANGE_NAMES } from './ts-error-codes.js';
|
|
5
5
|
/**
|
|
6
6
|
* Transform the TypeScript error code to the audit slug.
|
|
7
|
-
* @param code
|
|
7
|
+
* @param code The TypeScript error code.
|
|
8
8
|
* @returns The audit slug.
|
|
9
9
|
* @throws Error if the code is not supported.
|
|
10
10
|
*/
|
|
@@ -20,7 +20,7 @@ export function tsCodeToAuditSlug(code) {
|
|
|
20
20
|
* - ts.DiagnosticCategory.Error (2)
|
|
21
21
|
* - ts.DiagnosticCategory.Suggestion (3)
|
|
22
22
|
* - ts.DiagnosticCategory.Message (4)
|
|
23
|
-
* @param category
|
|
23
|
+
* @param category The TypeScript diagnostic category.
|
|
24
24
|
* @returns The severity of the issue.
|
|
25
25
|
*/
|
|
26
26
|
export function getSeverity(category) {
|
|
@@ -35,7 +35,7 @@ export function getSeverity(category) {
|
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
37
|
* Format issue message from the TypeScript diagnostic.
|
|
38
|
-
* @param diag
|
|
38
|
+
* @param diag The TypeScript diagnostic.
|
|
39
39
|
* @returns The issue message.
|
|
40
40
|
*/
|
|
41
41
|
export function getMessage(diag) {
|
|
@@ -47,7 +47,7 @@ export function getMessage(diag) {
|
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
49
|
* Get the issue from the TypeScript diagnostic.
|
|
50
|
-
* @param diag
|
|
50
|
+
* @param diag The TypeScript diagnostic.
|
|
51
51
|
* @returns The issue.
|
|
52
52
|
* @throws Error if the diagnostic is global (e.g., invalid compiler option).
|
|
53
53
|
*/
|
|
@@ -67,13 +67,7 @@ export function getIssueFromDiagnostic(diag) {
|
|
|
67
67
|
...issue,
|
|
68
68
|
source: {
|
|
69
69
|
file: path.relative(process.cwd(), diag.file.fileName),
|
|
70
|
-
...(startLine
|
|
71
|
-
? {
|
|
72
|
-
position: {
|
|
73
|
-
startLine,
|
|
74
|
-
},
|
|
75
|
-
}
|
|
76
|
-
: {}),
|
|
70
|
+
...(startLine ? { position: { startLine } } : {}),
|
|
77
71
|
},
|
|
78
72
|
};
|
|
79
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/lib/runner/utils.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAEL,kBAAkB,EAClB,4BAA4B,EAC5B,0BAA0B,EAC1B,cAAc,EACd,GAAG,GACJ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,WAAW,GAAG,IAAI;SACrB,QAAQ,EAAE;SACV,KAAK,CAAC,CAAC,EAAE,CAAC,CAAqC,CAAC;IACnD,OAAO,mBAAmB,CAAC,WAAW,CAAC,IAAI,cAAc,CAAC;AAC5D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,QAA4B;IACtD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,kBAAkB,CAAC,KAAK;YAC3B,OAAO,OAAO,CAAC;QACjB,KAAK,kBAAkB,CAAC,OAAO;YAC7B,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAgB;IACzC,MAAM,SAAS,GAAG,4BAA4B,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,SAAS;SACnB,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO,oBAAoB,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAgB;IACrD,MAAM,KAAK,GAAU;QACnB,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC;KAC1B,CAAC;IAEF,2EAA2E;IAC3E,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GACb,IAAI,CAAC,KAAK,KAAK,SAAS;QACtB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IAEnE,OAAO;QACL,GAAG,KAAK;QACR,MAAM,EAAE;YACN,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YACtD,GAAG,CAAC,SAAS
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/lib/runner/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';
|
|
2
2
|
import { validate } from '@code-pushup/models';
|
|
3
3
|
import { stringifyError } from '@code-pushup/utils';
|
|
4
|
-
import { DEFAULT_TS_CONFIG, TYPESCRIPT_PLUGIN_SLUG } from './constants.js';
|
|
4
|
+
import { DEFAULT_TS_CONFIG, TYPESCRIPT_PLUGIN_SLUG, TYPESCRIPT_PLUGIN_TITLE, } from './constants.js';
|
|
5
5
|
import { createRunnerFunction } from './runner/runner.js';
|
|
6
6
|
import { typescriptPluginConfigSchema, } from './schema.js';
|
|
7
|
-
import { getAudits, getGroups,
|
|
7
|
+
import { getAudits, getGroups, logAuditsAndGroups } from './utils.js';
|
|
8
8
|
const packageJson = createRequire(import.meta.url)('../../package.json');
|
|
9
9
|
export function typescriptPlugin(options) {
|
|
10
10
|
const { tsconfig = DEFAULT_TS_CONFIG, onlyAudits, scoreTargets, } = parseOptions(options ?? {});
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
|
|
11
|
+
const audits = getAudits({ onlyAudits });
|
|
12
|
+
const groups = getGroups({ onlyAudits });
|
|
13
|
+
logAuditsAndGroups(audits, groups);
|
|
14
14
|
return {
|
|
15
15
|
slug: TYPESCRIPT_PLUGIN_SLUG,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
title: 'TypeScript',
|
|
16
|
+
title: TYPESCRIPT_PLUGIN_TITLE,
|
|
17
|
+
icon: 'typescript',
|
|
19
18
|
description: 'Official Code PushUp TypeScript plugin.',
|
|
20
19
|
docsUrl: 'https://www.npmjs.com/package/@code-pushup/typescript-plugin/',
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
packageName: packageJson.name,
|
|
21
|
+
version: packageJson.version,
|
|
22
|
+
audits,
|
|
23
|
+
groups,
|
|
24
24
|
runner: createRunnerFunction({
|
|
25
25
|
tsconfig,
|
|
26
|
-
expectedAudits:
|
|
26
|
+
expectedAudits: audits,
|
|
27
27
|
}),
|
|
28
28
|
...(scoreTargets && { scoreTargets }),
|
|
29
29
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-plugin.js","sourceRoot":"","sources":["../../../src/lib/typescript-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAqB,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"typescript-plugin.js","sourceRoot":"","sources":["../../../src/lib/typescript-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAqB,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAGL,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAChD,oBAAoB,CACkB,CAAC;AAEzC,MAAM,UAAU,gBAAgB,CAC9B,OAAiC;IAEjC,MAAM,EACJ,QAAQ,GAAG,iBAAiB,EAC5B,UAAU,EACV,YAAY,GACb,GAAG,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAEhC,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IAEzC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,yCAAyC;QACtD,OAAO,EAAE,+DAA+D;QACxE,WAAW,EAAE,WAAW,CAAC,IAAI;QAC7B,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,MAAM;QACN,MAAM;QACN,MAAM,EAAE,oBAAoB,CAAC;YAC3B,QAAQ;YACR,cAAc,EAAE,MAAM;SACvB,CAAC;QACF,GAAG,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,CAAC;KACtC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,eAAwC;IAExC,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,4BAA4B,EAAE,eAAe,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,4CAA4C,cAAc,CAAC,KAAK,CAAC,EAAE,CACpE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/src/lib/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CompilerOptions } from 'typescript';
|
|
2
|
-
import type { Audit, CategoryConfig, CategoryRef } from '@code-pushup/models';
|
|
2
|
+
import type { Audit, CategoryConfig, CategoryRef, Group } from '@code-pushup/models';
|
|
3
3
|
import type { TypescriptPluginConfig, TypescriptPluginOptions } from './schema.js';
|
|
4
4
|
/**
|
|
5
5
|
* It filters the audits by the slugs
|
|
@@ -67,4 +67,4 @@ export declare function getCategories(): {
|
|
|
67
67
|
isSkipped?: boolean | undefined;
|
|
68
68
|
scoreTarget?: number | undefined;
|
|
69
69
|
}[];
|
|
70
|
-
export declare function
|
|
70
|
+
export declare function logAuditsAndGroups(audits: Audit[], groups: Group[]): void;
|
package/src/lib/utils.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { kebabCaseToCamelCase, logger } from '@code-pushup/utils';
|
|
1
|
+
import { kebabCaseToCamelCase, logger, pluralizeToken, } from '@code-pushup/utils';
|
|
2
2
|
import { AUDITS, GROUPS, TYPESCRIPT_PLUGIN_SLUG } from './constants.js';
|
|
3
|
+
import { formatMetaLog } from './format.js';
|
|
3
4
|
/**
|
|
4
5
|
* It filters the audits by the slugs
|
|
5
6
|
*
|
|
@@ -113,10 +114,18 @@ export const CATEGORY_MAP = {
|
|
|
113
114
|
export function getCategories() {
|
|
114
115
|
return Object.values(CATEGORY_MAP);
|
|
115
116
|
}
|
|
116
|
-
export function
|
|
117
|
-
|
|
117
|
+
export function logAuditsAndGroups(audits, groups) {
|
|
118
|
+
logger.info(formatMetaLog(`Created ${pluralizeToken('audit', audits.length)} and ${pluralizeToken('group', groups.length)}`));
|
|
119
|
+
const skippedAudits = AUDITS.filter(audit => !audits.some(({ slug }) => slug === audit.slug));
|
|
120
|
+
const skippedGroups = GROUPS.filter(group => !groups.some(({ slug }) => slug === group.slug));
|
|
118
121
|
if (skippedAudits.length > 0) {
|
|
119
|
-
logger.info(
|
|
122
|
+
logger.info(formatMetaLog([
|
|
123
|
+
`Skipped ${pluralizeToken('audit', skippedAudits.length)}`,
|
|
124
|
+
skippedGroups.length > 0 &&
|
|
125
|
+
pluralizeToken('group', skippedGroups.length),
|
|
126
|
+
]
|
|
127
|
+
.filter(Boolean)
|
|
128
|
+
.join(' and ')));
|
|
120
129
|
}
|
|
121
130
|
}
|
|
122
131
|
//# sourceMappingURL=utils.js.map
|
package/src/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}
|