cloudflare/kumo

Public

mirrored fromhttps://github.com/cloudflare/kumoAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
5260f1a5703bb69e6c7f7cf0ce8033a561cac8b5

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

packages/kumo-figma/src/build-loader-data.ts

46lines · modecode

1#!/usr/bin/env npx tsx
2/**
3 * Build Loader Data
4 *
5 * Parses loader.tsx and generates loader-data.json for the Figma plugin.
6 * This runs at BUILD TIME before bundling the plugin.
7 *
8 * Usage:
9 * pnpm --filter @cloudflare/kumo-figma build:data
10 *
11 * Output:
12 * packages/kumo-figma/src/generated/loader-data.json
13 */
14
15import { writeFileSync, mkdirSync } from "node:fs";
16import { join, dirname } from "node:path";
17import { fileURLToPath } from "node:url";
18import { parseLoaderSvg } from "./parsers/loader-parser";
19
20const __filename = fileURLToPath(import.meta.url);
21const __dirname = dirname(__filename);
22
23// Parse loader from loader.tsx
24console.log("📖 Parsing loader.tsx...");
25const loaderData = parseLoaderSvg();
26
27console.log(`✅ Extracted loader SVG`);
28console.log(` - viewBox: ${loaderData.viewBox}`);
29console.log(` - circles: ${loaderData.circles.length}`);
30console.log(
31 ` - sizes: ${Object.keys(loaderData.sizes).join(", ")} (${Object.values(
32 loaderData.sizes,
33 )
34 .map((s) => s.value + "px")
35 .join(", ")})`,
36);
37
38// Ensure generated directory exists
39const generatedDir = join(__dirname, "generated");
40mkdirSync(generatedDir, { recursive: true });
41
42// Write loader data as JSON
43const outputPath = join(generatedDir, "loader-data.json");
44writeFileSync(outputPath, JSON.stringify(loaderData, null, 2));
45
46console.log(`✅ Wrote ${outputPath}`);
47