Type, JSON schema and validator for cross section set used in low-temperature plasma community.
Package with JSON schemas, validator and Typescript types of LXCat documents.
LXCat is an open-access website for collecting, displaying, and downloading electron and ion scattering cross sections for modeling low temperature plasmas.
The validation is multi-step, first the input is checked against a JSON schema and then the quantum numbers of the members of the input reactions are checked.
pnpm install @lxcat/schema
To get Typescript type for a LXCat Cross Section Set
import type { CrossSectionSetRaw } from "@lxcat/schema/dist/css/inpu";
To get JSON schema for a LXCat Cross Section Set
import schema from "@lxcat/schema/dist/css/CrossSectionSetRaw.schema.json";
(your tsconfig should be confgured for JSON imports)
To validate a LXCat Cross Section Set document
import { Validator } from '@lxcat/schema/dist/css/validate'
const validator = new Validator()
// Some JSON document to validate
const doc = ...
if (validator.validate(doc)) {
// is valid
// doc is now of type CrossSectionSetRaw which can be imported with
} else {
console.log(validator.errors)
// List of validation errors in format of https://ajv.js.org/api.html#validation-errors
}
pnpm -C packages/schema install
The JSON schemas (src/**/*.schema.json
files) can be generated with
pnpm json
Whenever the types from which the schemas are derived are changed then this command should be run.
See code contributor doc.
API documentation can be generated using typedoc with
npx typedoc --entryPointStrategy expand src
A docs/index.html
should have been written.
To publish @lxcat/schema
to npmjs.com perform the following steps:
packages/schema/package.json
with pnpm version <patch|minor|major> -w @lxcat/schema --update-workspaces=false
packages/schema/
directorypnpm whoami --scope lxcat
and optionally login in with pnpm login --scope lxcat --publish
pnpm dev
is not runningpnpm clean
pnpm publish --otp <otp code>
git tag @lxcat/schema@<value at packages/schema/package.json:version>
and git push origin --tags
New tools for researchers in plasma, combustion and chemical reactor science