feat: add version key into `palette.json` (#91)

* feat: add version key to palette json

* feat: import deno.json directly

* chore: update mod.ts & release please config

* fix: avoid jsr (no-slow-types) error

"Destructuring in exports is not supported. Instead of destructuring,
export each symbol individually."

ref: https://jsr.io/docs/about-slow-types#typescript-restrictions

* fix: make sure to export non-destructured value

---------

Co-authored-by: backwardspy <backwardspy@pigeon.life>
This commit is contained in:
Hammy 2024-09-20 19:15:25 +01:00 committed by GitHub
parent cf765d2269
commit e76a60a712
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 40 additions and 10 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
dist/
node_modules/
.DS_STORE

View File

@ -1,6 +1,6 @@
import { assertEquals } from "std/assert/assert_equals.ts";
import { flavorEntries, flavors } from "@catppuccin/palette";
import { flavorEntries, flavors, version } from "@catppuccin/palette";
import palette from "@/palette.json" with { type: "json" };
Deno.test("flavorEntries", () => {
@ -21,3 +21,7 @@ Deno.test("flavors", () => {
);
});
});
Deno.test("version", () => {
assertEquals(version, "1.2.0"); // x-release-please-version
});

24
mod.ts
View File

@ -187,17 +187,25 @@ export type ColorFormat = Readonly<{
accent: boolean;
}>;
const { version: _, ...jsonFlavors } = definitions;
/**
* The version of the Catppuccin palette
*/
export const version = definitions.version;
/**
* All flavors of Catppuccin
*/
export const flavors: CatppuccinFlavors = entriesFromObject(definitions)
.reduce((acc, [flavorName, flavor]) => {
acc[flavorName] = {
...flavor,
colorEntries: entriesFromObject(flavor.colors),
};
return acc;
}, {} as CatppuccinFlavors);
export const flavors: CatppuccinFlavors = entriesFromObject(
jsonFlavors,
).reduce((acc, [flavorName, flavor]) => {
acc[flavorName] = {
...flavor,
colorEntries: entriesFromObject(flavor.colors),
};
return acc;
}, {} as CatppuccinFlavors);
/**
* A typed `Object.entries()` iterable of all Catppuccin flavors

View File

@ -1,4 +1,5 @@
{
"version": "1.2.0",
"latte": {
"name": "Latte",
"emoji": "🌻",

View File

@ -8,6 +8,15 @@
"path": "deno.json",
"type": "json",
"jsonpath": "$.version"
},
{
"path": "palette.json",
"type": "json",
"jsonpath": "$.version"
},
{
"type": "generic",
"path": "mod.test.ts"
}
]
}

View File

@ -1,6 +1,8 @@
import { join } from "std/path/join.ts";
import tinycolor from "tinycolor2";
import meta from "../deno.json" with { type: "json" };
import type {
CatppuccinColors,
CatppuccinFlavor,
@ -226,7 +228,12 @@ const formatted = entriesFromObject(definitions)
const __dirname = new URL(".", import.meta.url).pathname;
const result = {
version: meta.version,
...formatted,
};
Deno.writeTextFileSync(
join(__dirname, "../palette.json"),
JSON.stringify(formatted, null, 2),
JSON.stringify(result, null, 2),
);