json-type-cli
Version:
High-performance JSON Pointer implementation
49 lines (48 loc) • 1.72 kB
TypeScript
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;
}