From 2ab483adf866d220bce4855bd76511a3df049c8d Mon Sep 17 00:00:00 2001 From: Jamie Sinclair Date: Sat, 8 Jul 2023 16:11:29 +0900 Subject: [PATCH 1/2] feat(png): polyfill ImageData api for cloudflare worker env --- packages/png/codec/package.json | 5 ++++- packages/png/codec/pre.js | 15 +++++++++++++++ packages/png/codec/squoosh_png.js | 15 +++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 packages/png/codec/pre.js diff --git a/packages/png/codec/package.json b/packages/png/codec/package.json index 0baa377..5b8878e 100644 --- a/packages/png/codec/package.json +++ b/packages/png/codec/package.json @@ -9,7 +9,10 @@ "squoosh_png.js", "squoosh_png.d.ts" ], + "scripts": { + "patch-pre-script": "cat pre.js >> squoosh_png.js" + }, "module": "squoosh_png.js", "types": "squoosh_png.d.ts", "sideEffects": false -} \ No newline at end of file +} diff --git a/packages/png/codec/pre.js b/packages/png/codec/pre.js new file mode 100644 index 0000000..4f0530c --- /dev/null +++ b/packages/png/codec/pre.js @@ -0,0 +1,15 @@ +(function () { + const isRunningInCloudFlareWorkers = caches.default !== undefined; + if (isRunningInCloudFlareWorkers) { + if (!globalThis.ImageData) { + // Simple Polyfill for ImageData Object + globalThis.ImageData = class ImageData { + constructor(data, width, height) { + this.data = data; + this.width = width; + this.height = height; + } + }; + } + } +})(); diff --git a/packages/png/codec/squoosh_png.js b/packages/png/codec/squoosh_png.js index 881ee83..0b0975b 100644 --- a/packages/png/codec/squoosh_png.js +++ b/packages/png/codec/squoosh_png.js @@ -173,3 +173,18 @@ async function init(input) { export default init; +(function () { + const isRunningInCloudFlareWorkers = caches.default !== undefined; + if (isRunningInCloudFlareWorkers) { + if (!globalThis.ImageData) { + // Simple Polyfill for ImageData Object + globalThis.ImageData = class ImageData { + constructor(data, width, height) { + this.data = data; + this.width = width; + this.height = height; + } + }; + } + } +})(); From 6acacd18989f190daadc1bfa6d07a61f68ba85b8 Mon Sep 17 00:00:00 2001 From: Jamie Sinclair Date: Sat, 8 Jul 2023 16:15:21 +0900 Subject: [PATCH 2/2] chore(png): create version 2.1.0 --- packages/png/CHANGELOG.md | 7 +++++++ packages/png/package.json | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 packages/png/CHANGELOG.md diff --git a/packages/png/CHANGELOG.md b/packages/png/CHANGELOG.md new file mode 100644 index 0000000..d0107f7 --- /dev/null +++ b/packages/png/CHANGELOG.md @@ -0,0 +1,7 @@ +# Changelog + +## @jquash/png@2.1.0 + +### Added + +- Include polyfills for Cloudflare Worker environment for easier compatibility diff --git a/packages/png/package.json b/packages/png/package.json index e473d25..0b6b18a 100644 --- a/packages/png/package.json +++ b/packages/png/package.json @@ -1,6 +1,6 @@ { "name": "@jsquash/png", - "version": "2.0.0", + "version": "2.1.0", "main": "index.js", "description": "Wasm png encoder and decoder supporting the browser. Repackaged from Squoosh App.", "repository": "jamsinclair/jSquash", @@ -20,7 +20,7 @@ "license": "Apache-2.0", "scripts": { "clean": "rm -rf dist", - "build": "npm run clean && tsc && cp -r codec package.json README.md .npmignore dist" + "build": "npm run clean && tsc && cp -r codec package.json README.md CHANGELOG.md .npmignore dist" }, "dependencies": { "wasm-feature-detect": "^1.2.11"