Repository URL to install this package:
|
Version:
1.3.2 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const di_1 = require("@skava/di");
const ModuleReplacementOverridePlugin_1 = require("../ModuleReplacementOverridePlugin");
const paths_1 = require("../paths");
const deps_1 = require("./deps");
const find_1 = require("./find");
const createManifest_1 = require("./createManifest");
// process.env.LOG_COMPOSER = 'true'
function aliasNodeModules(result, original) {
const resolved = deps_1.resolveToRoot('node_modules') + '/' + original.slice(0).pop();
// @todo enhanced resolve?
// if (exists(resolved)) {}
result.request = resolved;
result.resource = result.request;
}
class OverridePlugin {
constructor(overrideConfig = paths_1.overridable) {
this.matchable = {
test(match) {
const isMatch = typeof match === 'string' && match.includes('./') === false;
return isMatch;
},
};
this.replacementHandler = (result) => {
// ignore relative paths
if (typeof result.request !== 'string') {
return;
}
if (result.request.includes('./')) {
return;
}
const appRootDir = di_1.config.get('appRootDir');
const appRootOneUp = deps_1.oneUp(appRootDir);
const appRootTwoUp = deps_1.oneUp(appRootOneUp);
const request = result.request
.replace(appRootDir, '')
.replace(appRootOneUp, '^')
.replace(appRootTwoUp, '^^');
// @todo resolve aliases here
const original = result.request.split('node_modules');
// +
if (request.includes('@si')) {
result.request = find_1.find(result.request);
}
// @todo resolve others this same way
else if (request.includes('xmobx') ||
request.includes('react') ||
request.includes('uxui-modules')) {
// console.log({ original })
// console.log(result.request)
// aliasNodeModules(result, original)
}
// else if (request.includes('@skava/modules')) {
// // aliasNodeModules(result, original)
// }
// composer logs
else if (process.env.LOG_COMPOSER) {
console.log(request);
}
};
this.overrideConfig = overrideConfig;
createManifest_1.createManifest();
}
get plugin() {
return new ModuleReplacementOverridePlugin_1.ModuleReplacementOverridePlugin(this.matchable, this.replacementHandler);
}
}
exports.OverridePlugin = OverridePlugin;
//# sourceMappingURL=OverridePlugin.js.map