@eng-automation/js
v2.2.0
Published
Parity EngAutomation common code
Downloads
235
Readme
Introduction
This repository hosts shared functionality for OpsTooling projects.
Docs
Find the docs in paritytech.github.io/opstooling-js. They are deployed automatically.
Installation
Yarn: yarn add @eng-automation/js
NPM: npm install --save @eng-automation/js
Release
Trigger the Release workflow which will create a tag with the version passed as input.
CLI
This package adds opstooling-scripts
executable, which is "umbrella" for arbitrary subcommands that we might want to share across projects.
See opstooling-scripts -h
to get a list of available commands, also check out src/cli
directory for sources
Adding new CLI command
- define new command in
src/cli/commands
, use existing ones as example - add it to
src/cli/main.ts
- optionally, update this README.md file
opstooling-scripts generate-types
We utilize joi-to-typescript to define types together with validation schemas.
To add this functionality to a project:
- define Joi schemas in
src/schemas
(seesrc/schemas
in this repo as an example) - add
src/types/generated
folder for the generated types - call
opstooling-scripts generate-types --schemas src/schemas --out src/types/generated
to generate types (makes sense to add it toscripts
inpackage.json
) - add
export * from "./types/generated"
tosrc/types.ts
if needed - commit generated types to repository
How to use generated types with validation
import { validate } from "opstooling-js"
import { YourType } from "#src/types"
import { YourTypeSchema } from "#src/schemas/YourTypeSchema"
const input: unknown = getSomeData()
const item = validate<YourType>(input, YourTypeSchema)