@jsonjoy.com/json-type
Version:
High-performance JSON Pointer implementation
36 lines (35 loc) • 2.16 kB
TypeScript
import * as schema from '../../schema';
import { AbsType } from './AbsType';
import type { SchemaOf, Type } from '../types';
export declare class FnType<Req extends Type, Res extends Type, Ctx = unknown> extends AbsType<schema.FnSchema<SchemaOf<Req>, SchemaOf<Res>, Ctx>> {
readonly req: Req;
readonly res: Res;
constructor(req: Req, res: Res, options?: schema.Optional<schema.FnSchema<SchemaOf<Req>, SchemaOf<Res>>>);
input<T extends Type>(req: T): FnType<T, Res>;
inp<T extends Type>(req: T): FnType<T, Res>;
output<T extends Type>(res: T): FnType<Req, T>;
out<T extends Type>(res: T): FnType<Req, T>;
io<I extends Type, O extends Type>(request: I, response: O): FnType<I, O, Ctx>;
signature<I extends Type, O extends Type>(request: I, response: O): FnType<I, O, Ctx>;
ctx<T>(): FnType<Req, Res, T>;
getSchema(): schema.FnSchema<SchemaOf<Req>, SchemaOf<Res>, Ctx>;
default(value: schema.FunctionValue<schema.TypeOf<SchemaOf<Req>>, schema.TypeOf<SchemaOf<Res>>>): this;
exec(input: schema.TypeOf<SchemaOf<Req>>): schema.TypeOf<SchemaOf<Res>> | Promise<schema.TypeOf<SchemaOf<Res>>>;
toString(tab?: string): string;
}
export declare class FnRxType<Req extends Type, Res extends Type, Ctx = unknown> extends AbsType<schema.FnRxSchema<SchemaOf<Req>, SchemaOf<Res>, Ctx>> {
readonly req: Req;
readonly res: Res;
readonly isStreaming = true;
constructor(req: Req, res: Res, options?: schema.Optional<schema.FnRxSchema<SchemaOf<Req>, SchemaOf<Res>>>);
input<T extends Type>(req: T): FnRxType<T, Res>;
inp<T extends Type>(req: T): FnRxType<T, Res>;
output<T extends Type>(res: T): FnRxType<Req, T>;
out<T extends Type>(res: T): FnRxType<Req, T>;
io<I extends Type, O extends Type>(request: I, response: O): FnRxType<I, O, Ctx>;
signature<I extends Type, O extends Type>(request: I, response: O): FnRxType<I, O, Ctx>;
ctx<T>(): FnRxType<Req, Res, T>;
getSchema(): schema.FnRxSchema<SchemaOf<Req>, SchemaOf<Res>, Ctx>;
default(value: schema.FnStreamingValue<schema.TypeOf<SchemaOf<Req>>, schema.TypeOf<SchemaOf<Res>>>): this;
toString(tab?: string): string;
}