npm package diff
Package: @forge/bundler
Versions: 6.0.0-next.13 - 6.0.0-next.14
File: package/out/stub-plugin.js
Index: package/out/stub-plugin.js
===================================================================
--- package/out/stub-plugin.js
+++ package/out/stub-plugin.js
@@ -1,58 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.StubPlugin = void 0;
-const ConstDependency = require('webpack/lib/dependencies/ConstDependency');
-class StubPlugin {
- modules;
- placeholder;
- stub;
- constructor({ modules = [], placeholder, stub = '' }) {
- this.modules = modules;
- this.placeholder = placeholder;
- this.stub = stub;
- }
- apply(compiler) {
- compiler.resolverFactory.hooks.resolver.for('normal').tap(StubPlugin.name, (resolver) => {
- resolver.hooks.resolve.tapAsync(StubPlugin.name, (request, resolveContext, callback) => {
- const requestedModule = request.request;
- if (!this.modules.includes(requestedModule)) {
- return callback();
- }
- const stubRequest = `${this.stub}?${requestedModule}`;
- resolver.doResolve(resolver.hooks.resolve, {
- ...request,
- request: stubRequest
- }, `Stub for ${requestedModule}`, resolveContext, callback);
- });
- });
- if (this.placeholder) {
- compiler.hooks.normalModuleFactory.tap(StubPlugin.name, (normalModuleFactory) => {
- normalModuleFactory.hooks.parser.for('javascript/auto').tap(StubPlugin.name, (parser) => {
- parser.hooks.program.tap(StubPlugin.name, (ast) => {
- if (parser.state.current.request && parser.state.current.request.includes(this.stub)) {
- const requestedModule = parser.state.module.rawRequest;
- const declaration = this.getDeclaration(ast, this.placeholder);
- if (declaration) {
- const replacement = new ConstDependency(`const ${this.placeholder} = '${requestedModule}';`, declaration.range);
- replacement.loc = declaration.loc;
- parser.state.current.addDependency(replacement);
- }
- }
- });
- });
- });
- }
- }
- getDeclaration(ast, name) {
- return ast.body.find((node) => {
- if (node.type === 'VariableDeclaration') {
- return node.declarations.find((declaration) => {
- if (declaration.id.name === name) {
- return declaration;
- }
- });
- }
- });
- }
-}
-exports.StubPlugin = StubPlugin;