Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/composer / dist / OverridePlugin / OverridePlugin.js
Size: Mime:
"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