@jsonjoy.com/json-type
Version:
High-performance JSON Pointer implementation
36 lines (35 loc) • 2.09 kB
TypeScript
import * as schema from '../../schema';
import { AbsType } from './AbsType';
import type { SchemaOf, Type } from '../types';
import type { ResolveType } from '../../system';
import { Value } from '../../value';
export declare class FnType<Req extends Type, Res extends Type, Ctx = unknown> extends AbsType<schema.FunctionSchema<SchemaOf<Req>, SchemaOf<Res>, Ctx>> {
readonly req: Req;
readonly res: Res;
protected schema: schema.FunctionSchema<SchemaOf<Req>, SchemaOf<Res>, Ctx>;
fn: schema.FunctionValue<schema.TypeOf<SchemaOf<Req>>, schema.TypeOf<SchemaOf<Res>>>;
constructor(req: Req, res: Res, options?: schema.Optional<schema.FunctionSchema<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>;
value(data: ResolveType<FnType<Req, Res, Ctx>>): Value<FnType<Req, Res, Ctx>>;
getSchema(): schema.FunctionSchema<SchemaOf<Req>, SchemaOf<Res>, Ctx>;
toString(tab?: string): string;
}
export declare class FnRxType<Req extends Type, Res extends Type, Ctx = unknown> extends AbsType<schema.FunctionStreamingSchema<SchemaOf<Req>, SchemaOf<Res>, Ctx>> {
readonly req: Req;
readonly res: Res;
readonly isStreaming = true;
protected schema: schema.FunctionStreamingSchema<SchemaOf<Req>, SchemaOf<Res>, Ctx>;
constructor(req: Req, res: Res, options?: schema.Optional<schema.FunctionStreamingSchema<SchemaOf<Req>, SchemaOf<Res>>>);
request<T extends Type>(req: T): FnType<T, Res>;
inp<T extends Type>(req: T): FnType<T, Res>;
response<T extends Type>(res: T): FnType<Req, T>;
out<T extends Type>(res: T): FnType<Req, T>;
getSchema(): schema.FunctionStreamingSchema<SchemaOf<Req>, SchemaOf<Res>, Ctx>;
toString(tab?: string): string;
}