summaryrefslogtreecommitdiff
path: root/node_modules/ts-interface-checker/dist/index.d.ts
diff options
context:
space:
mode:
authorPhilipp Tanlak <philipp.tanlak@gmail.com>2025-11-24 20:54:57 +0100
committerPhilipp Tanlak <philipp.tanlak@gmail.com>2025-11-24 20:57:48 +0100
commitb1e2c8fd5cb5dfa46bc440a12eafaf56cd844b1c (patch)
tree49d360fd6cbc6a2754efe93524ac47ff0fbe0f7d /node_modules/ts-interface-checker/dist/index.d.ts
Docs
Diffstat (limited to 'node_modules/ts-interface-checker/dist/index.d.ts')
-rw-r--r--node_modules/ts-interface-checker/dist/index.d.ts124
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;
+}