casterly
Version:
CLI for Casterly
28 lines (27 loc) • 1.25 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const paths_1 = __importDefault(require("../../paths"));
const PLUGIN_NAME = 'RouteChunksRegisterPlugin';
const ROUTES_REGISTER_LOADER = require.resolve('../loaders/routes-register-loader');
class RouteChunksRegisterPlugin {
apply(compiler) {
compiler.hooks.compilation.tap(PLUGIN_NAME, (_, { normalModuleFactory }) => {
normalModuleFactory.hooks.module.tap({ name: PLUGIN_NAME, stage: Infinity }, (mod, _, resolveData) => {
const module = mod;
const issuer = resolveData.contextInfo.issuer;
if (issuer === paths_1.default.appRoutesJs &&
module.userRequest.indexOf(paths_1.default.appSrc) > -1 &&
!module.loaders.find((loader) => loader.loader === ROUTES_REGISTER_LOADER)) {
module.loaders.push({
loader: ROUTES_REGISTER_LOADER,
});
}
return module;
});
});
}
}
exports.default = RouteChunksRegisterPlugin;