@napi-rs/canvas
Advanced tools
Comparing version 0.1.64 to 0.1.65
const fs = require('fs') | ||
const { Readable } = require('stream') | ||
const { URL } = require('url') | ||
@@ -36,9 +37,9 @@ const { Image } = require('./js-binding') | ||
// if source is a string or URL instance | ||
if (typeof source === 'string' || source instanceof URL) { | ||
if (typeof source === 'string') { | ||
// if the source exists as a file, construct image from that file | ||
if (await exists(source)) { | ||
if ((!source.startsWith('http') && !source.startsWith('https')) && await exists(source)) { | ||
return createImage(source, options.alt) | ||
} else { | ||
// the source is a remote url here | ||
source = !(source instanceof URL) ? new URL(source) : source | ||
source = new URL(source) | ||
// attempt to download the remote source and construct image | ||
@@ -58,2 +59,20 @@ const data = await new Promise((resolve, reject) => | ||
if (source instanceof URL) { | ||
if (source.protocol === 'file:') { | ||
// remove the leading slash on windows | ||
return createImage(process.platform === 'win32' ? source.pathname.substring(1) : source.pathname, options.alt) | ||
} else { | ||
const data = await new Promise((resolve, reject) => | ||
makeRequest( | ||
source, | ||
resolve, | ||
reject, | ||
typeof options.maxRedirects === 'number' && options.maxRedirects >= 0 ? options.maxRedirects : MAX_REDIRECTS, | ||
options.requestOptions, | ||
), | ||
) | ||
return createImage(data, options.alt) | ||
} | ||
} | ||
// throw error as don't support that source | ||
@@ -60,0 +79,0 @@ throw new TypeError('unsupported image source') |
{ | ||
"name": "@napi-rs/canvas", | ||
"version": "0.1.64", | ||
"version": "0.1.65", | ||
"description": "Canvas for Node.js with skia backend", | ||
@@ -93,3 +93,3 @@ "main": "index.js", | ||
"npm-run-all2": "^7.0.0", | ||
"oxlint": "^0.13.0", | ||
"oxlint": "^0.14.0", | ||
"pinst": "^3.0.0", | ||
@@ -140,15 +140,15 @@ "png.js": "^0.2.1", | ||
}, | ||
"packageManager": "yarn@4.5.2", | ||
"packageManager": "yarn@4.5.3", | ||
"optionalDependencies": { | ||
"@napi-rs/canvas-win32-x64-msvc": "0.1.64", | ||
"@napi-rs/canvas-darwin-x64": "0.1.64", | ||
"@napi-rs/canvas-linux-x64-gnu": "0.1.64", | ||
"@napi-rs/canvas-linux-arm-gnueabihf": "0.1.64", | ||
"@napi-rs/canvas-linux-x64-musl": "0.1.64", | ||
"@napi-rs/canvas-linux-arm64-gnu": "0.1.64", | ||
"@napi-rs/canvas-linux-arm64-musl": "0.1.64", | ||
"@napi-rs/canvas-darwin-arm64": "0.1.64", | ||
"@napi-rs/canvas-android-arm64": "0.1.64", | ||
"@napi-rs/canvas-linux-riscv64-gnu": "0.1.64" | ||
"@napi-rs/canvas-win32-x64-msvc": "0.1.65", | ||
"@napi-rs/canvas-darwin-x64": "0.1.65", | ||
"@napi-rs/canvas-linux-x64-gnu": "0.1.65", | ||
"@napi-rs/canvas-linux-arm-gnueabihf": "0.1.65", | ||
"@napi-rs/canvas-linux-x64-musl": "0.1.65", | ||
"@napi-rs/canvas-linux-arm64-gnu": "0.1.65", | ||
"@napi-rs/canvas-linux-arm64-musl": "0.1.65", | ||
"@napi-rs/canvas-darwin-arm64": "0.1.65", | ||
"@napi-rs/canvas-android-arm64": "0.1.65", | ||
"@napi-rs/canvas-linux-riscv64-gnu": "0.1.65" | ||
} | ||
} |
73214
1636