Sign in
Ctrl K

LXCat schema

Type, JSON schema and validator for cross section set used in low-temperature plasma community.


What LXCat schema can do for you


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 {
    // List of validation errors in format of


Install dependencies

pnpm -C packages/schema install

Generate JSON schemas

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

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 perform the following steps:

  1. Set version in packages/schema/package.json with pnpm version <patch|minor|major> -w @lxcat/schema --update-workspaces=false
  2. Commit and push changes to main branch
  3. Change to packages/schema/ directory
  4. Make sure you are logged in on npm by checking with pnpm whoami --scope lxcat and optionally login in with pnpm login --scope lxcat --publish
  5. Make sure pnpm dev is not running
  6. Clean dist/ with pnpm clean
  7. Publish with pnpm publish --otp <otp code>
  8. Create git tag for version with git tag @lxcat/schema@<value at packages/schema/package.json:version> and git push origin --tags
No keywords available
</>Source code

Participating organisations

Netherlands eScience Center
Eindhoven University of Technology


Contact person


Daan Boer

Eindhoven University of Technology
Daan Boer
Eindhoven University of Technology
Suvayu Ali
Netherlands eScience Center

Related projects

Passing XSAMS

New tools for researchers in plasma, combustion and chemical reactor science

Updated 18 months ago