all files / dist/utils/renameDefinitionAs/ renameDefinitionAs.js

28.57% Statements 10/35
0% Branches 0/15
0% Functions 0/7
30.3% Lines 10/33
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60                                                                                                   
"use strict";
var RenameInfo_1 = require("./RenameInfo");
var getRenameInfosFromVariablesInModule_1 = require("./getRenameInfosFromVariablesInModule");
var getRenameInfosFromDefaultExport_1 = require("./getRenameInfosFromDefaultExport");
var renameInFile_1 = require("./renameInFile");
var renameInGlobalForExternalModules_1 = require("./renameInGlobalForExternalModules");
var renameInMainFileNamespaces_1 = require("./renameInMainFileNamespaces");
function renameDefinitionAs(opts) {
    var globalDef = opts.globalDef, definition = opts.definition, newName = opts.newName;
    var fileAndNamespaces = globalDef.getFileAndNamespacesToDefinition(definition);
    if (fileAndNamespaces == null) {
        return;
    }
    var mainFile = fileAndNamespaces.file, namespaces = fileAndNamespaces.namespaces;
    var renameInfo = RenameInfo_1.RenameInfo.createFromNamespaces({ nameFrom: definition.name, nameTo: newName, namespaceNames: namespaces.map(function (n) { return n.name; }) });
    renameInMainFileNamespaces_1.renameInMainFileNamespaces(renameInfo, namespaces);
    if (mainFile.imports.length === 0 && mainFile.getExports().length === 0 && mainFile.defaultExportExpression == null) {
        renameForInternalModules();
    }
    else {
        renameForExternalModules();
    }
    definition.name = newName;
    function renameForInternalModules() {
        var internalModuleFiles = globalDef.files.filter(function (f) { return f.imports.length === 0 && f.getExports().length === 0 && mainFile.defaultExportExpression == null; });
        var renameInfos = [renameInfo];
        internalModuleFiles.forEach(function (file) {
            renameInfos.push.apply(renameInfos, getRenameInfosFromVariablesInModule_1.getRenameInfosFromVariablesInModule({
                moduleDef: file,
                currentRenameInfos: renameInfos
            }));
        });
        internalModuleFiles.forEach(function (file) {
            renameInFile_1.renameInFile(renameInfos, file);
        });
    }
    function renameForExternalModules() {
        var fileLocalRenameInfos = getRenameInfosFromVariablesInModule_1.getRenameInfosFromVariablesInModule({
            moduleDef: mainFile,
            currentRenameInfos: [renameInfo]
        });
        var exportedRenameInfos = getRenameInfosFromDefaultExport_1.getRenameInfosFromDefaultExport({
            currentRenameInfos: [renameInfo].concat(fileLocalRenameInfos),
            file: mainFile
        });
        if (namespaces.length > 0 && namespaces[0].isNamedExportOfFile || definition.isNamedExportOfFile) {
            exportedRenameInfos.push(renameInfo);
        }
        renameInFile_1.renameInFile([renameInfo], mainFile);
        renameInGlobalForExternalModules_1.renameInGlobalForExternalModules({
            exportedRenameInfos: exportedRenameInfos,
            exportedFile: mainFile,
            globalDef: globalDef
        });
    }
}
exports.renameDefinitionAs = renameDefinitionAs;
 
//# sourceMappingURL=renameDefinitionAs.js.map