json-type-cli
Version:
High-performance JSON Pointer implementation
27 lines (26 loc) • 878 B
TypeScript
import type { ObjectValue } from '@jsonjoy.com/json-type/lib/value/ObjectValue';
import type { Cli } from './Cli';
export interface CliCodec<Id extends string = string> {
id: Id;
description: string;
encode: (value: unknown) => Uint8Array;
decode: (bytes: Uint8Array) => unknown;
}
export interface CliContext<Router extends ObjectValue<any> = ObjectValue<any>> {
cli: Cli<Router>;
}
export interface CliParam {
param: string;
short?: string;
title: string;
example?: string;
examples?: string[];
createInstance: (cli: Cli, pointer: string, value: unknown) => CliParamInstance;
}
export interface CliParamInstance {
onParam?: () => Promise<void>;
onStdin?: () => Promise<void>;
onRequest?: () => Promise<void>;
onBeforeCall?: (method: string, ctx: CliContext) => Promise<void>;
onResponse?: () => Promise<void>;
}