Skip to content

Commit 608da7c

Browse files
authoredSep 29, 2020
Replace deprecated request module with native. (#1175)
1 parent 18d72e6 commit 608da7c

File tree

3 files changed

+97
-40
lines changed

3 files changed

+97
-40
lines changed
 

‎package-lock.json

+77-29
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎package.json

-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
"nanoid": "^2.1.11",
3333
"please-upgrade-node": "^3.2.0",
3434
"pluralize": "^8.0.0",
35-
"request": "^2.88.2",
3635
"server-destroy": "^1.0.1",
3736
"update-notifier": "^4.0.0",
3837
"yargs": "^15.1.0"

‎src/cli/utils/load.js

+20-10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const fs = require('fs')
22
const path = require('path')
3-
const request = require('request')
3+
const http = require('http')
4+
const https = require('https')
45
const low = require('lowdb')
56
const FileAsync = require('lowdb/adapters/FileAsync')
67
const Memory = require('lowdb/adapters/Memory')
@@ -25,16 +26,25 @@ module.exports = function(source) {
2526

2627
resolve(low(new FileAsync(source)))
2728
} else if (is.URL(source)) {
28-
// Load remote data
29-
const opts = {
30-
url: source,
31-
json: true
32-
}
29+
// Normalize the source into a URL object.
30+
const sourceUrl = new URL(source)
31+
// Pick the client based on the protocol scheme
32+
const client = sourceUrl.protocol === 'https:' ? https : http
33+
34+
client
35+
.get(sourceUrl, res => {
36+
let dbData = ''
37+
res.on('data', data => {
38+
dbData += data
39+
})
3340

34-
request(opts, (err, response) => {
35-
if (err) return reject(err)
36-
resolve(low(new Memory()).setState(response.body))
37-
})
41+
res.on('end', () => {
42+
resolve(low(new Memory()).setState(JSON.parse(dbData)))
43+
})
44+
})
45+
.on('error', error => {
46+
return reject(error)
47+
})
3848
} else if (is.JS(source)) {
3949
// Clear cache
4050
const filename = path.resolve(source)

0 commit comments

Comments
 (0)
Please sign in to comment.