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}`);
}