runtime/entrypoints/seed.entrypoint.ts
runtime/entrypoints/seed.entrypoint.ts is a file in Bane's Lab Content. 40 lines of code and 7 definitions.
import {
DUPLICATE_SEED_IDS,
INCOMPLETE_SEED,
INCOMPLETE_SUFFIX,
MISSING_FIELDS,
SEEDS_SUFFIX,
SLOT_WORDS_MISSING,
WROTE,
} from "#configuration/strings/derivation.strings";
import { algoSeeds, reportOf } from "#core/converters/lesson.converter";
import { loadFaces, readModelTemplate, readModels, readOperatorProfile, seedsTarget } from "#core/loaders/seed.loader";
import { modelSeeds, slotWordsOf } from "#core/converters/invariant.converter";
import { refuse, say } from "#core/reporters/derivation.reporter";
import { SEED_COMMAND } from "#configuration/constants/contract.constants";
import { SEED_SUMMARY } from "#configuration/strings/contract.strings";
import { persistJson } from "#core/persistence/report.persistence";
import { profileSeeds } from "#core/converters/principle.converter";
import { resolveArgv } from "@govlab/argv";
resolveArgv({ command: SEED_COMMAND, flags: [], summary: SEED_SUMMARY });
const words = slotWordsOf(readModelTemplate());
if (words === null) {
refuse(SLOT_WORDS_MISSING);
}
const faces = loadFaces();
const seeds = [...algoSeeds(faces), ...modelSeeds(readModels(), words), ...profileSeeds(readOperatorProfile().text)];
const duplicates = seeds.map((seed) => seed.id).filter((id, index, ids) => ids.indexOf(id) !== index);
if (duplicates.length > 0) {
refuse(`${DUPLICATE_SEED_IDS}${duplicates.join(", ")}`);
}
const report = reportOf(seeds);
for (const incomplete of report.incomplete) {
say(`${INCOMPLETE_SEED}${incomplete.id}${MISSING_FIELDS}${incomplete.missing.join(", ")}`);
}
const target = seedsTarget();
await persistJson(target, report);
const summary = `${WROTE}${target}: ${String(report.seeds.length)}${SEEDS_SUFFIX}${String(report.incomplete.length)}${INCOMPLETE_SUFFIX}`;
if (report.incomplete.length > 0) {
refuse(summary);
}
say(summary);