Project Files
scripts / inline-data.mjs
#!/usr/bin/env node
// Lit src/data/* et écrit src/data.ts avec les contenus en string.
// Ainsi esbuild (lms dev) bundle tout en un seul .js, plus de fs au runtime.
import { readFileSync, writeFileSync } from "node:fs";
import { join, dirname } from "node:path";
import { fileURLToPath } from "node:url";
const here = dirname(fileURLToPath(import.meta.url));
const root = join(here, "..");
const systemPrompt = readFileSync(join(root, "src/data/system-prompt.md"), "utf8");
const jsonl = readFileSync(join(root, "src/data/verified.jsonl"), "utf8");
const sujetsSeed = readFileSync(join(root, "src/data/sujets-seed.jsonl"), "utf8");
const pedagogieMd = readFileSync(join(root, "PEDAGOGIE.md"), "utf8");
const out = `// AUTO-GENERATED by scripts/inline-data.mjs — DO NOT EDIT BY HAND.
// Source: src/data/system-prompt.md, src/data/verified.jsonl,
// src/data/sujets-seed.jsonl, PEDAGOGIE.md
export const SYSTEM_PROMPT_TEMPLATE: string = ${JSON.stringify(systemPrompt)};
export const VERIFIED_JSONL: string = ${JSON.stringify(jsonl)};
export const SUJETS_SEED_JSONL: string = ${JSON.stringify(sujetsSeed)};
export const PEDAGOGIE_MD: string = ${JSON.stringify(pedagogieMd)};
`;
writeFileSync(join(root, "src/data.ts"), out);
console.log(
`inlined: prompt=${systemPrompt.length}B, jsonl=${jsonl.length}B, ` +
`sujets-seed=${sujetsSeed.length}B, pedagogie=${pedagogieMd.length}B → src/data.ts`,
);