sample-metadata.ts (779B)
1 import fs from "node:fs"; 2 import path from "node:path"; 3 4 import dotenv from "dotenv"; 5 6 const PROJECT_ROOT = process.cwd(); 7 dotenv.config({ path: path.join(PROJECT_ROOT, ".env") }); 8 9 const SOURCE = path.join(PROJECT_ROOT, "data", "metadata.tsv"); 10 const OUT = path.join(PROJECT_ROOT, "data", "metadata.sample.tsv"); 11 const MAX_LINES = Number(process.env.SAMPLE_LINES ?? "500"); 12 13 function main() { 14 if (!fs.existsSync(SOURCE)) { 15 console.error(`Source not found: ${SOURCE}`); 16 process.exit(1); 17 } 18 const raw = fs.readFileSync(SOURCE, "utf-8"); 19 const lines = raw.split(/\r?\n/).filter((l) => l.trim()); 20 const slice = lines.slice(0, MAX_LINES); 21 fs.writeFileSync(OUT, `${slice.join("\n")}\n`, "utf-8"); 22 console.info(`Wrote ${slice.length} lines to ${OUT}`); 23 } 24 25 main();