Build static Astro pilot for Happy Tails

This commit is contained in:
Kevin
2026-09-02 00:54:33 -04:00
parent cfe0a7d98d
commit 56a80951b7
42 changed files with 7171 additions and 134 deletions
+22
View File
@@ -0,0 +1,22 @@
import Ajv2020 from 'ajv/dist/2020.js';
import addFormats from 'ajv-formats';
import { readFile } from 'node:fs/promises';
const readJson = async (path) => JSON.parse(await readFile(path, 'utf8'));
const ajv = new Ajv2020({ allErrors: true, strict: true });
addFormats(ajv);
const [intakeSchema, sitesSchema, validIntake, invalidIntake, sites] = await Promise.all([
readJson('schemas/intake.v1.schema.json'),
readJson('schemas/sites.schema.json'),
readJson('fixtures/intake.v1.valid.json'),
readJson('fixtures/intake.v1.invalid.json'),
readJson('sites.json')
]);
const validIntakeCheck = ajv.compile(intakeSchema);
const sitesCheck = ajv.compile(sitesSchema);
if (!validIntakeCheck(validIntake)) throw new Error(`Valid intake rejected: ${ajv.errorsText(validIntakeCheck.errors)}`);
if (validIntakeCheck(invalidIntake)) throw new Error('Invalid intake fixture was accepted');
if (!sitesCheck(sites)) throw new Error(`Sites manifest rejected: ${ajv.errorsText(sitesCheck.errors)}`);
console.log('Schema fixtures and sites manifest are valid.');