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

36.36% Statements 12/33
0% Branches 0/18
11.11% Functions 1/9
37.5% Lines 12/32
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                                                                       
"use strict";
var definitions = require("./../../definitions");
var renameDefinitionInText_1 = require("./renameDefinitionInText");
var StringHashSet_1 = require("./../StringHashSet");
var ModuleBodyRenamer = (function () {
    function ModuleBodyRenamer(renameInfo, moduleDef) {
        this.renameInfo = renameInfo;
        this.moduleDef = moduleDef;
        this.lookedAtObjectsByName = new StringHashSet_1.StringHashSet();
    }
    ModuleBodyRenamer.renameInModule = function (renameInfo, moduleDef) {
        new ModuleBodyRenamer(renameInfo, moduleDef).rename();
    };
    ModuleBodyRenamer.prototype.rename = function () {
        this.iterateObj(this.moduleDef);
    };
    ModuleBodyRenamer.prototype.iterateObj = function (obj) {
        var def = obj;
        if (obj instanceof Array) {
            this.handleArray(obj);
        }
        else if (def != null && typeof def === "object" && typeof def.__uniqueID === "number" && !this.lookedAtObjectsByName.contains(def.__uniqueID.toString())) {
            this.handleObject(def);
        }
    };
    ModuleBodyRenamer.prototype.handleArray = function (obj) {
        var _this = this;
        obj.forEach(function (item) { return _this.iterateObj(item); });
    };
    ModuleBodyRenamer.prototype.handleObject = function (def) {
        var _this = this;
        this.lookedAtObjectsByName.add(def.__uniqueID.toString());
        Object.keys(def).forEach(function (key) {
            var isNamespacesProperty = (def instanceof definitions.NamespaceDefinition || def instanceof definitions.FileDefinition) && key === "namespaces";
            if (!isNamespacesProperty) {
                _this.iterateObj(def[key]);
            }
        });
        if (def instanceof definitions.TypeDefinition || def instanceof definitions.TypeNodeDefinition || def instanceof definitions.ExpressionDefinition) {
            def.text = renameDefinitionInText_1.renameDefinitionInText(def.text, this.renameInfo.fullNameFrom, this.renameInfo.fullNameTo);
        }
    };
    return ModuleBodyRenamer;
}());
exports.ModuleBodyRenamer = ModuleBodyRenamer;
 
//# sourceMappingURL=ModuleBodyRenamer.js.map