UNPKG

@jsonjoy.com/json-type

Version:

High-performance JSON Pointer implementation

36 lines (35 loc) 2.16 kB
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; }