From 00b7bc60ac79fe64c66268a164e899a9de751d55 Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Sat, 1 Jan 2022 22:15:12 +0100 Subject: [PATCH] Use Buffer and data uri when Blob is not available --- src/ol/source/Raster.js | 9 ++++++--- tasks/serialize-workers.cjs | 6 +++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/ol/source/Raster.js b/src/ol/source/Raster.js index 0ee8129504..dfe0e1df75 100644 --- a/src/ol/source/Raster.js +++ b/src/ol/source/Raster.js @@ -151,9 +151,12 @@ function createWorker(config, onMessage) { '});', ]); - const blob = new Blob(lines, {type: 'text/javascript'}); - const source = URL.createObjectURL(blob); - const worker = new Worker(source); + const worker = new Worker( + typeof Blob === 'undefined' + ? 'data:text/javascript;base64,' + + Buffer.from(lines.join('\n'), 'binary').toString('base64') + : URL.createObjectURL(new Blob(lines, {type: 'text/javascript'})) + ); worker.addEventListener('message', onMessage); return worker; } diff --git a/tasks/serialize-workers.cjs b/tasks/serialize-workers.cjs index 4e47d2aaa1..757ea8a788 100644 --- a/tasks/serialize-workers.cjs +++ b/tasks/serialize-workers.cjs @@ -45,9 +45,9 @@ async function build(input, {minify = true} = {}) { return ` export function create() { const source = ${JSON.stringify(code)}; - const blob = new Blob([source], {type: 'application/javascript'}); - const url = URL.createObjectURL(blob); - return new Worker(url); + return new Worker(typeof Blob === 'undefined' + ? 'data:application/javascript;base64,' + Buffer.from(source, 'binary').toString('base64') + : URL.createObjectURL(new Blob([source], {type: 'application/javascript'}))); } `; },