ts-type-validator
TypeScript icon, indicating that this package has built-in type declarations

0.1.6 • Public • Published

TypeScript Interface Validator

Intro

A library to validate whether a value is matched a typescript interface definition.

This is a lightweight and individual implementaion. So only support limited forms of definition.

For more detail you can see Supported and Not Supported below.

If you should have any question, please feel free to let me know.

Usage

import ValidatorManager from 'ts-interface-validator';
 
//Validate from type definition
let validator = ValidatorManager.instance.getValidator('{ a: string; b: number[]; c?: \'C1\' | \'C2\'}');
//Validate from definition in file
let validator2 = ValidatorManager.instance.getValidator('TypeName', 'xxx.ts');
 
//Validate
let result = validator.validate({ a: 'a', b: [2, 'b'] });
if (result.isSuccess) {
    //succ
}
else {
    console.log(result.message, result.originalError.message)
}

Supported pattern

  1. Basic type as string, number, boolean, Object, any
  2. Array type as T[] or Array<T>
  3. Type alias as type Abc = string
  4. Nested referenced interface, as type Bcd = Abc
  5. Logical expression, such as string | number
  6. String literal,as 'Value1' | 'Value2'
  7. Relative import
  8. Extend, as interface Def extends Abc { ... }
  9. Index signature, as { [key: string]: number }
  10. Partial type, as Partial<T>
  11. Ignore comments automatically

Not Supported pattern

  1. Mapped Types
  2. Circular reference

Install

DownloadsWeekly Downloads

0

Version

0.1.6

License

Apache-2.0

Last publish

Collaborators

  • k8w