@noodlestan/designer-schemas v0.0.14
Designer Decisions - Schemas
A collection of JSON schemas to validate design decision inputs.

How to use
š Documentation
This collection of schemas validates inputs for all built-in decision types and models.
Schema Source
This exported constant defines where to locate the schema collection.
SchemaSource(s) are a way to pass schema collections by reference to decision validators and loaders such as buildStaticStore().
import { DEMO_DATA } from '@noodlestan/designer-decisions';
import {
createBuilderContext,
formatDecisionStatus,
formatError,
produceDecisions,
buildStaticStore,
} from '@noodlestan/designer-functions';
const options: BuilderOptions = {
decisions: [DEMO_DATA, './data'],
};
const context = createBuilderContext(options);
const build = buildStaticStore(context);
const store = await build();
if (context.hasErrors()) {
context()
.errors()
.forEach(error => console.error(formatError(error)));
throw new Error(`Store has errors.`);
}
const records = store.records();
const produced = produceDecisions(context, store);
produced.decisions().forEach(status => console.info(formatDecisionStatus(status)));
console.info('š', produced.summary());See also
Development
Make sure you README first.
!IMPORTANT This package publishes auto-generated JSON Schemas.
This package publishes a collection of JSON Schemas but these files are not checked-in anywhere.
The tool that generates the JSON files resides (and is executed from) the build tools in this repository.
This package exists solely to publish the schemas to NPM.
Build Targets
!IMPORTANT Do not add
type: moduleorexportsfields topackage.jsonas this will break Node.js ESM consumers.
This library is packaged for use both in bundlers such as Vite and Astro, as well as Node.js environments (CJS/ESM), and ts-node. For Node.js consumers, even those using import or await import() syntaxes, all imports resolve to the CJS build. This is only possible when the "type": "module" and "exports" fields are both omitted from the library's package.json.
| Consumer | Syntax | Resolves to |
|---|---|---|
| Bundlers | ESM import | module ā TS entry point src/index.ts |
node script.js | CJS require | main ā CJS build dist/cjs/index.js |
node script.mjs | ESM import | main (ignores module) |
ts-node script.ts | ESM import | main (ignores module) |
Scripts
- $
npm run dev- usesesbuildto watch andtscto emit declarations on rebuild. - $
npm run build- usesesbuildto builddist/cjsandtscto emit declarations. - $
npm run test/npm run test:watch- š§ no tests. - $
npm run lint/npm run lint:fix- uses @noodlestan/eslint-config.
MIT License
Copyright (c) 2024 Noodlestan.
Published under a MIT license.