Skip to content

Commit 640b62f

Browse files
committed
Reduce bundle size
1 parent 50f9209 commit 640b62f

File tree

2 files changed

+35
-51
lines changed

2 files changed

+35
-51
lines changed

index.js

Lines changed: 33 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ var path = require('path')
22
var e2c = require('electron-to-chromium/versions')
33
var fs = require('fs')
44

5-
var agents = require('caniuse-lite').agents
6-
var region = require('caniuse-lite').region
5+
var agents = require('caniuse-lite/dist/unpacker/agents').agents
6+
var region = require('caniuse-lite/dist/unpacker/region').default
77

88
function normalize (versions) {
99
return versions.filter(function (version) {
@@ -221,8 +221,8 @@ function browserslist (queries, opts) {
221221
selection = selection.slice(4)
222222
}
223223

224-
for (var i in browserslist.queries) {
225-
var type = browserslist.queries[i]
224+
for (var i = 0; i < QUERIES.length; i++) {
225+
var type = QUERIES[i]
226226
var match = selection.match(type.regexp)
227227
if (match) {
228228
var args = [context].concat(match.slice(1))
@@ -248,7 +248,7 @@ function browserslist (queries, opts) {
248248
var name = parts[0]
249249
var version = parts[1]
250250
if (version === '0') {
251-
return name + ' ' + browserslist.byName(name).versions[0]
251+
return name + ' ' + byName(name).versions[0]
252252
} else {
253253
return i
254254
}
@@ -329,16 +329,16 @@ browserslist.aliases = {
329329
browserslist.versionAliases = { }
330330

331331
// Get browser data by alias or case insensitive name
332-
browserslist.byName = function (name) {
332+
function byName (name) {
333333
name = name.toLowerCase()
334334
name = browserslist.aliases[name] || name
335335
return browserslist.data[name]
336336
}
337337

338338
// Get browser data by alias or case insensitive name and throw error
339339
// on unknown browser
340-
browserslist.checkName = function (name) {
341-
var data = browserslist.byName(name)
340+
function checkName (name) {
341+
var data = byName(name)
342342
if (!data) throw new BrowserslistError('Unknown browser ' + name)
343343
return data
344344
}
@@ -462,14 +462,13 @@ browserslist.clearCaches = function () {
462462
configCache = {}
463463
}
464464

465-
browserslist.queries = {
466-
467-
lastVersions: {
465+
var QUERIES = [
466+
{
468467
regexp: /^last\s+(\d+)\s+versions?$/i,
469468
select: function (context, versions) {
470469
var selected = []
471470
Object.keys(agents).forEach(function (name) {
472-
var data = browserslist.byName(name)
471+
var data = byName(name)
473472
if (!data) return
474473
var array = data.released.slice(-versions)
475474

@@ -481,23 +480,21 @@ browserslist.queries = {
481480
return selected
482481
}
483482
},
484-
485-
lastByBrowser: {
483+
{
486484
regexp: /^last\s+(\d+)\s+(\w+)\s+versions?$/i,
487485
select: function (context, versions, name) {
488-
var data = browserslist.checkName(name)
486+
var data = checkName(name)
489487
return data.released.slice(-versions).map(function (v) {
490488
return data.name + ' ' + v
491489
})
492490
}
493491
},
494-
495-
unreleased: {
492+
{
496493
regexp: /^unreleased\s+versions$/i,
497494
select: function () {
498495
var selected = []
499496
Object.keys(agents).forEach(function (name) {
500-
var data = browserslist.byName(name)
497+
var data = byName(name)
501498
if (!data) return
502499
var array = data.versions.filter(function (v) {
503500
return data.released.indexOf(v) === -1
@@ -511,20 +508,18 @@ browserslist.queries = {
511508
return selected
512509
}
513510
},
514-
515-
unreleasedByBrowser: {
511+
{
516512
regexp: /^unreleased\s+(\w+)\s+versions?$/i,
517513
select: function (context, name) {
518-
var data = browserslist.checkName(name)
514+
var data = checkName(name)
519515
return data.versions.filter(function (v) {
520516
return data.released.indexOf(v) === -1
521517
}).map(function (v) {
522518
return data.name + ' ' + v
523519
})
524520
}
525521
},
526-
527-
globalStatistics: {
522+
{
528523
regexp: /^(>=?)\s*(\d*\.?\d+)%$/,
529524
select: function (context, sign, popularity) {
530525
popularity = parseFloat(popularity)
@@ -543,8 +538,7 @@ browserslist.queries = {
543538
return result
544539
}
545540
},
546-
547-
customStatistics: {
541+
{
548542
regexp: /^(>=?)\s*(\d*\.?\d+)%\s+in\s+my\s+stats$/,
549543
select: function (context, sign, popularity) {
550544
popularity = parseFloat(popularity)
@@ -567,8 +561,7 @@ browserslist.queries = {
567561
return result
568562
}
569563
},
570-
571-
countryStatistics: {
564+
{
572565
regexp: /^(>=?)\s*(\d*\.?\d+)%\s+in\s+((alt-)?\w\w)$/,
573566
select: function (context, sign, popularity, place) {
574567
popularity = parseFloat(popularity)
@@ -596,8 +589,7 @@ browserslist.queries = {
596589
return result
597590
}
598591
},
599-
600-
electronRange: {
592+
{
601593
regexp: /^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i,
602594
select: function (context, from, to) {
603595
if (!e2c[from]) {
@@ -618,11 +610,10 @@ browserslist.queries = {
618610
})
619611
}
620612
},
621-
622-
range: {
613+
{
623614
regexp: /^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i,
624615
select: function (context, name, from, to) {
625-
var data = browserslist.checkName(name)
616+
var data = checkName(name)
626617
from = parseFloat(normalizeVersion(data, from) || from)
627618
to = parseFloat(normalizeVersion(data, to) || to)
628619

@@ -636,8 +627,7 @@ browserslist.queries = {
636627
})
637628
}
638629
},
639-
640-
electronVersions: {
630+
{
641631
regexp: /^electron\s*(>=?|<=?)\s*([\d.]+)$/i,
642632
select: function (context, sign, version) {
643633
return Object.keys(e2c)
@@ -647,11 +637,10 @@ browserslist.queries = {
647637
})
648638
}
649639
},
650-
651-
versions: {
640+
{
652641
regexp: /^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/,
653642
select: function (context, name, sign, version) {
654-
var data = browserslist.checkName(name)
643+
var data = checkName(name)
655644
var alias = normalizeVersion(data, version)
656645
if (alias) {
657646
version = alias
@@ -663,22 +652,19 @@ browserslist.queries = {
663652
})
664653
}
665654
},
666-
667-
esr: {
655+
{
668656
regexp: /^(firefox|ff|fx)\s+esr$/i,
669657
select: function () {
670658
return ['firefox 52']
671659
}
672660
},
673-
674-
opMini: {
661+
{
675662
regexp: /(operamini|op_mini)\s+all/i,
676663
select: function () {
677664
return ['op_mini all']
678665
}
679666
},
680-
681-
electron: {
667+
{
682668
regexp: /^electron\s+([\d.]+)$/i,
683669
select: function (context, version) {
684670
var chrome = e2c[version]
@@ -689,12 +675,11 @@ browserslist.queries = {
689675
return ['chrome ' + chrome]
690676
}
691677
},
692-
693-
direct: {
678+
{
694679
regexp: /^(\w+)\s+(tp|[\d.]+)$/i,
695680
select: function (context, name, version) {
696681
if (/^tp$/i.test(version)) version = 'TP'
697-
var data = browserslist.checkName(name)
682+
var data = checkName(name)
698683
var alias = normalizeVersion(data, version)
699684
if (alias) {
700685
version = alias
@@ -715,15 +700,13 @@ browserslist.queries = {
715700
return [data.name + ' ' + version]
716701
}
717702
},
718-
719-
defaults: {
703+
{
720704
regexp: /^defaults$/i,
721705
select: function () {
722706
return browserslist(browserslist.defaults)
723707
}
724708
}
725-
726-
};
709+
];
727710

728711
// Get and convert Can I Use data
729712

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
"size-limit": [
5757
{
5858
"path": "index.js",
59-
"limit": "190 KB"
59+
"limit": "152 KB"
6060
}
6161
],
6262
"scripts": {
@@ -70,6 +70,7 @@
7070
"*.js": "eslint"
7171
},
7272
"browser": {
73+
"path": false,
7374
"fs": false
7475
},
7576
"pre-commit": [

0 commit comments

Comments
 (0)