@workleap/swc-configs 2.0.0 → 2.1.1
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 +12 -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 +10 -0
- package/dist/build.d.ts +1 -2
- package/dist/build.js +3 -5
- package/dist/build.mjs +1 -1
- package/dist/{chunk-YG2X6TFX.mjs → chunk-HMVMGPPX.mjs} +4 -6
- package/dist/chunk-MGMFB3UY.mjs +73 -0
- package/dist/{chunk-5BJAOXJX.mjs → chunk-PTGQ44ZX.mjs} +3 -5
- package/dist/dev.d.mts +11 -0
- package/dist/dev.d.ts +1 -2
- package/dist/dev.js +4 -6
- package/dist/dev.mjs +1 -1
- package/dist/index.d.mts +7 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +85 -11
- 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,17 @@
|
|
|
1
1
|
# @workleap/swc-configs
|
|
2
2
|
|
|
3
|
+
## 2.1.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#120](https://github.com/gsoft-inc/wl-web-configs/pull/120) [`0e66000`](https://github.com/gsoft-inc/wl-web-configs/commit/0e66000b2028cad9c606d3523e3bcf540e6350e2) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Updated configs
|
|
8
|
+
|
|
9
|
+
## 2.1.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- [#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
|
|
14
|
+
|
|
3
15
|
## 2.0.0
|
|
4
16
|
|
|
5
17
|
### 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,10 @@
|
|
|
1
|
+
import { Config } from '@swc/core';
|
|
2
|
+
import { SwcConfigTransformer } from './applyTransformers.mjs';
|
|
3
|
+
|
|
4
|
+
interface DefineBuildConfigOptions {
|
|
5
|
+
parser?: "ecmascript" | "typescript";
|
|
6
|
+
transformers?: SwcConfigTransformer[];
|
|
7
|
+
}
|
|
8
|
+
declare function defineBuildConfig(targets: Record<string, string>, options?: DefineBuildConfigOptions): Config;
|
|
9
|
+
|
|
10
|
+
export { DefineBuildConfigOptions, defineBuildConfig };
|
package/dist/build.d.ts
CHANGED
|
@@ -2,10 +2,9 @@ import { Config } from '@swc/core';
|
|
|
2
2
|
import { SwcConfigTransformer } from './applyTransformers.js';
|
|
3
3
|
|
|
4
4
|
interface DefineBuildConfigOptions {
|
|
5
|
-
browsers: any;
|
|
6
5
|
parser?: "ecmascript" | "typescript";
|
|
7
6
|
transformers?: SwcConfigTransformer[];
|
|
8
7
|
}
|
|
9
|
-
declare function defineBuildConfig(
|
|
8
|
+
declare function defineBuildConfig(targets: Record<string, string>, options?: DefineBuildConfigOptions): Config;
|
|
10
9
|
|
|
11
10
|
export { DefineBuildConfigOptions, defineBuildConfig };
|
package/dist/build.js
CHANGED
|
@@ -6,9 +6,8 @@ function applyTransformers(config, transformers, context) {
|
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
// src/build.ts
|
|
9
|
-
function defineBuildConfig(options) {
|
|
9
|
+
function defineBuildConfig(targets, options = {}) {
|
|
10
10
|
const {
|
|
11
|
-
browsers,
|
|
12
11
|
parser = "typescript",
|
|
13
12
|
transformers = []
|
|
14
13
|
} = options;
|
|
@@ -21,8 +20,6 @@ function defineBuildConfig(options) {
|
|
|
21
20
|
syntax: "typescript",
|
|
22
21
|
tsx: true
|
|
23
22
|
},
|
|
24
|
-
// The output environment that the code will be compiled for.
|
|
25
|
-
target: "esnext",
|
|
26
23
|
// View https://swc.rs/docs/configuration/minification for options.
|
|
27
24
|
minify: {
|
|
28
25
|
compress: true,
|
|
@@ -49,7 +46,8 @@ function defineBuildConfig(options) {
|
|
|
49
46
|
ignoreDynamic: true
|
|
50
47
|
},
|
|
51
48
|
env: {
|
|
52
|
-
targets
|
|
49
|
+
// jsc.target is not provided because the provided targets takes precedence.
|
|
50
|
+
targets
|
|
53
51
|
}
|
|
54
52
|
};
|
|
55
53
|
const transformedConfig = applyTransformers(config, transformers, {
|
package/dist/build.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { defineBuildConfig } from './chunk-
|
|
1
|
+
export { defineBuildConfig } from './chunk-PTGQ44ZX.mjs';
|
|
2
2
|
import './chunk-3UBBOKDF.mjs';
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { applyTransformers } from './chunk-3UBBOKDF.mjs';
|
|
2
2
|
|
|
3
3
|
// src/dev.ts
|
|
4
|
-
function defineDevConfig(options) {
|
|
4
|
+
function defineDevConfig(targets, options = {}) {
|
|
5
5
|
const {
|
|
6
|
-
|
|
7
|
-
fastRefresh = false,
|
|
6
|
+
fastRefresh = true,
|
|
8
7
|
parser = "typescript",
|
|
9
8
|
transformers = []
|
|
10
9
|
} = options;
|
|
@@ -17,8 +16,6 @@ function defineDevConfig(options) {
|
|
|
17
16
|
syntax: "typescript",
|
|
18
17
|
tsx: true
|
|
19
18
|
},
|
|
20
|
-
// The output environment that the code will be compiled for.
|
|
21
|
-
target: "esnext",
|
|
22
19
|
transform: {
|
|
23
20
|
react: {
|
|
24
21
|
// Use "react/jsx-runtime".
|
|
@@ -43,7 +40,8 @@ function defineDevConfig(options) {
|
|
|
43
40
|
ignoreDynamic: true
|
|
44
41
|
},
|
|
45
42
|
env: {
|
|
46
|
-
targets
|
|
43
|
+
// jsc.target is not provided because the provided targets takes precedence.
|
|
44
|
+
targets
|
|
47
45
|
}
|
|
48
46
|
};
|
|
49
47
|
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 };
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { applyTransformers } from './chunk-3UBBOKDF.mjs';
|
|
2
2
|
|
|
3
3
|
// src/build.ts
|
|
4
|
-
function defineBuildConfig(options) {
|
|
4
|
+
function defineBuildConfig(targets, options = {}) {
|
|
5
5
|
const {
|
|
6
|
-
browsers,
|
|
7
6
|
parser = "typescript",
|
|
8
7
|
transformers = []
|
|
9
8
|
} = options;
|
|
@@ -16,8 +15,6 @@ function defineBuildConfig(options) {
|
|
|
16
15
|
syntax: "typescript",
|
|
17
16
|
tsx: true
|
|
18
17
|
},
|
|
19
|
-
// The output environment that the code will be compiled for.
|
|
20
|
-
target: "esnext",
|
|
21
18
|
// View https://swc.rs/docs/configuration/minification for options.
|
|
22
19
|
minify: {
|
|
23
20
|
compress: true,
|
|
@@ -44,7 +41,8 @@ function defineBuildConfig(options) {
|
|
|
44
41
|
ignoreDynamic: true
|
|
45
42
|
},
|
|
46
43
|
env: {
|
|
47
|
-
targets
|
|
44
|
+
// jsc.target is not provided because the provided targets takes precedence.
|
|
45
|
+
targets
|
|
48
46
|
}
|
|
49
47
|
};
|
|
50
48
|
const transformedConfig = applyTransformers(config, transformers, {
|
package/dist/dev.d.mts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Config } from '@swc/core';
|
|
2
|
+
import { SwcConfigTransformer } from './applyTransformers.mjs';
|
|
3
|
+
|
|
4
|
+
interface DefineDevConfigOptions {
|
|
5
|
+
fastRefresh?: boolean;
|
|
6
|
+
parser?: "ecmascript" | "typescript";
|
|
7
|
+
transformers?: SwcConfigTransformer[];
|
|
8
|
+
}
|
|
9
|
+
declare function defineDevConfig(targets: Record<string, string>, options?: DefineDevConfigOptions): Config;
|
|
10
|
+
|
|
11
|
+
export { DefineDevConfigOptions, defineDevConfig };
|
package/dist/dev.d.ts
CHANGED
|
@@ -2,11 +2,10 @@ import { Config } from '@swc/core';
|
|
|
2
2
|
import { SwcConfigTransformer } from './applyTransformers.js';
|
|
3
3
|
|
|
4
4
|
interface DefineDevConfigOptions {
|
|
5
|
-
browsers: any;
|
|
6
5
|
fastRefresh?: boolean;
|
|
7
6
|
parser?: "ecmascript" | "typescript";
|
|
8
7
|
transformers?: SwcConfigTransformer[];
|
|
9
8
|
}
|
|
10
|
-
declare function defineDevConfig(
|
|
9
|
+
declare function defineDevConfig(targets: Record<string, string>, options?: DefineDevConfigOptions): Config;
|
|
11
10
|
|
|
12
11
|
export { DefineDevConfigOptions, defineDevConfig };
|
package/dist/dev.js
CHANGED
|
@@ -6,10 +6,9 @@ function applyTransformers(config, transformers, context) {
|
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
// src/dev.ts
|
|
9
|
-
function defineDevConfig(options) {
|
|
9
|
+
function defineDevConfig(targets, options = {}) {
|
|
10
10
|
const {
|
|
11
|
-
|
|
12
|
-
fastRefresh = false,
|
|
11
|
+
fastRefresh = true,
|
|
13
12
|
parser = "typescript",
|
|
14
13
|
transformers = []
|
|
15
14
|
} = options;
|
|
@@ -22,8 +21,6 @@ function defineDevConfig(options) {
|
|
|
22
21
|
syntax: "typescript",
|
|
23
22
|
tsx: true
|
|
24
23
|
},
|
|
25
|
-
// The output environment that the code will be compiled for.
|
|
26
|
-
target: "esnext",
|
|
27
24
|
transform: {
|
|
28
25
|
react: {
|
|
29
26
|
// Use "react/jsx-runtime".
|
|
@@ -48,7 +45,8 @@ function defineDevConfig(options) {
|
|
|
48
45
|
ignoreDynamic: true
|
|
49
46
|
},
|
|
50
47
|
env: {
|
|
51
|
-
targets
|
|
48
|
+
// jsc.target is not provided because the provided targets takes precedence.
|
|
49
|
+
targets
|
|
52
50
|
}
|
|
53
51
|
};
|
|
54
52
|
const transformedConfig = applyTransformers(config, transformers, {
|
package/dist/dev.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { defineDevConfig } from './chunk-
|
|
1
|
+
export { defineDevConfig } from './chunk-HMVMGPPX.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,14 +1,89 @@
|
|
|
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);
|
|
6
82
|
}
|
|
7
83
|
|
|
8
84
|
// src/build.ts
|
|
9
|
-
function defineBuildConfig(options) {
|
|
85
|
+
function defineBuildConfig(targets, options = {}) {
|
|
10
86
|
const {
|
|
11
|
-
browsers,
|
|
12
87
|
parser = "typescript",
|
|
13
88
|
transformers = []
|
|
14
89
|
} = options;
|
|
@@ -21,8 +96,6 @@ function defineBuildConfig(options) {
|
|
|
21
96
|
syntax: "typescript",
|
|
22
97
|
tsx: true
|
|
23
98
|
},
|
|
24
|
-
// The output environment that the code will be compiled for.
|
|
25
|
-
target: "esnext",
|
|
26
99
|
// View https://swc.rs/docs/configuration/minification for options.
|
|
27
100
|
minify: {
|
|
28
101
|
compress: true,
|
|
@@ -49,7 +122,8 @@ function defineBuildConfig(options) {
|
|
|
49
122
|
ignoreDynamic: true
|
|
50
123
|
},
|
|
51
124
|
env: {
|
|
52
|
-
targets
|
|
125
|
+
// jsc.target is not provided because the provided targets takes precedence.
|
|
126
|
+
targets
|
|
53
127
|
}
|
|
54
128
|
};
|
|
55
129
|
const transformedConfig = applyTransformers(config, transformers, {
|
|
@@ -59,10 +133,9 @@ function defineBuildConfig(options) {
|
|
|
59
133
|
}
|
|
60
134
|
|
|
61
135
|
// src/dev.ts
|
|
62
|
-
function defineDevConfig(options) {
|
|
136
|
+
function defineDevConfig(targets, options = {}) {
|
|
63
137
|
const {
|
|
64
|
-
|
|
65
|
-
fastRefresh = false,
|
|
138
|
+
fastRefresh = true,
|
|
66
139
|
parser = "typescript",
|
|
67
140
|
transformers = []
|
|
68
141
|
} = options;
|
|
@@ -75,8 +148,6 @@ function defineDevConfig(options) {
|
|
|
75
148
|
syntax: "typescript",
|
|
76
149
|
tsx: true
|
|
77
150
|
},
|
|
78
|
-
// The output environment that the code will be compiled for.
|
|
79
|
-
target: "esnext",
|
|
80
151
|
transform: {
|
|
81
152
|
react: {
|
|
82
153
|
// Use "react/jsx-runtime".
|
|
@@ -101,7 +172,8 @@ function defineDevConfig(options) {
|
|
|
101
172
|
ignoreDynamic: true
|
|
102
173
|
},
|
|
103
174
|
env: {
|
|
104
|
-
targets
|
|
175
|
+
// jsc.target is not provided because the provided targets takes precedence.
|
|
176
|
+
targets
|
|
105
177
|
}
|
|
106
178
|
};
|
|
107
179
|
const transformedConfig = applyTransformers(config, transformers, {
|
|
@@ -152,6 +224,8 @@ function defineJestConfig(options = {}) {
|
|
|
152
224
|
return transformedConfig;
|
|
153
225
|
}
|
|
154
226
|
|
|
227
|
+
exports.browserslistToSwc = browserslistToSwc;
|
|
228
|
+
exports.createSwcTargetsFromBrowserslistEntries = createSwcTargetsFromBrowserslistEntries;
|
|
155
229
|
exports.defineBuildConfig = defineBuildConfig;
|
|
156
230
|
exports.defineDevConfig = defineDevConfig;
|
|
157
231
|
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-PTGQ44ZX.mjs';
|
|
3
|
+
export { defineDevConfig } from './chunk-HMVMGPPX.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.1",
|
|
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
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"default": "./dist/index.js"
|
|
16
|
+
},
|
|
17
|
+
"import": {
|
|
18
|
+
"types": "./dist/index.d.mts",
|
|
19
|
+
"default": "./dist/index.mjs"
|
|
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.82",
|
|
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.2"
|
|
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": {
|