UNPKG

@navikt/aksel

Version:

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

33 lines (32 loc) 1.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = transformer; const legacy_tokens_1 = require("../config/legacy.tokens"); function transformer(file) { let src = file.source; for (const [name, config] of Object.entries(legacy_tokens_1.legacyTokenConfig)) { if (!config.twOld || !config.twNew || !config.regexes.tailwind) { continue; } const isBreakpoint = name.includes("breakpoint"); if (isBreakpoint) { src = src.replace(config.regexes.tailwind, `${config.twNew}:`); continue; } const beforeSplit = config.twOld.split(","); const afterSplit = config.twNew.split(","); src = src.replace(config.regexes.tailwind, (match) => { const trimmed = match.trim(); const cleanToken = trimmed.replace(":", ""); const index = beforeSplit.indexOf(cleanToken); if (index >= 0) { const withPrefix = trimmed.startsWith(":"); const addSpace = match.startsWith(" "); const replacementToken = afterSplit[index]; return `${addSpace ? " " : ""}${withPrefix ? ":" : ""}${replacementToken}`; } return match; }); } return src; }