0.0.14 • Published 1 year ago

@noodlestan/designer-schemas v0.0.14

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Designer Decisions - Schemas

A collection of JSON schemas to validate design decision inputs.

npm.io

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: module or exports fields to package.json as 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.

ConsumerSyntaxResolves to
BundlersESM importmodule → TS entry point src/index.ts
node script.jsCJS requiremain → CJS build dist/cjs/index.js
node script.mjsESM importmain (ignores module)
ts-node script.tsESM importmain (ignores module)

Scripts

  • $ npm run dev - uses esbuild to watch and tsc to emit declarations on rebuild.
  • $ npm run build - uses esbuild to build dist/cjs and tsc to 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.

0.0.14

1 year ago

0.0.12

1 year ago

0.0.11

1 year ago

0.0.10

1 year ago

0.0.9

1 year ago

0.0.8

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago