1 | ;
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = DetermineTargetsFromConfig;
|
7 | exports.Versioning = Versioning;
|
8 |
|
9 | var _browserslist = _interopRequireDefault(require("browserslist"));
|
10 |
|
11 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
12 |
|
13 | /**
|
14 | * Determine the targets based on the browserslist config object
|
15 | *
|
16 | * @param configPath - The file or a directory path to look for the browserslist config file
|
17 | */
|
18 | function DetermineTargetsFromConfig(configPath, config) {
|
19 | const browserslistOpts = {
|
20 | path: configPath
|
21 | };
|
22 |
|
23 | if (Array.isArray(config) || typeof config === 'string') {
|
24 | return (0, _browserslist.default)(config, browserslistOpts);
|
25 | }
|
26 |
|
27 | if (config && typeof config === 'object') {
|
28 | return (0, _browserslist.default)([...(config.production || []), ...(config.development || [])], browserslistOpts);
|
29 | }
|
30 |
|
31 | return (0, _browserslist.default)(undefined, browserslistOpts);
|
32 | }
|
33 | /**
|
34 | * Take a list of targets returned from browserslist api, return the lowest version
|
35 | * version of each target
|
36 | */
|
37 |
|
38 |
|
39 | function Versioning(targetslist) {
|
40 | return targetslist // Sort the targets by target name and then version number in ascending order
|
41 | .map(e => {
|
42 | const [target, version] = e.split(' ');
|
43 | return {
|
44 | target,
|
45 | version,
|
46 | parsedVersion: version === 'all' ? 0 : version.includes('-') ? parseFloat(version.split('-')[0]) : parseFloat(version)
|
47 | };
|
48 | }) // Sort the targets by target name and then version number in descending order
|
49 | // ex. [a@3, b@3, a@1] => [a@3, a@1, b@3]
|
50 | .sort((a, b) => {
|
51 | if (b.target === a.target) {
|
52 | // If any version === 'all', return 0. The only version of op_mini is 'all'
|
53 | // Otherwise, compare the versions
|
54 | return typeof b.parsedVersion === 'string' || typeof a.parsedVersion === 'string' ? 0 : b.parsedVersion - a.parsedVersion;
|
55 | }
|
56 |
|
57 | return b.target > a.target ? 1 : -1;
|
58 | }) // First last target always has the latest version
|
59 | .filter((e, i, items // Check if the current target is the last of its kind. If it is, then it
|
60 | // is most recent version
|
61 | ) => i + 1 === items.length || e.target !== items[i + 1].target);
|
62 | }
|
63 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9WZXJzaW9uaW5nLmpzIl0sIm5hbWVzIjpbIkRldGVybWluZVRhcmdldHNGcm9tQ29uZmlnIiwiY29uZmlnUGF0aCIsImNvbmZpZyIsImJyb3dzZXJzbGlzdE9wdHMiLCJwYXRoIiwiQXJyYXkiLCJpc0FycmF5IiwicHJvZHVjdGlvbiIsImRldmVsb3BtZW50IiwidW5kZWZpbmVkIiwiVmVyc2lvbmluZyIsInRhcmdldHNsaXN0IiwibWFwIiwiZSIsInRhcmdldCIsInZlcnNpb24iLCJzcGxpdCIsInBhcnNlZFZlcnNpb24iLCJpbmNsdWRlcyIsInBhcnNlRmxvYXQiLCJzb3J0IiwiYSIsImIiLCJmaWx0ZXIiLCJpIiwiaXRlbXMiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQ0E7Ozs7QUFTQTs7Ozs7QUFLZSxTQUFTQSwwQkFBVCxDQUNiQyxVQURhLEVBRWJDLE1BRmEsRUFHRTtBQUNmLFFBQU1DLGdCQUFnQixHQUFHO0FBQUVDLElBQUFBLElBQUksRUFBRUg7QUFBUixHQUF6Qjs7QUFFQSxNQUFJSSxLQUFLLENBQUNDLE9BQU4sQ0FBY0osTUFBZCxLQUF5QixPQUFPQSxNQUFQLEtBQWtCLFFBQS9DLEVBQXlEO0FBQ3ZELFdBQU8sMkJBQWFBLE1BQWIsRUFBcUJDLGdCQUFyQixDQUFQO0FBQ0Q7O0FBRUQsTUFBSUQsTUFBTSxJQUFJLE9BQU9BLE1BQVAsS0FBa0IsUUFBaEMsRUFBMEM7QUFDeEMsV0FBTywyQkFDTCxDQUFDLElBQUlBLE1BQU0sQ0FBQ0ssVUFBUCxJQUFxQixFQUF6QixDQUFELEVBQStCLElBQUlMLE1BQU0sQ0FBQ00sV0FBUCxJQUFzQixFQUExQixDQUEvQixDQURLLEVBRUxMLGdCQUZLLENBQVA7QUFJRDs7QUFFRCxTQUFPLDJCQUFhTSxTQUFiLEVBQXdCTixnQkFBeEIsQ0FBUDtBQUNEO0FBRUQ7Ozs7OztBQUlPLFNBQVNPLFVBQVQsQ0FBb0JDLFdBQXBCLEVBQXVFO0FBQzVFLFNBQ0VBLFdBQVcsQ0FDVDtBQURTLEdBRVJDLEdBRkgsQ0FHS0MsQ0FBRCxJQUErQjtBQUM3QixVQUFNLENBQUNDLE1BQUQsRUFBU0MsT0FBVCxJQUFvQkYsQ0FBQyxDQUFDRyxLQUFGLENBQVEsR0FBUixDQUExQjtBQUNBLFdBQU87QUFDTEYsTUFBQUEsTUFESztBQUVMQyxNQUFBQSxPQUZLO0FBR0xFLE1BQUFBLGFBQWEsRUFDWEYsT0FBTyxLQUFLLEtBQVosR0FDSSxDQURKLEdBRUlBLE9BQU8sQ0FBQ0csUUFBUixDQUFpQixHQUFqQixJQUNBQyxVQUFVLENBQUNKLE9BQU8sQ0FBQ0MsS0FBUixDQUFjLEdBQWQsRUFBbUIsQ0FBbkIsQ0FBRCxDQURWLEdBRUFHLFVBQVUsQ0FBQ0osT0FBRDtBQVJYLEtBQVA7QUFVRCxHQWZMLEVBaUJFO0FBQ0E7QUFsQkYsR0FtQkdLLElBbkJILENBb0JJLENBQUNDLENBQUQsRUFBb0JDLENBQXBCLEtBQWtEO0FBQ2hELFFBQUlBLENBQUMsQ0FBQ1IsTUFBRixLQUFhTyxDQUFDLENBQUNQLE1BQW5CLEVBQTJCO0FBQ3pCO0FBQ0E7QUFDQSxhQUFPLE9BQU9RLENBQUMsQ0FBQ0wsYUFBVCxLQUEyQixRQUEzQixJQUNMLE9BQU9JLENBQUMsQ0FBQ0osYUFBVCxLQUEyQixRQUR0QixHQUVILENBRkcsR0FHSEssQ0FBQyxDQUFDTCxhQUFGLEdBQWtCSSxDQUFDLENBQUNKLGFBSHhCO0FBSUQ7O0FBQ0QsV0FBT0ssQ0FBQyxDQUFDUixNQUFGLEdBQVdPLENBQUMsQ0FBQ1AsTUFBYixHQUFzQixDQUF0QixHQUEwQixDQUFDLENBQWxDO0FBQ0QsR0E5QkwsRUFnQ0U7QUFoQ0YsR0FpQ0dTLE1BakNILENBa0NJLENBQUNWLENBQUQsRUFBb0JXLENBQXBCLEVBQStCQyxLQUEvQixDQUNFO0FBQ0E7QUFGRixPQUdFRCxDQUFDLEdBQUcsQ0FBSixLQUFVQyxLQUFLLENBQUNDLE1BQWhCLElBQTBCYixDQUFDLENBQUNDLE1BQUYsS0FBYVcsS0FBSyxDQUFDRCxDQUFDLEdBQUcsQ0FBTCxDQUFMLENBQWFWLE1BckMxRCxDQURGO0FBeUNEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQGZsb3dcbmltcG9ydCBicm93c2Vyc2xpc3QgZnJvbSAnYnJvd3NlcnNsaXN0JztcbmltcG9ydCB0eXBlIHsgQnJvd3Nlckxpc3RDb25maWcgfSBmcm9tICcuL3J1bGVzL2NvbXBhdCc7XG5cbnR5cGUgVGFyZ2V0TGlzdEl0ZW0gPSB7XG4gIHRhcmdldDogc3RyaW5nLFxuICBwYXJzZWRWZXJzaW9uOiBudW1iZXIsXG4gIHZlcnNpb246IHN0cmluZyB8ICdhbGwnXG59O1xuXG4vKipcbiAqIERldGVybWluZSB0aGUgdGFyZ2V0cyBiYXNlZCBvbiB0aGUgYnJvd3NlcnNsaXN0IGNvbmZpZyBvYmplY3RcbiAqXG4gKiBAcGFyYW0gY29uZmlnUGF0aCAtIFRoZSBmaWxlIG9yIGEgZGlyZWN0b3J5IHBhdGggdG8gbG9vayBmb3IgdGhlIGJyb3dzZXJzbGlzdCBjb25maWcgZmlsZVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEZXRlcm1pbmVUYXJnZXRzRnJvbUNvbmZpZyhcbiAgY29uZmlnUGF0aDogc3RyaW5nLFxuICBjb25maWc/OiBCcm93c2VyTGlzdENvbmZpZ1xuKTogQXJyYXk8c3RyaW5nPiB7XG4gIGNvbnN0IGJyb3dzZXJzbGlzdE9wdHMgPSB7IHBhdGg6IGNvbmZpZ1BhdGggfTtcblxuICBpZiAoQXJyYXkuaXNBcnJheShjb25maWcpIHx8IHR5cGVvZiBjb25maWcgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGJyb3dzZXJzbGlzdChjb25maWcsIGJyb3dzZXJzbGlzdE9wdHMpO1xuICB9XG5cbiAgaWYgKGNvbmZpZyAmJiB0eXBlb2YgY29uZmlnID09PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBicm93c2Vyc2xpc3QoXG4gICAgICBbLi4uKGNvbmZpZy5wcm9kdWN0aW9uIHx8IFtdKSwgLi4uKGNvbmZpZy5kZXZlbG9wbWVudCB8fCBbXSldLFxuICAgICAgYnJvd3NlcnNsaXN0T3B0c1xuICAgICk7XG4gIH1cblxuICByZXR1cm4gYnJvd3NlcnNsaXN0KHVuZGVmaW5lZCwgYnJvd3NlcnNsaXN0T3B0cyk7XG59XG5cbi8qKlxuICogVGFrZSBhIGxpc3Qgb2YgdGFyZ2V0cyByZXR1cm5lZCBmcm9tIGJyb3dzZXJzbGlzdCBhcGksIHJldHVybiB0aGUgbG93ZXN0IHZlcnNpb25cbiAqIHZlcnNpb24gb2YgZWFjaCB0YXJnZXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFZlcnNpb25pbmcodGFyZ2V0c2xpc3Q6IEFycmF5PHN0cmluZz4pOiBBcnJheTxUYXJnZXRMaXN0SXRlbT4ge1xuICByZXR1cm4gKFxuICAgIHRhcmdldHNsaXN0XG4gICAgICAvLyBTb3J0IHRoZSB0YXJnZXRzIGJ5IHRhcmdldCBuYW1lIGFuZCB0aGVuIHZlcnNpb24gbnVtYmVyIGluIGFzY2VuZGluZyBvcmRlclxuICAgICAgLm1hcChcbiAgICAgICAgKGU6IHN0cmluZyk6IFRhcmdldExpc3RJdGVtID0+IHtcbiAgICAgICAgICBjb25zdCBbdGFyZ2V0LCB2ZXJzaW9uXSA9IGUuc3BsaXQoJyAnKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGFyZ2V0LFxuICAgICAgICAgICAgdmVyc2lvbixcbiAgICAgICAgICAgIHBhcnNlZFZlcnNpb246XG4gICAgICAgICAgICAgIHZlcnNpb24gPT09ICdhbGwnXG4gICAgICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICAgICAgOiB2ZXJzaW9uLmluY2x1ZGVzKCctJylcbiAgICAgICAgICAgICAgICA/IHBhcnNlRmxvYXQodmVyc2lvbi5zcGxpdCgnLScpWzBdKVxuICAgICAgICAgICAgICAgIDogcGFyc2VGbG9hdCh2ZXJzaW9uKVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIC8vIFNvcnQgdGhlIHRhcmdldHMgYnkgdGFyZ2V0IG5hbWUgYW5kIHRoZW4gdmVyc2lvbiBudW1iZXIgaW4gZGVzY2VuZGluZyBvcmRlclxuICAgICAgLy8gZXguIFthQDMsIGJAMywgYUAxXSA9PiBbYUAzLCBhQDEsIGJAM11cbiAgICAgIC5zb3J0KFxuICAgICAgICAoYTogVGFyZ2V0TGlzdEl0ZW0sIGI6IFRhcmdldExpc3RJdGVtKTogbnVtYmVyID0+IHtcbiAgICAgICAgICBpZiAoYi50YXJnZXQgPT09IGEudGFyZ2V0KSB7XG4gICAgICAgICAgICAvLyBJZiBhbnkgdmVyc2lvbiA9PT0gJ2FsbCcsIHJldHVybiAwLiBUaGUgb25seSB2ZXJzaW9uIG9mIG9wX21pbmkgaXMgJ2FsbCdcbiAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgY29tcGFyZSB0aGUgdmVyc2lvbnNcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgYi5wYXJzZWRWZXJzaW9uID09PSAnc3RyaW5nJyB8fFxuICAgICAgICAgICAgICB0eXBlb2YgYS5wYXJzZWRWZXJzaW9uID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgOiBiLnBhcnNlZFZlcnNpb24gLSBhLnBhcnNlZFZlcnNpb247XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBiLnRhcmdldCA+IGEudGFyZ2V0ID8gMSA6IC0xO1xuICAgICAgICB9XG4gICAgICApXG4gICAgICAvLyBGaXJzdCBsYXN0IHRhcmdldCBhbHdheXMgaGFzIHRoZSBsYXRlc3QgdmVyc2lvblxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKGU6IFRhcmdldExpc3RJdGVtLCBpOiBudW1iZXIsIGl0ZW1zOiBBcnJheTxUYXJnZXRMaXN0SXRlbT4pOiBib29sZWFuID0+XG4gICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGN1cnJlbnQgdGFyZ2V0IGlzIHRoZSBsYXN0IG9mIGl0cyBraW5kLiBJZiBpdCBpcywgdGhlbiBpdFxuICAgICAgICAgIC8vIGlzIG1vc3QgcmVjZW50IHZlcnNpb25cbiAgICAgICAgICBpICsgMSA9PT0gaXRlbXMubGVuZ3RoIHx8IGUudGFyZ2V0ICE9PSBpdGVtc1tpICsgMV0udGFyZ2V0XG4gICAgICApXG4gICk7XG59XG4iXX0= |
\ | No newline at end of file |