@tramvai/cli 3.25.5 → 3.26.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/builder/webpack/tokens.d.ts +3 -3
- package/lib/di/tokens/config.d.ts +1 -1
- package/lib/schema/autogeneratedSchema.json +15 -15
- package/lib/typings/configEntry/cli.d.ts +2 -1
- package/lib/typings/configEntry/cli.d.ts.map +1 -1
- package/lib/validators/commands/checkSwcDependencies.d.ts +2 -0
- package/lib/validators/commands/checkSwcDependencies.d.ts.map +1 -1
- package/lib/validators/commands/checkSwcDependencies.js +47 -10
- package/lib/validators/commands/checkSwcDependencies.js.map +1 -1
- package/package.json +2 -2
- package/schema.json +15 -15
- package/src/schema/autogeneratedSchema.json +15 -15
- package/src/typings/configEntry/cli.ts +2 -2
- package/src/validators/commands/checkSwcDependencies.spec.ts +36 -3
- package/src/validators/commands/checkSwcDependencies.ts +56 -9
|
@@ -23,7 +23,7 @@ export declare const CLIENT_CONFIG_MANAGER_TOKEN: {
|
|
|
23
23
|
useImportModule: boolean;
|
|
24
24
|
};
|
|
25
25
|
transpilation: {
|
|
26
|
-
loader: "
|
|
26
|
+
loader: import("../../typings/configEntry/cli").TranspilationLoader;
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
29
|
excludesPresetEnv?: string[];
|
|
@@ -151,7 +151,7 @@ export declare const CLIENT_MODERN_CONFIG_MANAGER_TOKEN: {
|
|
|
151
151
|
useImportModule: boolean;
|
|
152
152
|
};
|
|
153
153
|
transpilation: {
|
|
154
|
-
loader: "
|
|
154
|
+
loader: import("../../typings/configEntry/cli").TranspilationLoader;
|
|
155
155
|
};
|
|
156
156
|
};
|
|
157
157
|
excludesPresetEnv?: string[];
|
|
@@ -279,7 +279,7 @@ export declare const SERVER_CONFIG_MANAGER_TOKEN: {
|
|
|
279
279
|
useImportModule: boolean;
|
|
280
280
|
};
|
|
281
281
|
transpilation: {
|
|
282
|
-
loader: "
|
|
282
|
+
loader: import("../../typings/configEntry/cli").TranspilationLoader;
|
|
283
283
|
};
|
|
284
284
|
};
|
|
285
285
|
excludesPresetEnv?: string[];
|
|
@@ -1144,23 +1144,23 @@
|
|
|
1144
1144
|
"dotAll": {
|
|
1145
1145
|
"type": "boolean"
|
|
1146
1146
|
},
|
|
1147
|
-
"__@match@
|
|
1147
|
+
"__@match@6849": {
|
|
1148
1148
|
"type": "object",
|
|
1149
1149
|
"additionalProperties": false
|
|
1150
1150
|
},
|
|
1151
|
-
"__@replace@
|
|
1151
|
+
"__@replace@6851": {
|
|
1152
1152
|
"type": "object",
|
|
1153
1153
|
"additionalProperties": false
|
|
1154
1154
|
},
|
|
1155
|
-
"__@search@
|
|
1155
|
+
"__@search@6854": {
|
|
1156
1156
|
"type": "object",
|
|
1157
1157
|
"additionalProperties": false
|
|
1158
1158
|
},
|
|
1159
|
-
"__@split@
|
|
1159
|
+
"__@split@6856": {
|
|
1160
1160
|
"type": "object",
|
|
1161
1161
|
"additionalProperties": false
|
|
1162
1162
|
},
|
|
1163
|
-
"__@matchAll@
|
|
1163
|
+
"__@matchAll@6858": {
|
|
1164
1164
|
"type": "object",
|
|
1165
1165
|
"additionalProperties": false
|
|
1166
1166
|
}
|
|
@@ -1813,23 +1813,23 @@
|
|
|
1813
1813
|
"dotAll": {
|
|
1814
1814
|
"type": "boolean"
|
|
1815
1815
|
},
|
|
1816
|
-
"__@match@
|
|
1816
|
+
"__@match@6849": {
|
|
1817
1817
|
"type": "object",
|
|
1818
1818
|
"additionalProperties": false
|
|
1819
1819
|
},
|
|
1820
|
-
"__@replace@
|
|
1820
|
+
"__@replace@6851": {
|
|
1821
1821
|
"type": "object",
|
|
1822
1822
|
"additionalProperties": false
|
|
1823
1823
|
},
|
|
1824
|
-
"__@search@
|
|
1824
|
+
"__@search@6854": {
|
|
1825
1825
|
"type": "object",
|
|
1826
1826
|
"additionalProperties": false
|
|
1827
1827
|
},
|
|
1828
|
-
"__@split@
|
|
1828
|
+
"__@split@6856": {
|
|
1829
1829
|
"type": "object",
|
|
1830
1830
|
"additionalProperties": false
|
|
1831
1831
|
},
|
|
1832
|
-
"__@matchAll@
|
|
1832
|
+
"__@matchAll@6858": {
|
|
1833
1833
|
"type": "object",
|
|
1834
1834
|
"additionalProperties": false
|
|
1835
1835
|
}
|
|
@@ -2482,23 +2482,23 @@
|
|
|
2482
2482
|
"dotAll": {
|
|
2483
2483
|
"type": "boolean"
|
|
2484
2484
|
},
|
|
2485
|
-
"__@match@
|
|
2485
|
+
"__@match@6849": {
|
|
2486
2486
|
"type": "object",
|
|
2487
2487
|
"additionalProperties": false
|
|
2488
2488
|
},
|
|
2489
|
-
"__@replace@
|
|
2489
|
+
"__@replace@6851": {
|
|
2490
2490
|
"type": "object",
|
|
2491
2491
|
"additionalProperties": false
|
|
2492
2492
|
},
|
|
2493
|
-
"__@search@
|
|
2493
|
+
"__@search@6854": {
|
|
2494
2494
|
"type": "object",
|
|
2495
2495
|
"additionalProperties": false
|
|
2496
2496
|
},
|
|
2497
|
-
"__@split@
|
|
2497
|
+
"__@split@6856": {
|
|
2498
2498
|
"type": "object",
|
|
2499
2499
|
"additionalProperties": false
|
|
2500
2500
|
},
|
|
2501
|
-
"__@matchAll@
|
|
2501
|
+
"__@matchAll@6858": {
|
|
2502
2502
|
"type": "object",
|
|
2503
2503
|
"additionalProperties": false
|
|
2504
2504
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Configuration } from 'webpack';
|
|
2
2
|
import type { DeduplicateStrategy } from '@tinkoff/webpack-dedupe-plugin';
|
|
3
3
|
import type { ConfigEntry, OverridableOption } from './common';
|
|
4
|
+
export type TranspilationLoader = 'babel' | 'swc';
|
|
4
5
|
type SimplifiedSvgoConfig = string | {
|
|
5
6
|
name: string;
|
|
6
7
|
params: Record<string, any>;
|
|
@@ -43,7 +44,7 @@ export type TranspilationExperiments = {
|
|
|
43
44
|
* @title specify loader to transpile js-ts code
|
|
44
45
|
* @default "babel"
|
|
45
46
|
*/
|
|
46
|
-
loader: OverridableOption<
|
|
47
|
+
loader: OverridableOption<TranspilationLoader>;
|
|
47
48
|
};
|
|
48
49
|
export interface Experiments {
|
|
49
50
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/typings/configEntry/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE/D,KAAK,oBAAoB,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/typings/configEntry/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { Validator } from './validator.h';
|
|
2
|
+
import type { TranspilationExperiments, TranspilationLoader } from '../../typings/configEntry/cli';
|
|
3
|
+
export declare const extractLoaderFromConfigEntry: (transpilationExperiments?: TranspilationExperiments) => TranspilationLoader;
|
|
2
4
|
export declare const checkSwcDependencies: Validator;
|
|
3
5
|
//# sourceMappingURL=checkSwcDependencies.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkSwcDependencies.d.ts","sourceRoot":"","sources":["../../../src/validators/commands/checkSwcDependencies.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"checkSwcDependencies.d.ts","sourceRoot":"","sources":["../../../src/validators/commands/checkSwcDependencies.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAInG,eAAO,MAAM,4BAA4B,8BACZ,wBAAwB,KAClD,mBAaF,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,SA+DlC,CAAC"}
|
|
@@ -1,34 +1,71 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.checkSwcDependencies = void 0;
|
|
3
|
+
exports.checkSwcDependencies = exports.extractLoaderFromConfigEntry = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const resolve_1 = require("resolve");
|
|
6
|
-
const
|
|
6
|
+
const validator = 'checkSwcDependencies';
|
|
7
|
+
const extractLoaderFromConfigEntry = (transpilationExperiments) => {
|
|
8
|
+
var _a;
|
|
9
|
+
const defaultTranspiler = 'babel';
|
|
10
|
+
if (!transpilationExperiments) {
|
|
11
|
+
return defaultTranspiler;
|
|
12
|
+
}
|
|
13
|
+
const { loader } = transpilationExperiments;
|
|
14
|
+
if (typeof loader === 'string') {
|
|
15
|
+
return loader;
|
|
16
|
+
}
|
|
17
|
+
return (_a = loader[process.env.NODE_ENV]) !== null && _a !== void 0 ? _a : defaultTranspiler;
|
|
18
|
+
};
|
|
19
|
+
exports.extractLoaderFromConfigEntry = extractLoaderFromConfigEntry;
|
|
20
|
+
const checkSwcDependencies = (context, parameters) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
21
|
+
var _a;
|
|
22
|
+
const configEntry = context.config.getProject(parameters.target);
|
|
23
|
+
const loader = (0, exports.extractLoaderFromConfigEntry)((_a = configEntry === null || configEntry === void 0 ? void 0 : configEntry.experiments) === null || _a === void 0 ? void 0 : _a.transpilation);
|
|
24
|
+
if (loader === 'babel') {
|
|
25
|
+
return {
|
|
26
|
+
name: validator,
|
|
27
|
+
status: 'ok',
|
|
28
|
+
};
|
|
29
|
+
}
|
|
7
30
|
const rootDir = process.cwd();
|
|
8
31
|
const packagePath = `@swc/core/package.json`;
|
|
9
|
-
const pathFromCli = (0, resolve_1.sync)(packagePath);
|
|
10
|
-
const pathFromRoot = (0, resolve_1.sync)(packagePath, { basedir: rootDir });
|
|
11
|
-
const pathFromRootToIntegration = (0, resolve_1.sync)(`@tramvai/swc-integration/package.json`, {
|
|
12
|
-
basedir: rootDir,
|
|
13
|
-
});
|
|
14
32
|
let versionFromIntegration = '';
|
|
15
33
|
let versionFromRoot = '_from_root_version_';
|
|
16
34
|
let versionFromCli = '_from_cli_version_';
|
|
17
35
|
try {
|
|
36
|
+
const pathFromCli = (0, resolve_1.sync)(packagePath);
|
|
37
|
+
const pathFromRoot = (0, resolve_1.sync)(packagePath, { basedir: rootDir });
|
|
38
|
+
const pathFromRootToIntegration = (0, resolve_1.sync)(`@tramvai/swc-integration/package.json`, {
|
|
39
|
+
basedir: rootDir,
|
|
40
|
+
});
|
|
18
41
|
versionFromIntegration = require(pathFromRootToIntegration).dependencies['@swc/core'];
|
|
19
42
|
versionFromRoot = require(pathFromRoot).version;
|
|
20
43
|
versionFromCli = require(pathFromCli).version;
|
|
21
44
|
}
|
|
22
|
-
catch (e) {
|
|
45
|
+
catch (e) {
|
|
46
|
+
// https://www.npmjs.com/package/resolve#methods
|
|
47
|
+
if (e.code === 'MODULE_NOT_FOUND') {
|
|
48
|
+
return {
|
|
49
|
+
name: validator,
|
|
50
|
+
status: 'error',
|
|
51
|
+
message: '@swc/core or @tramvai/swc-integration module is not found. Continue without checking dependencies. Install @tramvai/swc-integration package in case if you use swc-loader',
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
name: validator,
|
|
56
|
+
status: 'error',
|
|
57
|
+
message: `Something went wrong while resolving @swc/core or @tramvai/swc-integration packages, error: ${e}`,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
23
60
|
const allVersionsAreCorrect = versionFromRoot === versionFromCli && versionFromCli === versionFromIntegration;
|
|
24
61
|
if (!versionFromIntegration || allVersionsAreCorrect) {
|
|
25
62
|
return {
|
|
26
|
-
name:
|
|
63
|
+
name: validator,
|
|
27
64
|
status: 'ok',
|
|
28
65
|
};
|
|
29
66
|
}
|
|
30
67
|
return {
|
|
31
|
-
name:
|
|
68
|
+
name: validator,
|
|
32
69
|
status: 'error',
|
|
33
70
|
message: `Version of @swc/core mismatch between
|
|
34
71
|
@tramvai/swc-integration (version: ${versionFromIntegration}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkSwcDependencies.js","sourceRoot":"","sources":["../../../src/validators/commands/checkSwcDependencies.ts"],"names":[],"mappings":";;;;AAAA,qCAA0C;
|
|
1
|
+
{"version":3,"file":"checkSwcDependencies.js","sourceRoot":"","sources":["../../../src/validators/commands/checkSwcDependencies.ts"],"names":[],"mappings":";;;;AAAA,qCAA0C;AAI1C,MAAM,SAAS,GAAG,sBAAsB,CAAC;AAElC,MAAM,4BAA4B,GAAG,CAC1C,wBAAmD,EAC9B,EAAE;;IACvB,MAAM,iBAAiB,GAAG,OAAO,CAAC;IAClC,IAAI,CAAC,wBAAwB,EAAE;QAC7B,OAAO,iBAAiB,CAAC;KAC1B;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,wBAAwB,CAAC;IAE5C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC9B,OAAO,MAAa,CAAC;KACtB;IAED,OAAO,MAAA,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,mCAAI,iBAAiB,CAAC;AAC3D,CAAC,CAAC;AAfW,QAAA,4BAA4B,gCAevC;AAEK,MAAM,oBAAoB,GAAc,CAAO,OAAO,EAAE,UAAU,EAAE,EAAE;;IAC3E,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAEjE,MAAM,MAAM,GAAG,IAAA,oCAA4B,EAAC,MAAC,WAAmB,aAAnB,WAAW,uBAAX,WAAW,CAAU,WAAW,0CAAE,aAAa,CAAC,CAAC;IAE9F,IAAI,MAAM,KAAK,OAAO,EAAE;QACtB,OAAO;YACL,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,IAAI;SACb,CAAC;KACH;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9B,MAAM,WAAW,GAAG,wBAAwB,CAAC;IAE7C,IAAI,sBAAsB,GAAG,EAAE,CAAC;IAChC,IAAI,eAAe,GAAG,qBAAqB,CAAC;IAC5C,IAAI,cAAc,GAAG,oBAAoB,CAAC;IAC1C,IAAI;QACF,MAAM,WAAW,GAAG,IAAA,cAAO,EAAC,WAAW,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,IAAA,cAAO,EAAC,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAChE,MAAM,yBAAyB,GAAG,IAAA,cAAO,EAAC,uCAAuC,EAAE;YACjF,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QACH,sBAAsB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACtF,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC;QAChD,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC;KAC/C;IAAC,OAAO,CAAC,EAAE;QACV,gDAAgD;QAChD,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAAE;YACjC,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,OAAO;gBACf,OAAO,EACL,2KAA2K;aAC9K,CAAC;SACH;QAED,OAAO;YACL,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,+FAA+F,CAAC,EAAE;SAC5G,CAAC;KACH;IAED,MAAM,qBAAqB,GACzB,eAAe,KAAK,cAAc,IAAI,cAAc,KAAK,sBAAsB,CAAC;IAElF,IAAI,CAAC,sBAAsB,IAAI,qBAAqB,EAAE;QACpD,OAAO;YACL,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,IAAI;SACb,CAAC;KACH;IAED,OAAO;QACL,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,OAAO;QACf,OAAO,EAAE;qCACwB,sBAAsB;yBAClC,cAAc;0BACb,eAAe,GAAG;KACzC,CAAC;AACJ,CAAC,CAAA,CAAC;AA/DW,QAAA,oBAAoB,wBA+D/B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/cli",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.26.2",
|
|
4
4
|
"description": "Cli инструмент для сборки и запуска приложений",
|
|
5
5
|
"files": [
|
|
6
6
|
"src",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"@tinkoff/utils": "^2.1.3",
|
|
72
72
|
"@tinkoff/webpack-dedupe-plugin": "2.0.2",
|
|
73
73
|
"@tramvai/build": "4.1.0",
|
|
74
|
-
"@tramvai/react": "3.
|
|
74
|
+
"@tramvai/react": "3.26.2",
|
|
75
75
|
"@tramvai/tools-check-versions": "0.5.3",
|
|
76
76
|
"@tramvai/tools-migrate": "0.7.3",
|
|
77
77
|
"ajv": "^8.12.0",
|
package/schema.json
CHANGED
|
@@ -1166,23 +1166,23 @@
|
|
|
1166
1166
|
"dotAll": {
|
|
1167
1167
|
"type": "boolean"
|
|
1168
1168
|
},
|
|
1169
|
-
"__@match@
|
|
1169
|
+
"__@match@6849": {
|
|
1170
1170
|
"type": "object",
|
|
1171
1171
|
"additionalProperties": false
|
|
1172
1172
|
},
|
|
1173
|
-
"__@replace@
|
|
1173
|
+
"__@replace@6851": {
|
|
1174
1174
|
"type": "object",
|
|
1175
1175
|
"additionalProperties": false
|
|
1176
1176
|
},
|
|
1177
|
-
"__@search@
|
|
1177
|
+
"__@search@6854": {
|
|
1178
1178
|
"type": "object",
|
|
1179
1179
|
"additionalProperties": false
|
|
1180
1180
|
},
|
|
1181
|
-
"__@split@
|
|
1181
|
+
"__@split@6856": {
|
|
1182
1182
|
"type": "object",
|
|
1183
1183
|
"additionalProperties": false
|
|
1184
1184
|
},
|
|
1185
|
-
"__@matchAll@
|
|
1185
|
+
"__@matchAll@6858": {
|
|
1186
1186
|
"type": "object",
|
|
1187
1187
|
"additionalProperties": false
|
|
1188
1188
|
}
|
|
@@ -1844,23 +1844,23 @@
|
|
|
1844
1844
|
"dotAll": {
|
|
1845
1845
|
"type": "boolean"
|
|
1846
1846
|
},
|
|
1847
|
-
"__@match@
|
|
1847
|
+
"__@match@6849": {
|
|
1848
1848
|
"type": "object",
|
|
1849
1849
|
"additionalProperties": false
|
|
1850
1850
|
},
|
|
1851
|
-
"__@replace@
|
|
1851
|
+
"__@replace@6851": {
|
|
1852
1852
|
"type": "object",
|
|
1853
1853
|
"additionalProperties": false
|
|
1854
1854
|
},
|
|
1855
|
-
"__@search@
|
|
1855
|
+
"__@search@6854": {
|
|
1856
1856
|
"type": "object",
|
|
1857
1857
|
"additionalProperties": false
|
|
1858
1858
|
},
|
|
1859
|
-
"__@split@
|
|
1859
|
+
"__@split@6856": {
|
|
1860
1860
|
"type": "object",
|
|
1861
1861
|
"additionalProperties": false
|
|
1862
1862
|
},
|
|
1863
|
-
"__@matchAll@
|
|
1863
|
+
"__@matchAll@6858": {
|
|
1864
1864
|
"type": "object",
|
|
1865
1865
|
"additionalProperties": false
|
|
1866
1866
|
}
|
|
@@ -2522,23 +2522,23 @@
|
|
|
2522
2522
|
"dotAll": {
|
|
2523
2523
|
"type": "boolean"
|
|
2524
2524
|
},
|
|
2525
|
-
"__@match@
|
|
2525
|
+
"__@match@6849": {
|
|
2526
2526
|
"type": "object",
|
|
2527
2527
|
"additionalProperties": false
|
|
2528
2528
|
},
|
|
2529
|
-
"__@replace@
|
|
2529
|
+
"__@replace@6851": {
|
|
2530
2530
|
"type": "object",
|
|
2531
2531
|
"additionalProperties": false
|
|
2532
2532
|
},
|
|
2533
|
-
"__@search@
|
|
2533
|
+
"__@search@6854": {
|
|
2534
2534
|
"type": "object",
|
|
2535
2535
|
"additionalProperties": false
|
|
2536
2536
|
},
|
|
2537
|
-
"__@split@
|
|
2537
|
+
"__@split@6856": {
|
|
2538
2538
|
"type": "object",
|
|
2539
2539
|
"additionalProperties": false
|
|
2540
2540
|
},
|
|
2541
|
-
"__@matchAll@
|
|
2541
|
+
"__@matchAll@6858": {
|
|
2542
2542
|
"type": "object",
|
|
2543
2543
|
"additionalProperties": false
|
|
2544
2544
|
}
|
|
@@ -1144,23 +1144,23 @@
|
|
|
1144
1144
|
"dotAll": {
|
|
1145
1145
|
"type": "boolean"
|
|
1146
1146
|
},
|
|
1147
|
-
"__@match@
|
|
1147
|
+
"__@match@6849": {
|
|
1148
1148
|
"type": "object",
|
|
1149
1149
|
"additionalProperties": false
|
|
1150
1150
|
},
|
|
1151
|
-
"__@replace@
|
|
1151
|
+
"__@replace@6851": {
|
|
1152
1152
|
"type": "object",
|
|
1153
1153
|
"additionalProperties": false
|
|
1154
1154
|
},
|
|
1155
|
-
"__@search@
|
|
1155
|
+
"__@search@6854": {
|
|
1156
1156
|
"type": "object",
|
|
1157
1157
|
"additionalProperties": false
|
|
1158
1158
|
},
|
|
1159
|
-
"__@split@
|
|
1159
|
+
"__@split@6856": {
|
|
1160
1160
|
"type": "object",
|
|
1161
1161
|
"additionalProperties": false
|
|
1162
1162
|
},
|
|
1163
|
-
"__@matchAll@
|
|
1163
|
+
"__@matchAll@6858": {
|
|
1164
1164
|
"type": "object",
|
|
1165
1165
|
"additionalProperties": false
|
|
1166
1166
|
}
|
|
@@ -1813,23 +1813,23 @@
|
|
|
1813
1813
|
"dotAll": {
|
|
1814
1814
|
"type": "boolean"
|
|
1815
1815
|
},
|
|
1816
|
-
"__@match@
|
|
1816
|
+
"__@match@6849": {
|
|
1817
1817
|
"type": "object",
|
|
1818
1818
|
"additionalProperties": false
|
|
1819
1819
|
},
|
|
1820
|
-
"__@replace@
|
|
1820
|
+
"__@replace@6851": {
|
|
1821
1821
|
"type": "object",
|
|
1822
1822
|
"additionalProperties": false
|
|
1823
1823
|
},
|
|
1824
|
-
"__@search@
|
|
1824
|
+
"__@search@6854": {
|
|
1825
1825
|
"type": "object",
|
|
1826
1826
|
"additionalProperties": false
|
|
1827
1827
|
},
|
|
1828
|
-
"__@split@
|
|
1828
|
+
"__@split@6856": {
|
|
1829
1829
|
"type": "object",
|
|
1830
1830
|
"additionalProperties": false
|
|
1831
1831
|
},
|
|
1832
|
-
"__@matchAll@
|
|
1832
|
+
"__@matchAll@6858": {
|
|
1833
1833
|
"type": "object",
|
|
1834
1834
|
"additionalProperties": false
|
|
1835
1835
|
}
|
|
@@ -2482,23 +2482,23 @@
|
|
|
2482
2482
|
"dotAll": {
|
|
2483
2483
|
"type": "boolean"
|
|
2484
2484
|
},
|
|
2485
|
-
"__@match@
|
|
2485
|
+
"__@match@6849": {
|
|
2486
2486
|
"type": "object",
|
|
2487
2487
|
"additionalProperties": false
|
|
2488
2488
|
},
|
|
2489
|
-
"__@replace@
|
|
2489
|
+
"__@replace@6851": {
|
|
2490
2490
|
"type": "object",
|
|
2491
2491
|
"additionalProperties": false
|
|
2492
2492
|
},
|
|
2493
|
-
"__@search@
|
|
2493
|
+
"__@search@6854": {
|
|
2494
2494
|
"type": "object",
|
|
2495
2495
|
"additionalProperties": false
|
|
2496
2496
|
},
|
|
2497
|
-
"__@split@
|
|
2497
|
+
"__@split@6856": {
|
|
2498
2498
|
"type": "object",
|
|
2499
2499
|
"additionalProperties": false
|
|
2500
2500
|
},
|
|
2501
|
-
"__@matchAll@
|
|
2501
|
+
"__@matchAll@6858": {
|
|
2502
2502
|
"type": "object",
|
|
2503
2503
|
"additionalProperties": false
|
|
2504
2504
|
}
|
|
@@ -2,8 +2,8 @@ import type { Configuration } from 'webpack';
|
|
|
2
2
|
import type { DeduplicateStrategy } from '@tinkoff/webpack-dedupe-plugin';
|
|
3
3
|
import type { ConfigEntry, OverridableOption } from './common';
|
|
4
4
|
|
|
5
|
+
export type TranspilationLoader = 'babel' | 'swc';
|
|
5
6
|
type SimplifiedSvgoConfig = string | { name: string; params: Record<string, any> };
|
|
6
|
-
|
|
7
7
|
type Notifications = {
|
|
8
8
|
/**
|
|
9
9
|
* @title Defines when success notifications are shown
|
|
@@ -48,7 +48,7 @@ export type TranspilationExperiments = {
|
|
|
48
48
|
* @title specify loader to transpile js-ts code
|
|
49
49
|
* @default "babel"
|
|
50
50
|
*/
|
|
51
|
-
loader: OverridableOption<
|
|
51
|
+
loader: OverridableOption<TranspilationLoader>;
|
|
52
52
|
};
|
|
53
53
|
|
|
54
54
|
export interface Experiments {
|
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
import { sync as mockResolve } from 'resolve';
|
|
2
2
|
import type { Context } from '../../models/context';
|
|
3
3
|
import { checkSwcDependencies } from './checkSwcDependencies';
|
|
4
|
+
import type { TranspilationLoader } from '../../typings/configEntry/cli';
|
|
5
|
+
|
|
6
|
+
const getContextWithLoader = (loader: TranspilationLoader) => {
|
|
7
|
+
return {
|
|
8
|
+
config: {
|
|
9
|
+
getProject: () => {
|
|
10
|
+
return {
|
|
11
|
+
experiments: {
|
|
12
|
+
transpilation: {
|
|
13
|
+
loader,
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
} as any as Context;
|
|
20
|
+
};
|
|
4
21
|
|
|
5
22
|
const mockSwcIntegration = (version, mockCliVersion, mockRootVersion) => {
|
|
6
23
|
jest.mock(
|
|
@@ -42,7 +59,7 @@ jest.mock('resolve', () => ({
|
|
|
42
59
|
|
|
43
60
|
describe('validators/checkSwcDependencies', () => {
|
|
44
61
|
const mockLog = jest.fn();
|
|
45
|
-
const context =
|
|
62
|
+
const context = getContextWithLoader('swc');
|
|
46
63
|
|
|
47
64
|
beforeEach(() => {
|
|
48
65
|
mockLog.mockClear();
|
|
@@ -50,8 +67,8 @@ describe('validators/checkSwcDependencies', () => {
|
|
|
50
67
|
(mockResolve as jest.Mock).mockClear();
|
|
51
68
|
});
|
|
52
69
|
|
|
53
|
-
it('returns ok if there is no @tramvai/swc-integration', async () => {
|
|
54
|
-
expect(await checkSwcDependencies(
|
|
70
|
+
it('returns ok if there is no @tramvai/swc-integration with babel transpiler', async () => {
|
|
71
|
+
expect(await checkSwcDependencies(getContextWithLoader('babel'), {})).toMatchInlineSnapshot(`
|
|
55
72
|
{
|
|
56
73
|
"name": "checkSwcDependencies",
|
|
57
74
|
"status": "ok",
|
|
@@ -59,6 +76,14 @@ describe('validators/checkSwcDependencies', () => {
|
|
|
59
76
|
`);
|
|
60
77
|
});
|
|
61
78
|
|
|
79
|
+
it('returns error if there is no @tramvai/swc-integration with swc transpiler', async () => {
|
|
80
|
+
const result = await checkSwcDependencies(context, {});
|
|
81
|
+
expect(result.message).toBe(
|
|
82
|
+
'@swc/core or @tramvai/swc-integration module is not found. Continue without checking dependencies. Install @tramvai/swc-integration package in case if you use swc-loader'
|
|
83
|
+
);
|
|
84
|
+
expect(result.status).toBe('error');
|
|
85
|
+
});
|
|
86
|
+
|
|
62
87
|
it('returns ok if there is @tramvai/swc-integration with correct version from root & cli', async () => {
|
|
63
88
|
mockSwcIntegration('1.0.0', '1.0.0', '1.0.0');
|
|
64
89
|
|
|
@@ -114,4 +139,12 @@ describe('validators/checkSwcDependencies', () => {
|
|
|
114
139
|
}
|
|
115
140
|
`);
|
|
116
141
|
});
|
|
142
|
+
it('returns ok with babel transpiler', async () => {
|
|
143
|
+
expect(await checkSwcDependencies(getContextWithLoader('babel'), {})).toMatchInlineSnapshot(`
|
|
144
|
+
{
|
|
145
|
+
"name": "checkSwcDependencies",
|
|
146
|
+
"status": "ok",
|
|
147
|
+
}
|
|
148
|
+
`);
|
|
149
|
+
});
|
|
117
150
|
});
|
|
@@ -1,36 +1,83 @@
|
|
|
1
1
|
import { sync as resolve } from 'resolve';
|
|
2
2
|
import type { Validator } from './validator.h';
|
|
3
|
+
import type { TranspilationExperiments, TranspilationLoader } from '../../typings/configEntry/cli';
|
|
4
|
+
|
|
5
|
+
const validator = 'checkSwcDependencies';
|
|
6
|
+
|
|
7
|
+
export const extractLoaderFromConfigEntry = (
|
|
8
|
+
transpilationExperiments?: TranspilationExperiments
|
|
9
|
+
): TranspilationLoader => {
|
|
10
|
+
const defaultTranspiler = 'babel';
|
|
11
|
+
if (!transpilationExperiments) {
|
|
12
|
+
return defaultTranspiler;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const { loader } = transpilationExperiments;
|
|
16
|
+
|
|
17
|
+
if (typeof loader === 'string') {
|
|
18
|
+
return loader as any;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return loader[process.env.NODE_ENV] ?? defaultTranspiler;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export const checkSwcDependencies: Validator = async (context, parameters) => {
|
|
25
|
+
const configEntry = context.config.getProject(parameters.target);
|
|
26
|
+
|
|
27
|
+
const loader = extractLoaderFromConfigEntry((configEntry as any)?.experiments?.transpilation);
|
|
28
|
+
|
|
29
|
+
if (loader === 'babel') {
|
|
30
|
+
return {
|
|
31
|
+
name: validator,
|
|
32
|
+
status: 'ok',
|
|
33
|
+
};
|
|
34
|
+
}
|
|
3
35
|
|
|
4
|
-
export const checkSwcDependencies: Validator = async () => {
|
|
5
36
|
const rootDir = process.cwd();
|
|
6
37
|
const packagePath = `@swc/core/package.json`;
|
|
7
|
-
const pathFromCli = resolve(packagePath);
|
|
8
|
-
const pathFromRoot = resolve(packagePath, { basedir: rootDir });
|
|
9
|
-
const pathFromRootToIntegration = resolve(`@tramvai/swc-integration/package.json`, {
|
|
10
|
-
basedir: rootDir,
|
|
11
|
-
});
|
|
12
38
|
|
|
13
39
|
let versionFromIntegration = '';
|
|
14
40
|
let versionFromRoot = '_from_root_version_';
|
|
15
41
|
let versionFromCli = '_from_cli_version_';
|
|
16
42
|
try {
|
|
43
|
+
const pathFromCli = resolve(packagePath);
|
|
44
|
+
const pathFromRoot = resolve(packagePath, { basedir: rootDir });
|
|
45
|
+
const pathFromRootToIntegration = resolve(`@tramvai/swc-integration/package.json`, {
|
|
46
|
+
basedir: rootDir,
|
|
47
|
+
});
|
|
17
48
|
versionFromIntegration = require(pathFromRootToIntegration).dependencies['@swc/core'];
|
|
18
49
|
versionFromRoot = require(pathFromRoot).version;
|
|
19
50
|
versionFromCli = require(pathFromCli).version;
|
|
20
|
-
} catch (e) {
|
|
51
|
+
} catch (e) {
|
|
52
|
+
// https://www.npmjs.com/package/resolve#methods
|
|
53
|
+
if (e.code === 'MODULE_NOT_FOUND') {
|
|
54
|
+
return {
|
|
55
|
+
name: validator,
|
|
56
|
+
status: 'error',
|
|
57
|
+
message:
|
|
58
|
+
'@swc/core or @tramvai/swc-integration module is not found. Continue without checking dependencies. Install @tramvai/swc-integration package in case if you use swc-loader',
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return {
|
|
63
|
+
name: validator,
|
|
64
|
+
status: 'error',
|
|
65
|
+
message: `Something went wrong while resolving @swc/core or @tramvai/swc-integration packages, error: ${e}`,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
21
68
|
|
|
22
69
|
const allVersionsAreCorrect =
|
|
23
70
|
versionFromRoot === versionFromCli && versionFromCli === versionFromIntegration;
|
|
24
71
|
|
|
25
72
|
if (!versionFromIntegration || allVersionsAreCorrect) {
|
|
26
73
|
return {
|
|
27
|
-
name:
|
|
74
|
+
name: validator,
|
|
28
75
|
status: 'ok',
|
|
29
76
|
};
|
|
30
77
|
}
|
|
31
78
|
|
|
32
79
|
return {
|
|
33
|
-
name:
|
|
80
|
+
name: validator,
|
|
34
81
|
status: 'error',
|
|
35
82
|
message: `Version of @swc/core mismatch between
|
|
36
83
|
@tramvai/swc-integration (version: ${versionFromIntegration}),
|