@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
JavaScript
;
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