UNPKG

@sergtyapkin/models-validator

Version:

![Run tests](https://github.com/SergTyapkin/js-models-validator/workflows/Run%20tests/badge.svg) ![downloads](https://img.shields.io/npm/dt/%40sergtyapkin%2Fmodels-validator)

39 lines (38 loc) 1.73 kB
type SimpleType = StringConstructor | NumberConstructor | BigIntConstructor | SymbolConstructor | BooleanConstructor; type ConstructableType = { new (any?: any): any; }; type SetType = Set<any>; type ArrayType = Array<any>; type ComplexType = ConstructableType | SetType | ArrayType; type _DefaultLongTypeDeclaringFields = { type: TypeDeclaring; from?: string; optional?: boolean; default?: any; }; type ArrayLongTypeDeclaring = { type: ArrayConstructor; item: TypeDeclaring; } & _DefaultLongTypeDeclaringFields; type ObjectLongTypeDeclaring = { type: ObjectConstructor; fields: {}; } & _DefaultLongTypeDeclaringFields; type SimpleLongTypeDeclaring = { type: TypeDeclaring; } & _DefaultLongTypeDeclaringFields; type LongTypeDeclaring = SimpleLongTypeDeclaring | ArrayLongTypeDeclaring | ObjectLongTypeDeclaring; type ShortTypeDeclaring = SimpleType | ComplexType; type TypeDeclaring = LongTypeDeclaring | ShortTypeDeclaring; export interface Model { readonly [index: string]: TypeDeclaring; } export declare function validateModel(model: Model, data: object | string): object; export declare function reverseValidateModel(model: Model, data: object): object; export declare function generateSnakeCaseFromCamelCaseModel(model: Model): Model; export declare function generateCamelCaseFromSnakeCaseModel(model: Model): Model; export declare function ArrayType(type: TypeDeclaring | Model, optional?: boolean, defaultValue?: any): ArrayLongTypeDeclaring; export declare function ObjectType(fields: Model, optional?: boolean, defaultValue?: any): ObjectLongTypeDeclaring; export declare function Type(type: TypeDeclaring, optional?: boolean, defaultValue?: any): LongTypeDeclaring; export {};