UNPKG

json-type-cli

Version:

High-performance JSON Pointer implementation

49 lines (48 loc) 1.72 kB
import { TypeSystem } from '@jsonjoy.com/json-type/lib/system/TypeSystem'; import { ObjectValueCaller } from '@jsonjoy.com/reactive-rpc/lib/common/rpc/caller/ObjectValueCaller'; import { ObjectValue } from '@jsonjoy.com/json-type/lib/value/ObjectValue'; import type { CliCodecs } from './CliCodecs'; import type { TypeBuilder } from '@jsonjoy.com/json-type/lib/type/TypeBuilder'; import type { WriteStream, ReadStream } from 'tty'; import type { CliCodec, CliParam, CliParamInstance } from './types'; export interface CliOptions<Router extends ObjectValue<any>> { codecs: CliCodecs; params?: CliParam[]; router?: Router; version?: string; cmd?: string; argv?: string[]; stdout?: WriteStream; stderr?: WriteStream; stdin?: ReadStream; exit?: (errno: number) => void; } export declare class Cli<Router extends ObjectValue<any> = ObjectValue<any>> { readonly options: CliOptions<Router>; router: Router; readonly params: CliParam[]; readonly paramMap: Map<string, CliParam>; readonly types: TypeSystem; readonly t: TypeBuilder; readonly caller: ObjectValueCaller<Router>; readonly codecs: CliCodecs; request?: unknown; response?: unknown; argv: string[]; stdout: WriteStream; stderr: WriteStream; stdin: ReadStream; exit: (errno: number) => void; requestCodec: CliCodec; responseCodec: CliCodec; rawStdinInput?: Uint8Array; stdinInput?: unknown; protected paramInstances: CliParamInstance[]; constructor(options: CliOptions<Router>); run(): void; param(param: string): CliParam | undefined; runAsync(): Promise<void>; cmd(): string; private getStdin; private readStdin; }