casterly
Version:
CLI for Casterly
34 lines (33 loc) • 1.54 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = __importDefault(require("path"));
// @ts-ignore
const ImportDependency_1 = __importDefault(require("webpack/lib/dependencies/ImportDependency"));
const paths_1 = __importDefault(require("../../../paths"));
class RouteImportDependencyTemplate extends ImportDependency_1.default.Template {
constructor(parentCompilation) {
super();
this.parentCompilation = parentCompilation;
}
apply(dependency, source, templateContext) {
const { moduleGraph } = templateContext;
const parentModule = moduleGraph.getParentModule(dependency);
const parentUserRequest = parentModule.userRequest;
if (parentUserRequest !== paths_1.default.appRoutesJs) {
return super.apply(dependency, source, templateContext);
}
const module = moduleGraph.getResolvedModule(dependency);
const userRequest = module.userRequest;
const moduleId = '.' +
path_1.default.sep +
path_1.default.relative(this.parentCompilation.compiler.context, userRequest);
const start = dependency.range[0];
const end = dependency.range[1] - 1;
// @ts-ignore: last parameter is optional
source.replace(start, end, JSON.stringify(moduleId.toString()));
}
}
exports.default = RouteImportDependencyTemplate;
;