catppuccin-palette/sip/build.ts

60 lines
1.3 KiB
TypeScript
Executable File

#!/usr/bin/env deno run --allow-read --allow-write
const dateString = new Date().toISOString().replace(/T/, " ").replace(
/\..+/,
"",
);
const library = JSON.parse(await Deno.readTextFile("../palette.json"));
const output = [];
for (const palette in library) {
const colours = library[palette];
const name = `Catppuccin ${
palette.charAt(0).toUpperCase() + palette.slice(1)
}`;
const data = {
cloud: true,
updatedAt: dateString,
sip: {
version: "2.6",
build: "260",
},
id: crypto.randomUUID().toUpperCase(),
readOnly: false,
createdAt: dateString,
dock: false,
name: name,
index: 1,
originalName: name,
like: false,
colors: Object.keys(colours).map((key) => {
const hex = colours[key].hex;
const r = parseInt(hex.substring(1, 3), 16) / 255;
const g = parseInt(hex.substring(3, 5), 16) / 255;
const b = parseInt(hex.substring(5, 7), 16) / 255;
return {
alpha: 1,
red: r,
green: g,
blue: b,
name: key,
createdAt: dateString,
id: crypto.randomUUID().toUpperCase(),
};
}),
lock: true,
};
output.push(data);
}
output.map((palette) => {
Deno.writeTextFile(
`./${palette.name}.palette`,
JSON.stringify(palette, null, 2),
);
});