source: trip-planner-front/node_modules/core-js-compat/targets-parser.js@ e29cc2e

Last change on this file since e29cc2e was e29cc2e, checked in by Ema <ema_spirova@…>, 3 years ago

primeNG components

  • Property mode set to 100644
File size: 1.8 KB
Line 
1'use strict';
2const browserslist = require('browserslist');
3const { compare, has } = require('./helpers');
4const external = require('./external');
5
6const aliases = new Map([
7 ['and_chr', 'chrome'],
8 ['and_ff', 'firefox'],
9 ['ie_mob', 'ie'],
10 ['ios_saf', 'ios'],
11 ['op_mob', 'opera_mobile'],
12]);
13
14const validTargets = new Set([
15 'android',
16 'chrome',
17 'deno',
18 'edge',
19 'electron',
20 'firefox',
21 'ie',
22 'ios',
23 'node',
24 'opera',
25 'opera_mobile',
26 'phantom',
27 'rhino',
28 'safari',
29 'samsung',
30]);
31
32module.exports = function (targets) {
33 if (typeof targets != 'object' || Array.isArray(targets)) {
34 targets = { browsers: targets };
35 }
36
37 const { browsers, esmodules, node, ...rest } = targets;
38 const list = Object.entries(rest);
39
40 if (browsers) {
41 if (typeof browsers == 'string' || Array.isArray(browsers)) {
42 list.push(...browserslist(browsers).map(it => it.split(' ')));
43 } else {
44 list.push(...Object.entries(browsers));
45 }
46 }
47 if (esmodules) {
48 list.push(...Object.entries(external.modules));
49 }
50 if (node) {
51 list.push(['node', node === 'current' ? process.versions.node : node]);
52 }
53
54 const normalized = list.map(([engine, version]) => {
55 if (has(browserslist.aliases, engine)) {
56 engine = browserslist.aliases[engine];
57 }
58 if (aliases.has(engine)) {
59 engine = aliases.get(engine);
60 }
61 return [engine, String(version)];
62 }).filter(([engine]) => {
63 return validTargets.has(engine);
64 }).sort(([a], [b]) => {
65 return a < b ? -1 : a > b ? 1 : 0;
66 });
67
68 const reducedByMinVersion = new Map();
69 for (const [engine, version] of normalized) {
70 if (!reducedByMinVersion.has(engine) || compare(version, '<=', reducedByMinVersion.get(engine))) {
71 reducedByMinVersion.set(engine, version);
72 }
73 }
74
75 return reducedByMinVersion;
76};
Note: See TracBrowser for help on using the repository browser.