diff options
Diffstat (limited to 'node_modules/ts-interface-checker/dist/index.d.ts')
| -rw-r--r-- | node_modules/ts-interface-checker/dist/index.d.ts | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/node_modules/ts-interface-checker/dist/index.d.ts b/node_modules/ts-interface-checker/dist/index.d.ts new file mode 100644 index 0000000..578e0c6 --- /dev/null +++ b/node_modules/ts-interface-checker/dist/index.d.ts @@ -0,0 +1,124 @@ +import { ITypeSuite, TType } from "./types"; +import { IErrorDetail } from "./util"; +/** + * Export functions used to define interfaces. + */ +export { TArray, TEnumType, TEnumLiteral, TFunc, TIface, TLiteral, TName, TOptional, TParam, TParamList, TProp, TTuple, TType, TUnion, TIntersection, array, enumlit, enumtype, func, iface, lit, name, opt, param, tuple, union, intersection, BasicType, ITypeSuite, } from "./types"; +export { VError, IErrorDetail } from './util'; +export interface ICheckerSuite { + [name: string]: Checker; +} +/** + * Takes one of more type suites (e.g. a module generated by `ts-interface-builder`), and combines + * them into a suite of interface checkers. If a type is used by name, that name should be present + * among the passed-in type suites. + * + * The returned object maps type names to Checker objects. + */ +export declare function createCheckers(...typeSuite: ITypeSuite[]): ICheckerSuite; +/** + * Checker implements validation of objects, and also includes accessors to validate method calls. + * Checkers should be created using `createCheckers()`. + */ +export declare class Checker { + private suite; + private ttype; + private _path; + private props; + private checkerPlain; + private checkerStrict; + constructor(suite: ITypeSuite, ttype: TType, _path?: string); + /** + * Set the path to report in errors, instead of the default "value". (E.g. if the Checker is for + * a "person" interface, set path to "person" to report e.g. "person.name is not a string".) + */ + setReportedPath(path: string): void; + /** + * Check that the given value satisfies this checker's type, or throw Error. + */ + check(value: any): void; + /** + * A fast check for whether or not the given value satisfies this Checker's type. This returns + * true or false, does not produce an error message, and is fast both on success and on failure. + */ + test(value: any): boolean; + /** + * Returns an error object describing the errors if the given value does not satisfy this + * Checker's type, or null if it does. + */ + validate(value: any): IErrorDetail | null; + /** + * Check that the given value satisfies this checker's type strictly. This checks that objects + * and tuples have no extra members. Note that this prevents backward compatibility, so usually + * a plain check() is more appropriate. + */ + strictCheck(value: any): void; + /** + * A fast strict check for whether or not the given value satisfies this Checker's type. Returns + * true or false, does not produce an error message, and is fast both on success and on failure. + */ + strictTest(value: any): boolean; + /** + * Returns an error object describing the errors if the given value does not satisfy this + * Checker's type strictly, or null if it does. + */ + strictValidate(value: any): IErrorDetail | null; + /** + * If this checker is for an interface, returns a Checker for the type required for the given + * property of this interface. + */ + getProp(prop: string): Checker; + /** + * If this checker is for an interface, returns a Checker for the argument-list required to call + * the given method of this interface. E.g. if this Checker is for the interface: + * interface Foo { + * find(s: string, pos?: number): number; + * } + * Then methodArgs("find").check(...) will succeed for ["foo"] and ["foo", 3], but not for [17]. + */ + methodArgs(methodName: string): Checker; + /** + * If this checker is for an interface, returns a Checker for the return value of the given + * method of this interface. + */ + methodResult(methodName: string): Checker; + /** + * If this checker is for a function, returns a Checker for its argument-list. + */ + getArgs(): Checker; + /** + * If this checker is for a function, returns a Checker for its result. + */ + getResult(): Checker; + /** + * Return the type for which this is a checker. + */ + getType(): TType; + /** + * Actual implementation of check() and strictCheck(). + */ + private _doCheck; + private _doValidate; + private _getMethod; +} +/** + * Typed checker interface. Adds type guard functionality to a normal `Checker`. + * + * To use, cast a `Checker` to a `CheckerT<>` using the appropriate type. + * + * eg. + * import { MyInterface } from './my-interface'; + * import MyInterfaceTi from './my-interface-ti'; + * + * const checkers = createCheckers(MyInterfaceTi) as { + * MyInterface: CheckerT<MyInterface> + * }; + * + * TODO: + * - Enable `check()` and `strictCheck()` type assertion definitions once the functionality + * is correctly working in TypeScript. (https://github.com/microsoft/TypeScript/issues/36931) + */ +export interface CheckerT<T> extends Checker { + test(value: any): value is T; + strictTest(value: any): value is T; +} |