Skip to content

Commit

Permalink
Fix: sanitise options before passing to worker-loader
Browse files Browse the repository at this point in the history
  • Loading branch information
jackyef committed Jan 10, 2020
1 parent 6aa4568 commit 4d28c50
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,26 @@
import path from 'path';
import loaderUtils from 'loader-utils';

const comlinkLoaderSpecificOptions = ['multiple', 'multi', 'singleton'];

export default function loader () { }

loader.pitch = function (request) {
const options = loaderUtils.getOptions(this) || {};
const multi = options.multiple || options.multi || options.singleton === false;
const workerLoaderOptions = { ...options };

comlinkLoaderSpecificOptions.forEach(key => {
if (workerLoaderOptions[key]) {
delete workerLoaderOptions[key];
}
});

return `
import {Comlink} from 'comlinkjs';
${multi ? '' : 'var inst;'}
export default function f() {
${multi ? 'var inst =' : 'inst = inst ||'} Comlink.proxy(require('!worker-loader?${JSON.stringify(options)}!${path.resolve(__dirname, 'comlink-worker-loader.js')}!${request}')());
${multi ? 'var inst =' : 'inst = inst ||'} Comlink.proxy(require('!worker-loader?${JSON.stringify(workerLoaderOptions)}!${path.resolve(__dirname, 'comlink-worker-loader.js')}!${request}')());
return this instanceof f ? new inst : inst;
}
`.replace(/\n\s*/g, '');
Expand Down

0 comments on commit 4d28c50

Please sign in to comment.