telefunc
Version:
Remote functions. Instead of API.
38 lines (37 loc) • 1.8 kB
TypeScript
export { shield };
export { shieldIsMissing };
export { shieldApply };
export { shieldToHumandReadable };
declare const isVerifierKey = "__telefunc_isVerifier";
declare const isVerifierTupleKey = "__telefunc_isVerifierTuple";
type ShieldOptions = {
__autoGenerated?: boolean;
};
declare const shield: {
<A extends unknown[], TelefunctionArguments extends [...A], Telefunction extends (...args: TelefunctionArguments) => unknown>(telefunction: Telefunction, telefunctionShield: TelefunctionArguments, options?: ShieldOptions): Telefunction;
<A extends unknown[], TelefunctionArguments extends [...A], Telefunction extends (...args: TelefunctionArguments) => unknown>(telefunctionShield: TelefunctionArguments, telefunction: Telefunction, options?: ShieldOptions): Telefunction;
type: typeof type;
};
type Telefunction = Function;
declare function shieldIsMissing(telefunction: Telefunction): boolean;
declare function shieldApply(telefunction: Telefunction, args: unknown[]): true | string;
type TelefunctionShield = unknown[] | Verifier;
declare function shieldToHumandReadable(telefunctionShield: TelefunctionShield): string;
declare const type: {
string: string;
number: number;
boolean: boolean;
date: Date;
array: <T>(arrayType: T) => T[];
object: <T>(objectType: T) => Record<string, T>;
or: <T extends unknown[]>(...elements: T) => T[number];
tuple: <T extends unknown[]>(...elements: T) => T;
const: <T extends Readonly<number> | Readonly<string> | Readonly<boolean> | undefined | null>(val: T) => T;
optional: <T>(param: T) => T | undefined;
nullable: <T>(param: T) => T | null;
any: any;
};
type Verifier = ((input: unknown, breadcrumbs: string) => true | string) & {
[isVerifierKey]?: true;
[isVerifierTupleKey]?: true;
};