Skip to content

Commit 6b1bd5b

Browse files
committed
Add worker.expose("methodName") and use it to auto-expose exports.
1 parent 6fad436 commit 6b1bd5b

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
"eslintConfig": {
1717
"extends": "eslint-config-developit",
1818
"rules": {
19-
"prefer-spread": 0
19+
"prefer-spread": 0,
20+
"prefer-rest-params": 0
2021
}
2122
},
2223
"files": [

src/index.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,14 @@ export default function workerize(code, options) {
4141
callbacks[id] = [resolve, reject];
4242
worker.postMessage({ type: 'RPC', id, method, params });
4343
});
44-
for (let i in exports) {
45-
if (exports.hasOwnProperty(i) && !(i in worker)) {
46-
worker[i] = (...args) => worker.call(i, args);
47-
}
48-
}
4944
worker.rpcMethods = {};
5045
setup(worker, worker.rpcMethods, callbacks);
46+
worker.expose = methodName => {
47+
worker[i] = function() {
48+
return worker.call(methodName, arguments);
49+
};
50+
};
51+
for (i in exports) if (!(i in worker)) worker.expose(i);
5152
return worker;
5253
}
5354

0 commit comments

Comments
 (0)