/* eslint-env node */ /* eslint-disable import/no-import-module-exports */ /* eslint-disable import/no-commonjs */ import StyleDictionary from "style-dictionary"; import type { Config } from "style-dictionary"; import { config } from "dotenv"; import "./formats/fontFace.js"; import "./formats/jsSimpleObject.js"; import "./formats/utilityClasses.js"; import "./formats/vanillaExtractSprinkleValues.js"; import "./transforms/attrFont.js"; import "./transforms/attrGridColumns.js"; import "./transforms/valueShadow.js"; config({ path: "../../../.env" }); function configureTransforms(sdConfig: Config): Config { for (const platform of Object.values(sdConfig.platforms)) { platform.transforms = [ ...platform.transforms.filter((transform) => !["color/hex", "size/rem"].includes(transform)), "size/pxToRem", "attribute/grid-columns", "attribute/font", "value/shadow", "color/hex8" ]; } return sdConfig; } StyleDictionary.extend( configureTransforms({ source: ["./src/tokens/**/*.json"], platforms: { "css-fonts": { buildPath: "lib/", files: [ { format: "font-face", destination: "font.css", }, ], transforms: StyleDictionary.transformGroup.css, }, css: { buildPath: "lib/css/", files: [ { format: "css/variables", destination: "tokens.css", }, { format: "css/utility-classes", destination: "utils.css", }, ], transforms: StyleDictionary.transformGroup.css, }, scss: { buildPath: "lib/scss/", files: [ { format: "scss/variables", destination: "tokens.scss", }, { format: "scss/utility-classes", destination: "utils.scss", }, ], transforms: StyleDictionary.transformGroup.scss, }, ts: { files: [ { format: "javascript/detailed-object", destination: "src/dictionary.ts", }, { format: "javascript/simple-object", destination: "src/tokens.ts", }, { format: "vanilla-extract/sprinkle-values", destination: "src/vanilla-extract/sprinkleValues.ts", }, ], transforms: StyleDictionary.transformGroup.js, }, }, }) ).buildAllPlatforms();