diff --git a/CHANGELOG.md b/CHANGELOG.md index 73ad0b00b..7ad7ece88 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ This release notably changes to using N-API. 🎉 * Remove unused private field `backend` in the `Backend` class. (#2229) * Add Node.js v20 to CI. (#2237) * Replaced `dtslint` with `tsd` (#2313) +* Replaced `simple-get ` with ` Node.js builtin` `fetch` (#2309) ### Added * Added string tags to support class detection ### Fixed diff --git a/lib/image.js b/lib/image.js index 4a37849ee..fec6dadbc 100644 --- a/lib/image.js +++ b/lib/image.js @@ -14,8 +14,8 @@ const bindings = require('./bindings') const Image = module.exports = bindings.Image const util = require('util') -// Lazily loaded simple-get -let get +// Lazily loaded fetch +let fetch = global.fetch || require('node-fetch') const { GetSource, SetSource } = bindings @@ -47,20 +47,20 @@ Object.defineProperty(Image.prototype, 'src', { } } - if (!get) get = require('simple-get') - - get.concat({ - url: val, + fetch(val, { + method: 'GET', headers: { 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36' } - }, (err, res, data) => { - if (err) return onerror(err) - - if (res.statusCode < 200 || res.statusCode >= 300) { - return onerror(new Error(`Server responded with ${res.statusCode}`)) - } - - setSource(this, data) }) + .then(res => { + if (!res.ok) { + throw new Error(`Server responded with ${res.statusCode}`) + } + return res.arrayBuffer() + }) + .then(data => { + setSource(this, Buffer.from(data)) + }) + .catch(onerror) } else { // local file path assumed setSource(this, val) } diff --git a/package.json b/package.json index c4e340972..27f79dc26 100644 --- a/package.json +++ b/package.json @@ -46,8 +46,7 @@ ], "dependencies": { "node-addon-api": "^7.0.0", - "prebuild-install": "^7.1.1", - "simple-get": "^3.0.3" + "prebuild-install": "^7.1.1" }, "devDependencies": { "@types/node": "^10.12.18",