1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.enginesToBabelTargets = enginesToBabelTargets;
|
7 | exports.getMinSemver = getMinSemver;
|
8 |
|
9 | var _assert = _interopRequireDefault(require("assert"));
|
10 |
|
11 | var _semver = _interopRequireDefault(require("semver"));
|
12 |
|
13 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
14 |
|
15 |
|
16 |
|
17 | const ESMODULE_BROWSERS = ['not ie <= 11', 'not edge < 16', 'not firefox < 60', 'not chrome < 61', 'not safari < 11', 'not opera < 48', 'not ios_saf < 11', 'not op_mini all', 'not android < 76', 'not blackberry > 0', 'not op_mob > 0', 'not and_chr < 76', 'not and_ff < 68', 'not ie_mob > 0', 'not and_uc > 0', 'not samsung < 8.2', 'not and_qq > 0', 'not baidu > 0', 'not kaios > 0'];
|
18 |
|
19 | function enginesToBabelTargets(env) {
|
20 |
|
21 |
|
22 |
|
23 |
|
24 | let targets = {};
|
25 |
|
26 | for (let engineName of Object.keys(env.engines)) {
|
27 | let engineValue = env.engines[engineName];
|
28 |
|
29 |
|
30 | if (engineName === 'browsers') {
|
31 | targets[engineName] = engineValue;
|
32 | } else {
|
33 | var _minVersion;
|
34 |
|
35 | (0, _assert.default)(typeof engineValue === 'string');
|
36 | let minVersion = getMinSemver(engineValue);
|
37 | targets[engineName] = (_minVersion = minVersion) !== null && _minVersion !== void 0 ? _minVersion : engineValue;
|
38 | }
|
39 | }
|
40 |
|
41 | if (env.outputFormat === 'esmodule' && env.isBrowser()) {
|
42 |
|
43 |
|
44 |
|
45 |
|
46 | if (targets.browsers) {
|
47 | let browsers = Array.isArray(targets.browsers) ? targets.browsers : [targets.browsers];
|
48 | targets.browsers = [...browsers, ...ESMODULE_BROWSERS];
|
49 | } else {
|
50 | targets.esmodules = true;
|
51 | }
|
52 | }
|
53 |
|
54 | return targets;
|
55 | }
|
56 |
|
57 |
|
58 |
|
59 | function getMinSemver(version) {
|
60 | try {
|
61 | let range = new _semver.default.Range(version);
|
62 | let sorted = range.set.sort((a, b) => a[0].semver.compare(b[0].semver));
|
63 | return sorted[0][0].semver.version;
|
64 | } catch (err) {
|
65 | return null;
|
66 | }
|
67 | } |
\ | No newline at end of file |