From 90e79d5786b13aadefe5427cdc23cf1f164ec637 Mon Sep 17 00:00:00 2001 From: jpmsen Date: Fri, 1 Dec 2023 11:29:15 +0100 Subject: [PATCH] Replaced request lib with native fetch --- node-pixels.js | 34 ++++++++++++++-------------------- package.json | 1 - 2 files changed, 14 insertions(+), 21 deletions(-) diff --git a/node-pixels.js b/node-pixels.js index 441ffaf..d6205c8 100644 --- a/node-pixels.js +++ b/node-pixels.js @@ -8,7 +8,6 @@ var pack = require('ndarray-pack') var GifReader = require('omggif').GifReader var Bitmap = require('node-bitmap') var fs = require('fs') -var request = require('request') var mime = require('mime-types') var parseDataURI = require('parse-data-uri') @@ -115,7 +114,7 @@ function doParse(mimeType, data, cb) { break case 'image/gif': - handleGIF(data, cb) + handleGIF(new Uint8Array(data), cb) break case 'image/bmp': @@ -156,26 +155,21 @@ module.exports = function getPixels(url, type, cb) { }) } } else if(url.indexOf('http://') === 0 || url.indexOf('https://') === 0) { - request({url:url, encoding:null}, function(err, response, body) { - if(err) { - cb(err) - return - } - - type = type; - if(!type){ - if(response.getHeader !== undefined){ - type = response.getHeader('content-type'); - }else if(response.headers !== undefined){ - type = response.headers['content-type']; - } + let contentType; + fetch(url).then(response => { + if(!response.ok) { + throw new Error("HTTP request failed") } - if(!type) { - cb(new Error('Invalid content-type')) - return + + contentType = response.headers.get("content-type") + if(!contentType) { + throw new Error("Invalid content-type") } - doParse(type, body, cb) - }) + + return response.arrayBuffer() + }).then(body => { + doParse(contentType, body, cb) + }).catch(err => { cb(err) }) } else { fs.readFile(url, function(err, data) { if(err) { diff --git a/package.json b/package.json index d1610c8..e500a8c 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,6 @@ "omggif": "^1.0.5", "parse-data-uri": "^0.2.0", "pngjs": "^3.3.3", - "request": "^2.44.0", "through": "^2.3.4" }, "devDependencies": {