diff --git a/CHANGELOG.md b/CHANGELOG.md index 67cf68da0..d4a0cea10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ project adheres to [Semantic Versioning](http://semver.org/). (Unreleased) ================== ### Changed +* Replaced `simple-get ` with ` Node.js builtin` `fetch` (#2309) ### Added ### Fixed diff --git a/lib/image.js b/lib/image.js index 4a37849ee..9ffa3c794 100644 --- a/lib/image.js +++ b/lib/image.js @@ -14,9 +14,6 @@ const bindings = require('./bindings') const Image = module.exports = bindings.Image const util = require('util') -// Lazily loaded simple-get -let get - const { GetSource, SetSource } = bindings Object.defineProperty(Image.prototype, 'src', { @@ -47,20 +44,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 476f0ab24..8d4133042 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",