UNPKG

@taiga-ui/cdk

Version:

Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance

67 lines 2.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.replaceFunctionParameters = replaceFunctionParameters; const ng_morph_1 = require("ng-morph"); const get_named_import_references_1 = require("../../utils/get-named-import-references"); function replaceFunctionParameters(items) { items.forEach((item) => replaceFunctionParameter(item)); } function replaceFunctionParameter(item) { const references = item.names.flatMap((name) => (0, get_named_import_references_1.getNamedImportReferences)(name, item.moduleSpecifier)); references.forEach((ref) => { if (ref.wasForgotten()) { return; } const parent = ref.getParent(); if (!ng_morph_1.Node.isCallExpression(parent)) { return; } const [value] = parent.getArguments(); if (!ng_morph_1.Node.isObjectLiteralExpression(value)) { return; } item.parameters.forEach(({ name, renameTo, remove }) => { const property = value.getProperty(name); if (!property) { return; } if (remove) { property.remove(); return; } if (item.valueReplacer) { const stringLiteral = property.getLastChildIfKind(ng_morph_1.SyntaxKind.StringLiteral); if (stringLiteral) { item.valueReplacer.forEach(({ from, to }) => { if (stringLiteral.getLiteralValue() === from) { stringLiteral.setLiteralValue(to); } }); } else { const arrayLiteral = property.getLastChildIfKind(ng_morph_1.SyntaxKind.ArrayLiteralExpression); arrayLiteral === null || arrayLiteral === void 0 ? void 0 : arrayLiteral.getElements().forEach((element) => { if (!ng_morph_1.Node.isStringLiteral(element)) { return; } item.valueReplacer.forEach(({ from, to }) => { if (element.getLiteralValue() === from) { element.setLiteralValue(to); } }); }); } } if (!renameTo) { return; } if (ng_morph_1.Node.isPropertyAssignment(property)) { property.rename(renameTo); } if (ng_morph_1.Node.isShorthandPropertyAssignment(property)) { property.replaceWithText(`${renameTo}: ${name}`); } }); }); } //# sourceMappingURL=replace-function-parameters.js.map