UNPKG

@navikt/aksel

Version:

Aksel command line interface. Codemods and other utilities for Aksel users.

73 lines (72 loc) 1.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = transformer; const lineterminator_1 = require("../../../utils/lineterminator"); /** * @param {import('jscodeshift').FileInfo} file * @param {import('jscodeshift').API} api */ function transformer(file, api) { const j = api.jscodeshift; let localName = "Chat"; const root = j(file.source); /* Finds used name for Chat component */ root .find(j.ImportDeclaration) .filter((path) => path.node.source.value === "@navikt/ds-react") .forEach((imp) => { imp.value.specifiers.forEach((x) => { if (x.imported.name === "Chat" && x.local.name !== x.imported.name) { localName = x.local.name; } }); }); root .find(j.JSXElement, { openingElement: { name: { name: localName, }, }, }) .forEach((path) => { j(path) .find(j.JSXAttribute, { name: { name: "backgroundColor", }, }) .remove(); j(path) .find(j.JSXAttribute, { name: { name: "avatarBgColor", }, }) .remove(); }); root .find(j.JSXElement, { openingElement: { name: { type: "JSXMemberExpression", object: { name: localName, }, property: { name: "Bubble", }, }, }, }) .forEach((path) => { j(path) .find(j.JSXAttribute, { name: { name: "backgroundColor", }, }) .remove(); }); return root.toSource((0, lineterminator_1.getLineTerminator)(file.source)); }