modify-source-webpack-plugin
Version:
Webpack plugin for modifying modules source
53 lines • 1.92 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
exports.__esModule = true;
var path_1 = __importDefault(require("path"));
var operations_1 = require("./operations");
var validate = require('schema-utils').validate;
var schema = {
type: 'object',
properties: {
operations: {
type: 'array',
items: {
type: 'object'
}
},
moduleRequest: {
type: 'string'
},
constants: {
type: 'object'
}
},
additionalProperties: false
};
function modifyModuleSourceLoader(source) {
var options = this.getOptions
? this.getOptions()
: require('loader-utils-webpack-v4').getOptions(this);
validate(schema, options, {
name: 'ModifySourcePlugin webpack loader'
});
var cleanPath = options.moduleRequest.split('?')[0];
var fileName = path_1["default"].basename(cleanPath);
return options.operations.reduce(function (sourceText, serializableOp) {
var operation = operations_1.Operation.fillConstants(operations_1.Operation.fromSerializable(serializableOp), __assign(__assign({}, options.constants), { FILE_PATH: cleanPath, FILE_NAME: fileName }));
return operations_1.Operation.apply(sourceText, operation);
}, source);
}
exports["default"] = modifyModuleSourceLoader;
//# sourceMappingURL=loader.js.map
;