@navikt/aksel
Version:
Aksel command line interface. Handles css-imports, codemods and more
30 lines (29 loc) • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = transformer;
const ast_1 = require("../../../utils/ast");
const lineterminator_1 = require("../../../utils/lineterminator");
const translate_token_1 = require("../../../utils/translate-token");
const spacing_utils_1 = require("../spacing.utils");
function transformer(file, api) {
const j = api.jscodeshift;
let root = j(file.source);
spacing_utils_1.legacySpacingTokenMap.forEach((newVar, oldVar) => {
const oldCSSVar = (0, translate_token_1.translateToken)(`--a-spacing-${oldVar}`, "js");
const newCSSVar = (0, translate_token_1.translateToken)(`--a-space-${newVar}`, "js");
const name = (0, ast_1.findComponentImport)({
root,
j,
name: oldCSSVar,
packageType: "tokens",
});
if (!name) {
return;
}
let code = root.toSource((0, lineterminator_1.getLineTerminator)(file.source));
const rgx = new RegExp("(" + oldCSSVar + ")", "gm");
code = code.replace(rgx, newCSSVar);
root = j(code);
});
return root.toSource((0, lineterminator_1.getLineTerminator)(file.source));
}