21 lines
1.1 KiB
TypeScript
21 lines
1.1 KiB
TypeScript
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
import { resolve } from "node:path";
|
|
|
|
import type { CustomJsxAuthoringCatalog } from "../src/core/component-catalog-types";
|
|
import { renderCustomWidgetComponentReferences } from "./component-docs";
|
|
|
|
const packageRoot = resolve(import.meta.dirname, "..");
|
|
const sourcePath = resolve(packageRoot, "src/core/component-catalog.generated.json");
|
|
const publicDirectory = resolve(packageRoot, "../../apps/docs/static/custom-widgets");
|
|
const publicPath = resolve(publicDirectory, "component-catalog-v1.json");
|
|
const skillReferenceDirectory = resolve(packageRoot, "../../.agents/skills/homarr-custom-widget/references");
|
|
const contents = await readFile(sourcePath, "utf8");
|
|
const catalog = JSON.parse(contents) as CustomJsxAuthoringCatalog;
|
|
const references = renderCustomWidgetComponentReferences(catalog);
|
|
|
|
await Promise.all([mkdir(publicDirectory, { recursive: true }), mkdir(skillReferenceDirectory, { recursive: true })]);
|
|
await Promise.all([
|
|
writeFile(publicPath, contents),
|
|
...Object.entries(references).map(([path, content]) => writeFile(resolve(skillReferenceDirectory, path), content)),
|
|
]);
|