Sha256: 849579be618a82787c9ca2a1c4ad370aae50f6308b990b11b417124ce6bb2539
Contents?: true
Size: 1.4 KB
Versions: 28
Compression:
Stored size: 1.4 KB
Contents
/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; const NullDependency = require("./NullDependency"); class RequireEnsureDependency extends NullDependency { constructor(block) { super(); this.block = block; } get type() { return "require.ensure"; } } RequireEnsureDependency.Template = class RequireEnsureDependencyTemplate { apply(dep, source, runtime) { const depBlock = dep.block; const promise = runtime.blockPromise({ block: depBlock, message: "require.ensure" }); const errorCallbackExists = depBlock.expr.arguments.length === 4 || (!depBlock.chunkName && depBlock.expr.arguments.length === 3); const startBlock = `${promise}.then((`; const middleBlock = ").bind(null, __webpack_require__)).catch("; const endBlock = `).bind(null, __webpack_require__)).catch(${runtime.onError()})`; source.replace( depBlock.expr.range[0], depBlock.expr.arguments[1].range[0] - 1, startBlock ); if (errorCallbackExists) { source.replace( depBlock.expr.arguments[1].range[1], depBlock.expr.arguments[2].range[0] - 1, middleBlock ); source.replace( depBlock.expr.arguments[2].range[1], depBlock.expr.range[1] - 1, ")" ); } else { source.replace( depBlock.expr.arguments[1].range[1], depBlock.expr.range[1] - 1, endBlock ); } } }; module.exports = RequireEnsureDependency;
Version data entries
28 entries across 27 versions & 9 rubygems