UNPKG

rollup-plugin-web-worker-loader

Version:

Rollup plugin to handle Web Workers

32 lines (28 loc) 1.27 kB
function decodeBase64(base64, enableUnicode) { var binaryString = atob(base64); if (enableUnicode) { var binaryView = new Uint8Array(binaryString.length); for (var i = 0, n = binaryString.length; i < n; ++i) { binaryView[i] = binaryString.charCodeAt(i); } const decoder = new TextDecoder("utf-16le") return decoder.decode(new Uint16Array(binaryView.buffer)); } return binaryString; } function createURL(base64, sourcemapArg, enableUnicodeArg) { var sourcemap = sourcemapArg === undefined ? null : sourcemapArg; var enableUnicode = enableUnicodeArg === undefined ? false : enableUnicodeArg; var source = decodeBase64(base64, enableUnicode); var start = source.indexOf('\n', 10) + 1; var body = source.substring(start) + (sourcemap ? '\/\/# sourceMappingURL=' + sourcemap : ''); var blob = new Blob([body], { type: 'application/javascript' }); return URL.createObjectURL(blob); } export function createBase64PaintWorkletFactory(base64, sourcemapArg, enableUnicodeArg) { var url; return function PaintWorkletFactory(options) { url = url || createURL(base64, sourcemapArg, enableUnicodeArg); return CSS.paintWorklet.addModule(url, options); }; }