Skip to content

Commit 08649eb

Browse files
committed
Size optimizations
1 parent 3ff507b commit 08649eb

File tree

1 file changed

+5
-10
lines changed

1 file changed

+5
-10
lines changed

src/index.js

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,12 @@
2020
export default function workerize(code, options) {
2121
let exports = {};
2222
let exportsObjName = `__xpo${Math.random().toString().substring(2)}__`;
23-
if (typeof code==='function') code = `(${toCode(code)})(${exportsObjName})`;
24-
code = toCjs(code, exportsObjName, exports);
25-
code += `\n(${toCode(setup)})(self, ${exportsObjName}, {})`;
2623
let blob = new Blob([code], {
2724
type: 'application/javascript'
2825
}),
2926
url = URL.createObjectURL(blob),
27+
if (typeof code==='function') code = `(${Function.prototype.toString.call(code)})(${exportsObjName})`;
28+
code = toCjs(code, exportsObjName, exports) + `\n(${Function.prototype.toString.call(setup)})(self,${exportsObjName},{})`;
3029
worker = new Worker(url, options),
3130
term = worker.terminate,
3231
counter = 0,
@@ -54,8 +53,6 @@ export default function workerize(code, options) {
5453
return worker;
5554
}
5655

57-
function toCode(func) {
58-
return Function.prototype.toString.call(func);
5956
function setup(ctx, rpcMethods, callbacks) {
6057
ctx.addEventListener('message', ({ data }) => {
6158
let id = data.id;
@@ -83,15 +80,13 @@ function setup(ctx, rpcMethods, callbacks) {
8380
}
8481

8582
function toCjs(code, exportsObjName, exports) {
86-
exportsObjName = exportsObjName || 'exports';
87-
exports = exports || {};
8883
code = code.replace(/^(\s*)export\s+default\s+/m, (s, before) => {
8984
exports.default = true;
90-
return `${before}${exportsObjName}.default = `;
85+
return `${before}${exportsObjName}.default=`;
9186
});
9287
code = code.replace(/^(\s*)export\s+(function|const|let|var)(\s+)([a-zA-Z$_][a-zA-Z0-9$_]*)/m, (s, before, type, ws, name) => {
9388
exports[name] = true;
94-
return `${before}${exportsObjName}.${name} = ${type}${ws}${name}`;
89+
return `${before}${exportsObjName}.${name}=${type}${ws}${name}`;
9590
});
96-
return `var ${exportsObjName} = {};\n${code}\n${exportsObjName};`;
91+
return `var ${exportsObjName}={};\n${code}\n${exportsObjName};`;
9792
}

0 commit comments

Comments
 (0)