@workleap/swc-configs 2.0.0 → 2.1.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/CHANGELOG.md +6 -0
- package/dist/applyTransformers.d.mts +9 -0
- package/dist/browserslistToSwc.d.mts +9 -0
- package/dist/browserslistToSwc.d.ts +9 -0
- package/dist/browserslistToSwc.js +80 -0
- package/dist/browserslistToSwc.mjs +1 -0
- package/dist/build.d.mts +11 -0
- package/dist/build.d.ts +1 -1
- package/dist/build.js +3 -4
- package/dist/build.mjs +1 -1
- package/dist/{chunk-5BJAOXJX.mjs → chunk-4XVTQNRR.mjs} +3 -4
- package/dist/chunk-MGMFB3UY.mjs +73 -0
- package/dist/{chunk-YG2X6TFX.mjs → chunk-VPNQWY2U.mjs} +3 -4
- package/dist/dev.d.mts +12 -0
- package/dist/dev.d.ts +1 -1
- package/dist/dev.js +3 -4
- package/dist/dev.mjs +1 -1
- package/dist/index.d.mts +7 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +84 -8
- package/dist/index.mjs +3 -2
- package/dist/jest.d.mts +11 -0
- package/package.json +24 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @workleap/swc-configs
|
|
2
2
|
|
|
3
|
+
## 2.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#106](https://github.com/gsoft-inc/wl-web-configs/pull/106) [`a747302`](https://github.com/gsoft-inc/wl-web-configs/commit/a74730233d78c71e45bcd8911a706630d359a67c) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Fixed SWC targets and support TS 5.2
|
|
8
|
+
|
|
3
9
|
## 2.0.0
|
|
4
10
|
|
|
5
11
|
### Major Changes
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Config } from '@swc/core';
|
|
2
|
+
|
|
3
|
+
interface SwcConfigTransformerContext {
|
|
4
|
+
environment: "dev" | "build" | "jest";
|
|
5
|
+
}
|
|
6
|
+
type SwcConfigTransformer = (config: Config, context: SwcConfigTransformerContext) => Config;
|
|
7
|
+
declare function applyTransformers(config: Config, transformers: SwcConfigTransformer[], context: SwcConfigTransformerContext): Config;
|
|
8
|
+
|
|
9
|
+
export { SwcConfigTransformer, SwcConfigTransformerContext, applyTransformers };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import browserslist from 'browserslist';
|
|
2
|
+
|
|
3
|
+
declare function createSwcTargetsFromBrowserslistEntries(entries: string[]): Record<keyof readonly ["ie", "edge", "firefox", "chrome", "safari", "opera", "ios", "android", "op_mob", "and_chr", "and_ff", "ie_mob", "samsung"], string>;
|
|
4
|
+
interface BrowserslistToSwcOptions extends Omit<browserslist.Options, "path"> {
|
|
5
|
+
queries?: string | string[];
|
|
6
|
+
}
|
|
7
|
+
declare function browserslistToSwc(options?: BrowserslistToSwcOptions): Record<keyof readonly ["ie", "edge", "firefox", "chrome", "safari", "opera", "ios", "android", "op_mob", "and_chr", "and_ff", "ie_mob", "samsung"], string>;
|
|
8
|
+
|
|
9
|
+
export { BrowserslistToSwcOptions, browserslistToSwc, createSwcTargetsFromBrowserslistEntries };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import browserslist from 'browserslist';
|
|
2
|
+
|
|
3
|
+
declare function createSwcTargetsFromBrowserslistEntries(entries: string[]): Record<keyof readonly ["ie", "edge", "firefox", "chrome", "safari", "opera", "ios", "android", "op_mob", "and_chr", "and_ff", "ie_mob", "samsung"], string>;
|
|
4
|
+
interface BrowserslistToSwcOptions extends Omit<browserslist.Options, "path"> {
|
|
5
|
+
queries?: string | string[];
|
|
6
|
+
}
|
|
7
|
+
declare function browserslistToSwc(options?: BrowserslistToSwcOptions): Record<keyof readonly ["ie", "edge", "firefox", "chrome", "safari", "opera", "ios", "android", "op_mob", "and_chr", "and_ff", "ie_mob", "samsung"], string>;
|
|
8
|
+
|
|
9
|
+
export { BrowserslistToSwcOptions, browserslistToSwc, createSwcTargetsFromBrowserslistEntries };
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var browserslist = require('browserslist');
|
|
4
|
+
|
|
5
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
|
|
7
|
+
var browserslist__default = /*#__PURE__*/_interopDefault(browserslist);
|
|
8
|
+
|
|
9
|
+
// src/browserslistToSwc.ts
|
|
10
|
+
var SwcSupportedBrowsers = [
|
|
11
|
+
"ie",
|
|
12
|
+
"edge",
|
|
13
|
+
"firefox",
|
|
14
|
+
"chrome",
|
|
15
|
+
"safari",
|
|
16
|
+
"opera",
|
|
17
|
+
"ios",
|
|
18
|
+
"android",
|
|
19
|
+
"op_mob",
|
|
20
|
+
"and_chr",
|
|
21
|
+
"and_ff",
|
|
22
|
+
"ie_mob",
|
|
23
|
+
"samsung"
|
|
24
|
+
];
|
|
25
|
+
var SwcMobileBrowserAliases = {
|
|
26
|
+
"and_chr": "chrome",
|
|
27
|
+
"and_ff": "firefox",
|
|
28
|
+
"ie_mob": "ie",
|
|
29
|
+
"ios_saf": "ios",
|
|
30
|
+
"op_mob": "opera"
|
|
31
|
+
};
|
|
32
|
+
function parseBrowserslistEntry(entry) {
|
|
33
|
+
const values = entry.split(" ");
|
|
34
|
+
let browser = values[0];
|
|
35
|
+
let version = values[1];
|
|
36
|
+
if (SwcMobileBrowserAliases[browser]) {
|
|
37
|
+
browser = SwcMobileBrowserAliases[browser];
|
|
38
|
+
}
|
|
39
|
+
if (version.includes("-")) {
|
|
40
|
+
version = version.slice(0, version.indexOf("-"));
|
|
41
|
+
}
|
|
42
|
+
if (version.endsWith(".0")) {
|
|
43
|
+
version = version.slice(0, -2);
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
browser,
|
|
47
|
+
version
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function createSwcTargetsFromBrowserslistEntries(entries) {
|
|
51
|
+
return entries.reduce((acc, x) => {
|
|
52
|
+
const { browser, version } = parseBrowserslistEntry(x);
|
|
53
|
+
if (SwcSupportedBrowsers.indexOf(browser) === -1) {
|
|
54
|
+
return acc;
|
|
55
|
+
}
|
|
56
|
+
const _browser = browser;
|
|
57
|
+
if (acc[_browser]) {
|
|
58
|
+
if (parseFloat(acc[_browser]) > parseFloat(version)) {
|
|
59
|
+
acc[_browser] = version;
|
|
60
|
+
}
|
|
61
|
+
} else {
|
|
62
|
+
acc[_browser] = version;
|
|
63
|
+
}
|
|
64
|
+
return acc;
|
|
65
|
+
}, {});
|
|
66
|
+
}
|
|
67
|
+
function browserslistToSwc(options = {}) {
|
|
68
|
+
const {
|
|
69
|
+
queries,
|
|
70
|
+
...browserlistsOptions
|
|
71
|
+
} = options;
|
|
72
|
+
const entries = browserslist__default.default(queries, {
|
|
73
|
+
path: "./browserslistrc",
|
|
74
|
+
...browserlistsOptions
|
|
75
|
+
});
|
|
76
|
+
return createSwcTargetsFromBrowserslistEntries(entries);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
exports.browserslistToSwc = browserslistToSwc;
|
|
80
|
+
exports.createSwcTargetsFromBrowserslistEntries = createSwcTargetsFromBrowserslistEntries;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { browserslistToSwc, createSwcTargetsFromBrowserslistEntries } from './chunk-MGMFB3UY.mjs';
|
package/dist/build.d.mts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Config } from '@swc/core';
|
|
2
|
+
import { SwcConfigTransformer } from './applyTransformers.mjs';
|
|
3
|
+
|
|
4
|
+
interface DefineBuildConfigOptions {
|
|
5
|
+
targets: Record<string, string>;
|
|
6
|
+
parser?: "ecmascript" | "typescript";
|
|
7
|
+
transformers?: SwcConfigTransformer[];
|
|
8
|
+
}
|
|
9
|
+
declare function defineBuildConfig(options: DefineBuildConfigOptions): Config;
|
|
10
|
+
|
|
11
|
+
export { DefineBuildConfigOptions, defineBuildConfig };
|
package/dist/build.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Config } from '@swc/core';
|
|
|
2
2
|
import { SwcConfigTransformer } from './applyTransformers.js';
|
|
3
3
|
|
|
4
4
|
interface DefineBuildConfigOptions {
|
|
5
|
-
|
|
5
|
+
targets: Record<string, string>;
|
|
6
6
|
parser?: "ecmascript" | "typescript";
|
|
7
7
|
transformers?: SwcConfigTransformer[];
|
|
8
8
|
}
|
package/dist/build.js
CHANGED
|
@@ -8,7 +8,7 @@ function applyTransformers(config, transformers, context) {
|
|
|
8
8
|
// src/build.ts
|
|
9
9
|
function defineBuildConfig(options) {
|
|
10
10
|
const {
|
|
11
|
-
|
|
11
|
+
targets,
|
|
12
12
|
parser = "typescript",
|
|
13
13
|
transformers = []
|
|
14
14
|
} = options;
|
|
@@ -21,8 +21,6 @@ function defineBuildConfig(options) {
|
|
|
21
21
|
syntax: "typescript",
|
|
22
22
|
tsx: true
|
|
23
23
|
},
|
|
24
|
-
// The output environment that the code will be compiled for.
|
|
25
|
-
target: "esnext",
|
|
26
24
|
// View https://swc.rs/docs/configuration/minification for options.
|
|
27
25
|
minify: {
|
|
28
26
|
compress: true,
|
|
@@ -49,7 +47,8 @@ function defineBuildConfig(options) {
|
|
|
49
47
|
ignoreDynamic: true
|
|
50
48
|
},
|
|
51
49
|
env: {
|
|
52
|
-
targets
|
|
50
|
+
// jsc.target is not provided because the provided targets takes precedence.
|
|
51
|
+
targets
|
|
53
52
|
}
|
|
54
53
|
};
|
|
55
54
|
const transformedConfig = applyTransformers(config, transformers, {
|
package/dist/build.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { defineBuildConfig } from './chunk-
|
|
1
|
+
export { defineBuildConfig } from './chunk-4XVTQNRR.mjs';
|
|
2
2
|
import './chunk-3UBBOKDF.mjs';
|
|
@@ -3,7 +3,7 @@ import { applyTransformers } from './chunk-3UBBOKDF.mjs';
|
|
|
3
3
|
// src/build.ts
|
|
4
4
|
function defineBuildConfig(options) {
|
|
5
5
|
const {
|
|
6
|
-
|
|
6
|
+
targets,
|
|
7
7
|
parser = "typescript",
|
|
8
8
|
transformers = []
|
|
9
9
|
} = options;
|
|
@@ -16,8 +16,6 @@ function defineBuildConfig(options) {
|
|
|
16
16
|
syntax: "typescript",
|
|
17
17
|
tsx: true
|
|
18
18
|
},
|
|
19
|
-
// The output environment that the code will be compiled for.
|
|
20
|
-
target: "esnext",
|
|
21
19
|
// View https://swc.rs/docs/configuration/minification for options.
|
|
22
20
|
minify: {
|
|
23
21
|
compress: true,
|
|
@@ -44,7 +42,8 @@ function defineBuildConfig(options) {
|
|
|
44
42
|
ignoreDynamic: true
|
|
45
43
|
},
|
|
46
44
|
env: {
|
|
47
|
-
targets
|
|
45
|
+
// jsc.target is not provided because the provided targets takes precedence.
|
|
46
|
+
targets
|
|
48
47
|
}
|
|
49
48
|
};
|
|
50
49
|
const transformedConfig = applyTransformers(config, transformers, {
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import browserslist from 'browserslist';
|
|
2
|
+
|
|
3
|
+
// src/browserslistToSwc.ts
|
|
4
|
+
var SwcSupportedBrowsers = [
|
|
5
|
+
"ie",
|
|
6
|
+
"edge",
|
|
7
|
+
"firefox",
|
|
8
|
+
"chrome",
|
|
9
|
+
"safari",
|
|
10
|
+
"opera",
|
|
11
|
+
"ios",
|
|
12
|
+
"android",
|
|
13
|
+
"op_mob",
|
|
14
|
+
"and_chr",
|
|
15
|
+
"and_ff",
|
|
16
|
+
"ie_mob",
|
|
17
|
+
"samsung"
|
|
18
|
+
];
|
|
19
|
+
var SwcMobileBrowserAliases = {
|
|
20
|
+
"and_chr": "chrome",
|
|
21
|
+
"and_ff": "firefox",
|
|
22
|
+
"ie_mob": "ie",
|
|
23
|
+
"ios_saf": "ios",
|
|
24
|
+
"op_mob": "opera"
|
|
25
|
+
};
|
|
26
|
+
function parseBrowserslistEntry(entry) {
|
|
27
|
+
const values = entry.split(" ");
|
|
28
|
+
let browser = values[0];
|
|
29
|
+
let version = values[1];
|
|
30
|
+
if (SwcMobileBrowserAliases[browser]) {
|
|
31
|
+
browser = SwcMobileBrowserAliases[browser];
|
|
32
|
+
}
|
|
33
|
+
if (version.includes("-")) {
|
|
34
|
+
version = version.slice(0, version.indexOf("-"));
|
|
35
|
+
}
|
|
36
|
+
if (version.endsWith(".0")) {
|
|
37
|
+
version = version.slice(0, -2);
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
browser,
|
|
41
|
+
version
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function createSwcTargetsFromBrowserslistEntries(entries) {
|
|
45
|
+
return entries.reduce((acc, x) => {
|
|
46
|
+
const { browser, version } = parseBrowserslistEntry(x);
|
|
47
|
+
if (SwcSupportedBrowsers.indexOf(browser) === -1) {
|
|
48
|
+
return acc;
|
|
49
|
+
}
|
|
50
|
+
const _browser = browser;
|
|
51
|
+
if (acc[_browser]) {
|
|
52
|
+
if (parseFloat(acc[_browser]) > parseFloat(version)) {
|
|
53
|
+
acc[_browser] = version;
|
|
54
|
+
}
|
|
55
|
+
} else {
|
|
56
|
+
acc[_browser] = version;
|
|
57
|
+
}
|
|
58
|
+
return acc;
|
|
59
|
+
}, {});
|
|
60
|
+
}
|
|
61
|
+
function browserslistToSwc(options = {}) {
|
|
62
|
+
const {
|
|
63
|
+
queries,
|
|
64
|
+
...browserlistsOptions
|
|
65
|
+
} = options;
|
|
66
|
+
const entries = browserslist(queries, {
|
|
67
|
+
path: "./browserslistrc",
|
|
68
|
+
...browserlistsOptions
|
|
69
|
+
});
|
|
70
|
+
return createSwcTargetsFromBrowserslistEntries(entries);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export { browserslistToSwc, createSwcTargetsFromBrowserslistEntries };
|
|
@@ -3,7 +3,7 @@ import { applyTransformers } from './chunk-3UBBOKDF.mjs';
|
|
|
3
3
|
// src/dev.ts
|
|
4
4
|
function defineDevConfig(options) {
|
|
5
5
|
const {
|
|
6
|
-
|
|
6
|
+
targets,
|
|
7
7
|
fastRefresh = false,
|
|
8
8
|
parser = "typescript",
|
|
9
9
|
transformers = []
|
|
@@ -17,8 +17,6 @@ function defineDevConfig(options) {
|
|
|
17
17
|
syntax: "typescript",
|
|
18
18
|
tsx: true
|
|
19
19
|
},
|
|
20
|
-
// The output environment that the code will be compiled for.
|
|
21
|
-
target: "esnext",
|
|
22
20
|
transform: {
|
|
23
21
|
react: {
|
|
24
22
|
// Use "react/jsx-runtime".
|
|
@@ -43,7 +41,8 @@ function defineDevConfig(options) {
|
|
|
43
41
|
ignoreDynamic: true
|
|
44
42
|
},
|
|
45
43
|
env: {
|
|
46
|
-
targets
|
|
44
|
+
// jsc.target is not provided because the provided targets takes precedence.
|
|
45
|
+
targets
|
|
47
46
|
}
|
|
48
47
|
};
|
|
49
48
|
const transformedConfig = applyTransformers(config, transformers, {
|
package/dist/dev.d.mts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Config } from '@swc/core';
|
|
2
|
+
import { SwcConfigTransformer } from './applyTransformers.mjs';
|
|
3
|
+
|
|
4
|
+
interface DefineDevConfigOptions {
|
|
5
|
+
targets: Record<string, string>;
|
|
6
|
+
fastRefresh?: boolean;
|
|
7
|
+
parser?: "ecmascript" | "typescript";
|
|
8
|
+
transformers?: SwcConfigTransformer[];
|
|
9
|
+
}
|
|
10
|
+
declare function defineDevConfig(options: DefineDevConfigOptions): Config;
|
|
11
|
+
|
|
12
|
+
export { DefineDevConfigOptions, defineDevConfig };
|
package/dist/dev.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Config } from '@swc/core';
|
|
|
2
2
|
import { SwcConfigTransformer } from './applyTransformers.js';
|
|
3
3
|
|
|
4
4
|
interface DefineDevConfigOptions {
|
|
5
|
-
|
|
5
|
+
targets: Record<string, string>;
|
|
6
6
|
fastRefresh?: boolean;
|
|
7
7
|
parser?: "ecmascript" | "typescript";
|
|
8
8
|
transformers?: SwcConfigTransformer[];
|
package/dist/dev.js
CHANGED
|
@@ -8,7 +8,7 @@ function applyTransformers(config, transformers, context) {
|
|
|
8
8
|
// src/dev.ts
|
|
9
9
|
function defineDevConfig(options) {
|
|
10
10
|
const {
|
|
11
|
-
|
|
11
|
+
targets,
|
|
12
12
|
fastRefresh = false,
|
|
13
13
|
parser = "typescript",
|
|
14
14
|
transformers = []
|
|
@@ -22,8 +22,6 @@ function defineDevConfig(options) {
|
|
|
22
22
|
syntax: "typescript",
|
|
23
23
|
tsx: true
|
|
24
24
|
},
|
|
25
|
-
// The output environment that the code will be compiled for.
|
|
26
|
-
target: "esnext",
|
|
27
25
|
transform: {
|
|
28
26
|
react: {
|
|
29
27
|
// Use "react/jsx-runtime".
|
|
@@ -48,7 +46,8 @@ function defineDevConfig(options) {
|
|
|
48
46
|
ignoreDynamic: true
|
|
49
47
|
},
|
|
50
48
|
env: {
|
|
51
|
-
targets
|
|
49
|
+
// jsc.target is not provided because the provided targets takes precedence.
|
|
50
|
+
targets
|
|
52
51
|
}
|
|
53
52
|
};
|
|
54
53
|
const transformedConfig = applyTransformers(config, transformers, {
|
package/dist/dev.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { defineDevConfig } from './chunk-
|
|
1
|
+
export { defineDevConfig } from './chunk-VPNQWY2U.mjs';
|
|
2
2
|
import './chunk-3UBBOKDF.mjs';
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { Config as SwcConfig } from '@swc/core';
|
|
2
|
+
export { SwcConfigTransformer, SwcConfigTransformerContext } from './applyTransformers.mjs';
|
|
3
|
+
export { BrowserslistToSwcOptions, browserslistToSwc, createSwcTargetsFromBrowserslistEntries } from './browserslistToSwc.mjs';
|
|
4
|
+
export { DefineBuildConfigOptions, defineBuildConfig } from './build.mjs';
|
|
5
|
+
export { DefineDevConfigOptions, defineDevConfig } from './dev.mjs';
|
|
6
|
+
export { DefineJestConfigOptions, defineJestConfig } from './jest.mjs';
|
|
7
|
+
import 'browserslist';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { Config as SwcConfig } from '@swc/core';
|
|
2
2
|
export { SwcConfigTransformer, SwcConfigTransformerContext } from './applyTransformers.js';
|
|
3
|
+
export { BrowserslistToSwcOptions, browserslistToSwc, createSwcTargetsFromBrowserslistEntries } from './browserslistToSwc.js';
|
|
3
4
|
export { DefineBuildConfigOptions, defineBuildConfig } from './build.js';
|
|
4
5
|
export { DefineDevConfigOptions, defineDevConfig } from './dev.js';
|
|
5
6
|
export { DefineJestConfigOptions, defineJestConfig } from './jest.js';
|
|
7
|
+
import 'browserslist';
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,81 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var browserslist = require('browserslist');
|
|
4
|
+
|
|
5
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
|
|
7
|
+
var browserslist__default = /*#__PURE__*/_interopDefault(browserslist);
|
|
8
|
+
|
|
9
|
+
// src/browserslistToSwc.ts
|
|
10
|
+
var SwcSupportedBrowsers = [
|
|
11
|
+
"ie",
|
|
12
|
+
"edge",
|
|
13
|
+
"firefox",
|
|
14
|
+
"chrome",
|
|
15
|
+
"safari",
|
|
16
|
+
"opera",
|
|
17
|
+
"ios",
|
|
18
|
+
"android",
|
|
19
|
+
"op_mob",
|
|
20
|
+
"and_chr",
|
|
21
|
+
"and_ff",
|
|
22
|
+
"ie_mob",
|
|
23
|
+
"samsung"
|
|
24
|
+
];
|
|
25
|
+
var SwcMobileBrowserAliases = {
|
|
26
|
+
"and_chr": "chrome",
|
|
27
|
+
"and_ff": "firefox",
|
|
28
|
+
"ie_mob": "ie",
|
|
29
|
+
"ios_saf": "ios",
|
|
30
|
+
"op_mob": "opera"
|
|
31
|
+
};
|
|
32
|
+
function parseBrowserslistEntry(entry) {
|
|
33
|
+
const values = entry.split(" ");
|
|
34
|
+
let browser = values[0];
|
|
35
|
+
let version = values[1];
|
|
36
|
+
if (SwcMobileBrowserAliases[browser]) {
|
|
37
|
+
browser = SwcMobileBrowserAliases[browser];
|
|
38
|
+
}
|
|
39
|
+
if (version.includes("-")) {
|
|
40
|
+
version = version.slice(0, version.indexOf("-"));
|
|
41
|
+
}
|
|
42
|
+
if (version.endsWith(".0")) {
|
|
43
|
+
version = version.slice(0, -2);
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
browser,
|
|
47
|
+
version
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function createSwcTargetsFromBrowserslistEntries(entries) {
|
|
51
|
+
return entries.reduce((acc, x) => {
|
|
52
|
+
const { browser, version } = parseBrowserslistEntry(x);
|
|
53
|
+
if (SwcSupportedBrowsers.indexOf(browser) === -1) {
|
|
54
|
+
return acc;
|
|
55
|
+
}
|
|
56
|
+
const _browser = browser;
|
|
57
|
+
if (acc[_browser]) {
|
|
58
|
+
if (parseFloat(acc[_browser]) > parseFloat(version)) {
|
|
59
|
+
acc[_browser] = version;
|
|
60
|
+
}
|
|
61
|
+
} else {
|
|
62
|
+
acc[_browser] = version;
|
|
63
|
+
}
|
|
64
|
+
return acc;
|
|
65
|
+
}, {});
|
|
66
|
+
}
|
|
67
|
+
function browserslistToSwc(options = {}) {
|
|
68
|
+
const {
|
|
69
|
+
queries,
|
|
70
|
+
...browserlistsOptions
|
|
71
|
+
} = options;
|
|
72
|
+
const entries = browserslist__default.default(queries, {
|
|
73
|
+
path: "./browserslistrc",
|
|
74
|
+
...browserlistsOptions
|
|
75
|
+
});
|
|
76
|
+
return createSwcTargetsFromBrowserslistEntries(entries);
|
|
77
|
+
}
|
|
78
|
+
|
|
3
79
|
// src/applyTransformers.ts
|
|
4
80
|
function applyTransformers(config, transformers, context) {
|
|
5
81
|
return transformers.reduce((acc, transformer) => transformer(acc, context), config);
|
|
@@ -8,7 +84,7 @@ function applyTransformers(config, transformers, context) {
|
|
|
8
84
|
// src/build.ts
|
|
9
85
|
function defineBuildConfig(options) {
|
|
10
86
|
const {
|
|
11
|
-
|
|
87
|
+
targets,
|
|
12
88
|
parser = "typescript",
|
|
13
89
|
transformers = []
|
|
14
90
|
} = options;
|
|
@@ -21,8 +97,6 @@ function defineBuildConfig(options) {
|
|
|
21
97
|
syntax: "typescript",
|
|
22
98
|
tsx: true
|
|
23
99
|
},
|
|
24
|
-
// The output environment that the code will be compiled for.
|
|
25
|
-
target: "esnext",
|
|
26
100
|
// View https://swc.rs/docs/configuration/minification for options.
|
|
27
101
|
minify: {
|
|
28
102
|
compress: true,
|
|
@@ -49,7 +123,8 @@ function defineBuildConfig(options) {
|
|
|
49
123
|
ignoreDynamic: true
|
|
50
124
|
},
|
|
51
125
|
env: {
|
|
52
|
-
targets
|
|
126
|
+
// jsc.target is not provided because the provided targets takes precedence.
|
|
127
|
+
targets
|
|
53
128
|
}
|
|
54
129
|
};
|
|
55
130
|
const transformedConfig = applyTransformers(config, transformers, {
|
|
@@ -61,7 +136,7 @@ function defineBuildConfig(options) {
|
|
|
61
136
|
// src/dev.ts
|
|
62
137
|
function defineDevConfig(options) {
|
|
63
138
|
const {
|
|
64
|
-
|
|
139
|
+
targets,
|
|
65
140
|
fastRefresh = false,
|
|
66
141
|
parser = "typescript",
|
|
67
142
|
transformers = []
|
|
@@ -75,8 +150,6 @@ function defineDevConfig(options) {
|
|
|
75
150
|
syntax: "typescript",
|
|
76
151
|
tsx: true
|
|
77
152
|
},
|
|
78
|
-
// The output environment that the code will be compiled for.
|
|
79
|
-
target: "esnext",
|
|
80
153
|
transform: {
|
|
81
154
|
react: {
|
|
82
155
|
// Use "react/jsx-runtime".
|
|
@@ -101,7 +174,8 @@ function defineDevConfig(options) {
|
|
|
101
174
|
ignoreDynamic: true
|
|
102
175
|
},
|
|
103
176
|
env: {
|
|
104
|
-
targets
|
|
177
|
+
// jsc.target is not provided because the provided targets takes precedence.
|
|
178
|
+
targets
|
|
105
179
|
}
|
|
106
180
|
};
|
|
107
181
|
const transformedConfig = applyTransformers(config, transformers, {
|
|
@@ -152,6 +226,8 @@ function defineJestConfig(options = {}) {
|
|
|
152
226
|
return transformedConfig;
|
|
153
227
|
}
|
|
154
228
|
|
|
229
|
+
exports.browserslistToSwc = browserslistToSwc;
|
|
230
|
+
exports.createSwcTargetsFromBrowserslistEntries = createSwcTargetsFromBrowserslistEntries;
|
|
155
231
|
exports.defineBuildConfig = defineBuildConfig;
|
|
156
232
|
exports.defineDevConfig = defineDevConfig;
|
|
157
233
|
exports.defineJestConfig = defineJestConfig;
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { browserslistToSwc, createSwcTargetsFromBrowserslistEntries } from './chunk-MGMFB3UY.mjs';
|
|
2
|
+
export { defineBuildConfig } from './chunk-4XVTQNRR.mjs';
|
|
3
|
+
export { defineDevConfig } from './chunk-VPNQWY2U.mjs';
|
|
3
4
|
export { defineJestConfig } from './chunk-MYINGMHM.mjs';
|
|
4
5
|
import './chunk-3UBBOKDF.mjs';
|
package/dist/jest.d.mts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Config } from '@swc/core';
|
|
2
|
+
import { SwcConfigTransformer } from './applyTransformers.mjs';
|
|
3
|
+
|
|
4
|
+
interface DefineJestConfigOptions {
|
|
5
|
+
react?: boolean;
|
|
6
|
+
parser?: "ecmascript" | "typescript";
|
|
7
|
+
transformers?: SwcConfigTransformer[];
|
|
8
|
+
}
|
|
9
|
+
declare function defineJestConfig(options?: DefineJestConfigOptions): Config;
|
|
10
|
+
|
|
11
|
+
export { DefineJestConfigOptions, defineJestConfig };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workleap/swc-configs",
|
|
3
3
|
"description": "Workleap recommended SWC configs.",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.1.0",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"workleap",
|
|
@@ -10,12 +10,17 @@
|
|
|
10
10
|
],
|
|
11
11
|
"exports": {
|
|
12
12
|
".": {
|
|
13
|
-
"require":
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
"require": {
|
|
14
|
+
"default": "./dist/index.js",
|
|
15
|
+
"types": "./dist/index.d.ts"
|
|
16
|
+
},
|
|
17
|
+
"import": {
|
|
18
|
+
"default": "./dist/index.mjs",
|
|
19
|
+
"types": "./dist/index.d.mts"
|
|
20
|
+
}
|
|
17
21
|
}
|
|
18
22
|
},
|
|
23
|
+
"types": "./dist/index.d.ts",
|
|
19
24
|
"files": [
|
|
20
25
|
"dist",
|
|
21
26
|
"CHANGELOG.md",
|
|
@@ -27,26 +32,31 @@
|
|
|
27
32
|
"directory": "packages/swc-configs"
|
|
28
33
|
},
|
|
29
34
|
"devDependencies": {
|
|
30
|
-
"@swc/core": "1.3.
|
|
35
|
+
"@swc/core": "1.3.80",
|
|
31
36
|
"@swc/helpers": "0.5.1",
|
|
32
|
-
"@swc/jest": "0.2.
|
|
33
|
-
"@types/jest": "29.5.
|
|
34
|
-
"
|
|
37
|
+
"@swc/jest": "0.2.29",
|
|
38
|
+
"@types/jest": "29.5.4",
|
|
39
|
+
"browserslist": "4.21.10",
|
|
40
|
+
"jest": "29.6.4",
|
|
35
41
|
"ts-node": "10.9.1",
|
|
36
|
-
"tsup": "
|
|
37
|
-
"typescript": "5.
|
|
38
|
-
"@workleap/eslint-plugin": "2.
|
|
42
|
+
"tsup": "7.2.0",
|
|
43
|
+
"typescript": "5.2.2",
|
|
44
|
+
"@workleap/eslint-plugin": "2.1.0",
|
|
39
45
|
"@workleap/tsup-configs": "3.0.0",
|
|
40
|
-
"@workleap/typescript-configs": "3.0.
|
|
46
|
+
"@workleap/typescript-configs": "3.0.1"
|
|
41
47
|
},
|
|
42
48
|
"peerDependencies": {
|
|
43
49
|
"@swc/core": "*",
|
|
44
50
|
"@swc/helpers": "*",
|
|
45
|
-
"@swc/jest": "*"
|
|
51
|
+
"@swc/jest": "*",
|
|
52
|
+
"browserslist": "*"
|
|
46
53
|
},
|
|
47
54
|
"peerDependenciesMeta": {
|
|
48
55
|
"@swc/jest": {
|
|
49
56
|
"optional": true
|
|
57
|
+
},
|
|
58
|
+
"browserslist": {
|
|
59
|
+
"optional": true
|
|
50
60
|
}
|
|
51
61
|
},
|
|
52
62
|
"publishConfig": {
|