update-browserslist-db 1.0.1 → 1.0.4
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/index.js +33 -63
- package/package.json +4 -1
package/index.js
CHANGED
|
@@ -28,7 +28,7 @@ function detectLockfile() {
|
|
|
28
28
|
if (!packageDir) {
|
|
29
29
|
throw new BrowserslistUpdateError(
|
|
30
30
|
'Cannot find package.json. ' +
|
|
31
|
-
'Is this the right directory to run `npx
|
|
31
|
+
'Is this the right directory to run `npx update-browserslist-db` in?'
|
|
32
32
|
)
|
|
33
33
|
}
|
|
34
34
|
|
|
@@ -71,56 +71,33 @@ function getLatestInfo(lock) {
|
|
|
71
71
|
)
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
function
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
.reduce((result, entry) => {
|
|
84
|
-
if (!result[entry[0]]) {
|
|
85
|
-
result[entry[0]] = []
|
|
86
|
-
}
|
|
87
|
-
result[entry[0]].push(entry[1])
|
|
88
|
-
return result
|
|
89
|
-
}, {})
|
|
74
|
+
function getBrowsers() {
|
|
75
|
+
let browserslist = require('browserslist')
|
|
76
|
+
return browserslist().reduce((result, entry) => {
|
|
77
|
+
if (!result[entry[0]]) {
|
|
78
|
+
result[entry[0]] = []
|
|
79
|
+
}
|
|
80
|
+
result[entry[0]].push(entry[1])
|
|
81
|
+
return result
|
|
82
|
+
}, {})
|
|
90
83
|
}
|
|
91
84
|
|
|
92
|
-
function
|
|
85
|
+
function diffBrowsers(old, current) {
|
|
93
86
|
let browsers = Object.keys(old).concat(
|
|
94
|
-
Object.keys(current).filter(browser =>
|
|
95
|
-
return old[browser] === undefined
|
|
96
|
-
})
|
|
87
|
+
Object.keys(current).filter(browser => old[browser] === undefined)
|
|
97
88
|
)
|
|
98
89
|
return browsers
|
|
99
90
|
.map(browser => {
|
|
100
91
|
let oldVersions = old[browser] || []
|
|
101
92
|
let currentVersions = current[browser] || []
|
|
102
|
-
let
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
let removedVersions = oldVersions.filter(version => {
|
|
109
|
-
return intersection.indexOf(version) === -1
|
|
110
|
-
})
|
|
111
|
-
return removedVersions
|
|
112
|
-
.map(version => {
|
|
113
|
-
return pico.red('- ' + browser + ' ' + version)
|
|
114
|
-
})
|
|
115
|
-
.concat(
|
|
116
|
-
addedVersions.map(version => {
|
|
117
|
-
return pico.green('+ ' + browser + ' ' + version)
|
|
118
|
-
})
|
|
119
|
-
)
|
|
93
|
+
let common = oldVersions.filter(v => currentVersions.includes(v))
|
|
94
|
+
let added = currentVersions.filter(v => !common.includes(v))
|
|
95
|
+
let removed = oldVersions.filter(v => !common.includes(v))
|
|
96
|
+
return removed
|
|
97
|
+
.map(v => pico.red('- ' + browser + ' ' + v))
|
|
98
|
+
.concat(added.map(v => pico.green('+ ' + browser + ' ' + v)))
|
|
120
99
|
})
|
|
121
|
-
.reduce((result, array) =>
|
|
122
|
-
return result.concat(array)
|
|
123
|
-
}, [])
|
|
100
|
+
.reduce((result, array) => result.concat(array), [])
|
|
124
101
|
.join('\n')
|
|
125
102
|
}
|
|
126
103
|
|
|
@@ -176,11 +153,7 @@ function updateYarnLockfile(lock, latest) {
|
|
|
176
153
|
}
|
|
177
154
|
}
|
|
178
155
|
})
|
|
179
|
-
let content = blocks
|
|
180
|
-
.map(lines => {
|
|
181
|
-
return lines.join('\n')
|
|
182
|
-
})
|
|
183
|
-
.join('')
|
|
156
|
+
let content = blocks.map(lines => lines.join('\n')).join('')
|
|
184
157
|
return { content, versions }
|
|
185
158
|
}
|
|
186
159
|
|
|
@@ -277,12 +250,12 @@ module.exports = function updateDB(print = defaultPrint) {
|
|
|
277
250
|
let lock = detectLockfile()
|
|
278
251
|
let latest = getLatestInfo(lock)
|
|
279
252
|
|
|
280
|
-
let
|
|
281
|
-
let
|
|
253
|
+
let listError
|
|
254
|
+
let oldList
|
|
282
255
|
try {
|
|
283
|
-
|
|
256
|
+
oldList = getBrowsers()
|
|
284
257
|
} catch (e) {
|
|
285
|
-
|
|
258
|
+
listError = e
|
|
286
259
|
}
|
|
287
260
|
|
|
288
261
|
print('Latest version: ' + pico.bold(pico.green(latest.version)) + '\n')
|
|
@@ -297,33 +270,30 @@ module.exports = function updateDB(print = defaultPrint) {
|
|
|
297
270
|
|
|
298
271
|
print('caniuse-lite has been successfully updated\n')
|
|
299
272
|
|
|
300
|
-
let
|
|
301
|
-
if (!
|
|
273
|
+
let newList
|
|
274
|
+
if (!listError) {
|
|
302
275
|
try {
|
|
303
|
-
|
|
276
|
+
newList = getBrowsers()
|
|
304
277
|
} catch (e) /* c8 ignore start */ {
|
|
305
|
-
|
|
278
|
+
listError = e
|
|
306
279
|
} /* c8 ignore end */
|
|
307
280
|
}
|
|
308
281
|
|
|
309
|
-
if (
|
|
282
|
+
if (listError) {
|
|
310
283
|
print(
|
|
311
284
|
pico.red(
|
|
312
285
|
'\n' +
|
|
313
|
-
|
|
286
|
+
listError.stack +
|
|
314
287
|
'\n\n' +
|
|
315
288
|
'Problem with browser list retrieval.\n' +
|
|
316
289
|
'Target browser changes won’t be shown.\n'
|
|
317
290
|
)
|
|
318
291
|
)
|
|
319
292
|
} else {
|
|
320
|
-
let
|
|
321
|
-
|
|
322
|
-
currentBrowsersList
|
|
323
|
-
)
|
|
324
|
-
if (targetBrowserChanges) {
|
|
293
|
+
let changes = diffBrowsers(oldList, newList)
|
|
294
|
+
if (changes) {
|
|
325
295
|
print('\nTarget browser changes:\n')
|
|
326
|
-
print(
|
|
296
|
+
print(changes + '\n')
|
|
327
297
|
} else {
|
|
328
298
|
print('\n' + pico.green('No target browser changes') + '\n')
|
|
329
299
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "update-browserslist-db",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "CLI tool to update caniuse-lite to refresh target browsers from Browserslist config",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"caniuse",
|
|
@@ -29,6 +29,9 @@
|
|
|
29
29
|
"escalade": "^3.1.1",
|
|
30
30
|
"picocolors": "^1.0.0"
|
|
31
31
|
},
|
|
32
|
+
"peerDependencies": {
|
|
33
|
+
"browserslist": ">= 4.21.0"
|
|
34
|
+
},
|
|
32
35
|
"bin": {
|
|
33
36
|
"browserslist-lint": "cli.js"
|
|
34
37
|
}
|