GitXplorerGitXplorer
N

typeguard-composer

public
0 stars
0 forks
10 issues

Commits

List of commits on branch develop.
Unverified
d55569d14ffedac891d0862359207dc43dd39767

docs: udpate README

NNoNameProvided committed 5 years ago
Unverified
e56cb51e8ba63e2019662f1d5038c52eda17370b

feat: update code docs & add wrapper type for schema

NNoNameProvided committed 5 years ago
Unverified
0154464d5c2fe7b7f8e8eb4406f9862048b6fdba

build: run tests in verbose mode

NNoNameProvided committed 5 years ago
Unverified
761af4e3083e1456f635e9d194c6e95c24b652f9

docs: update contribution guide

NNoNameProvided committed 5 years ago
Unverified
ff891f8dae5f47bf72724ffb9518296532a5c59d

build: update deployment workflow

NNoNameProvided committed 5 years ago
Verified
0a7c4cee2dc305229f5936aa4fcd3105d57ff6c2

merge: release 0.9.10

NNoNameProvided committed 5 years ago

README

The README file for this repository.

typeguard-composer

CI codecov

Performant and composable type guards for runtime data validation.

import { validate } from 'typeguard-composer';
import { isString, isNumber } from 'typeguard-composer/validators';
import { AddressSchema } from './my-address.schema';

/**
 * Schemas are simple object where every value is an object or
 * array containing type guard functions or a single type guard function.
 */
const PersonSchema = {
  name: isString,
  age: isNumber,
  addresses: [AddressSchema],
};

validate(PersonSchema, { name: 'Test Elek', age: 18, addresses: [] });

Installation

npm install typeguard-composer

TODO

  • add two different error for schema and value errors
  • add support for logging/returning invalid values
  • add support for throwing error on extraneous values
  • return object instead of simple true/false with reasoning (eg: "'MyValue' was expected to match isMyValidator.")
  • create repo for complex types (dates, id formats, phone numbers, addresses, etc)

Usage

To be written... include info about defining schemas and how there validation works...

API

The public API is extremely small, it consists only one function to validate values against schemas and a validator for every primitive types which can be used to build custom schemas.

validate function

Tries to validate the received value against the received schema. If the value is valid it returns true and false otherwise.

Signature:

validate(schema: TypeSchema, value: any, options: ValidatorOptions): boolean

Validators

  • validators are simple functions what implement the type guard pattern described the Typescript documentation
  • this library includes validators for the basic primitive types only
  • you can and should define your own validators when using this library
  • validators should be fairly simple in complexity and check a single value

Note: You can check out the NoNameProvided/typeguard-composer-validators repository to see a list of available pre-written complex schemas and validator functions.

List of included base validators:

  • isBoolean
  • isNumber
  • isString
  • isSymbol
  • isNull
  • isUndefined
  • isObject
  • isArray
  • isFunction
  • isAny - always returns true
  • isValue - return true when the provided value is not null or undefined

License

MIT Licensed