Newer
Older
vmk-ui-kit / scripts / list-mode1-tokens.js
const fs = require("fs");
const path = require("path");

const file = process.argv[2] || path.join(__dirname, "..", "figma design parts", "vars", "Mode 1.tokens.json");
const tokens = JSON.parse(fs.readFileSync(file, "utf8"));

function flatten(obj, prefix = "") {
  const out = [];
  for (const [key, value] of Object.entries(obj)) {
    const full = prefix ? `${prefix}/${key}` : key;
    if (value && typeof value === "object") {
      if (value["$type"] && value["$value"] !== undefined) {
        out.push({ name: full, type: value["$type"], value: value["$value"] });
      } else {
        out.push(...flatten(value, full));
      }
    }
  }
  return out;
}

const flat = flatten(tokens);
flat.sort((a, b) => a.name.localeCompare(b.name));

for (const t of flat) {
  let displayValue = t.value;
  if (typeof displayValue === "object" && displayValue.hex) displayValue = displayValue.hex;
  console.log(`${t.name}: ${displayValue}`);
}