Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
return {
closureSymbols: dep.closureSymbols,
path: dep.path,
type: dep.type,
language: dep.language,
// Don't copy `import.from` to avoid circular dependency in JSON.stringify.
imports: dep.imports.map(i => ({
symOrPath: i.symOrPath,
// Convert getter methods to properties to transfer with postMessage() to workers.
isGoogRequire: i.isGoogRequire(),
isEs6Import: i.isEs6Import(),
})),
};
}
workerpool.worker({ parseDependency: parse });
const cacheCls = cacheOpts.cls || Cache.NoopCache.name;
delete cacheOpts.cls;
const cache = Cache[cacheCls].create(cacheOpts);
// Create worker methods for each corresponding action.
// The generated methods look like `sizes(...).then(...)`
const wrapMethod = (action, compressor) => (args) =>
new Promise((resolve, reject) =>
actions(action)(
Object.assign({}, args, { compressor }),
(err, result) => err ? reject(err) : resolve(result)
));
// Create each action method, injecting a compressor
// instance for each one.
workerpool.worker(
Object.keys(actions.ACTIONS).reduce(
(acc, action) => Object.assign({}, acc, {
[action]: wrapMethod(
action,
Compressor.create({ cache })
)
}),
{}
)
);