@grpc.ts/cli
Version:
CLI package for @grpc.ts to generate typing for TypeScript
51 lines (50 loc) • 1.51 kB
TypeScript
import type { IEnum } from 'protobufjs';
import type { Options as TsupOptions } from 'tsup';
interface ITsupConfigProps {
engine: 'tsup';
options?: TsupOptions;
}
export interface IMonorepoOutputProps {
packageName: string;
workspacePath: string;
multiEntries?: boolean;
compiler?: ITsupConfigProps;
}
export interface IConfigProps {
output?: string;
buildDir?: string;
external?: string[];
paths?: string | string[];
monorepo?: IMonorepoOutputProps;
}
export interface IMessageProps {
name: string;
type: string;
rule?: 'repeated';
optional: boolean;
}
export type TNamespaceMessage = [string, IMessageProps[]];
export interface IServiceProps {
name: string;
requestType: string;
responseType: string;
}
export type TNamespaceService = [string, IServiceProps[]];
export type TEnum = IEnum['values'];
export type TNamespaceEnum = [string, TEnum[]];
export interface INamespaceDataProps {
enums: TNamespaceEnum[];
messages: TNamespaceMessage[];
services: TNamespaceService[];
}
export type TParseNamespaceReturn = [string, INamespaceDataProps];
export type TConfigParams = Omit<Required<IConfigProps>, 'monorepo' | 'buildDir'> & Pick<IConfigProps, 'monorepo' | 'buildDir'>;
export interface IProtoDataProps {
filePath: string;
packageName: string;
noDependency: boolean;
data: INamespaceDataProps;
ownedMessages: Record<string, string>;
dependencies: Record<string, INamespaceDataProps>;
}
export {};