polyscript
Advanced tools
Comparing version
@@ -1,1 +0,1 @@ | ||
import s from"https://cdn.jsdelivr.net/npm/sabayon/dist/polyfill.js";globalThis.crossOriginIsolated||(globalThis.Blob=class extends Blob{constructor(s,r){"text/javascript"===r.type&&"string"==typeof s.at(0)&&(s[0]=s[0].replace(/^\/\*@\*\//,'import "https://cdn.jsdelivr.net/npm/sabayon/dist/polyfill.js";')),super(s,r)}},globalThis.Worker=class extends Worker{constructor(r,...t){if(t.length){const r=t[0].serviceWorker||t[0].service_worker;r&&s(r)}super(r,...t)}}); | ||
import s from"https://cdn.jsdelivr.net/npm/sabayon/dist/polyfill.js";if(!globalThis.crossOriginIsolated){const{isArray:r}=Array,t=s=>s.length&&"object"==typeof s[0]&&null!==s[0];globalThis.Blob=class extends Blob{constructor(s,...e){t(e)&&"text/javascript"===e[0].type&&r(s)&&"string"==typeof s.at(0)&&(s[0]=s[0].replace(/^\/\*@\*\//,'import "https://cdn.jsdelivr.net/npm/sabayon/dist/polyfill.js";')),super(s,...e)}},globalThis.Worker=class extends Worker{constructor(r,...e){if(t(e)){const r=e[0].serviceWorker||e[0].service_worker;r&&s(r)}super(r,...e)}}} |
@@ -5,6 +5,14 @@ import sabayon from 'https://cdn.jsdelivr.net/npm/sabayon/dist/polyfill.js'; | ||
if (!globalThis.crossOriginIsolated) { | ||
const { isArray } = Array; | ||
const isOptions = args => args.length && typeof args[0] === 'object' && args[0] !== null; | ||
// early patch Blob to inject sabayon polyfill for service-worker | ||
globalThis.Blob = class extends Blob { | ||
constructor(blobParts, options) { | ||
if (options.type === 'text/javascript' && typeof blobParts.at(0) === 'string') { | ||
constructor(blobParts, ...args) { | ||
if ( | ||
isOptions(args) && | ||
args[0].type === 'text/javascript' && | ||
isArray(blobParts) && | ||
typeof blobParts.at(0) === 'string' | ||
) { | ||
blobParts[0] = blobParts[0].replace( | ||
@@ -15,3 +23,3 @@ /^\/\*@\*\//, | ||
} | ||
super(blobParts, options); | ||
super(blobParts, ...args); | ||
} | ||
@@ -23,3 +31,3 @@ }; | ||
constructor(url, ...args) { | ||
if (args.length) { | ||
if (isOptions(args)) { | ||
const sw = args[0].serviceWorker || args[0].service_worker; | ||
@@ -26,0 +34,0 @@ if (sw) sabayon(sw); |
{ | ||
"name": "polyscript", | ||
"version": "0.17.12", | ||
"version": "0.17.13", | ||
"description": "PyScript single core to rule them all", | ||
@@ -5,0 +5,0 @@ "main": "./esm/index.js", |
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
1208629
0.03%4408
0.18%2
-33.33%