import { ICoreInstance } from '@midwayjs/command-core'; export enum AvailableInternalGenerator { Controller = 'Controller', Debug = 'Debug', Service = 'Service', Middleware = 'Middleware', Serverless = 'Serverless', } export enum AvailableExternalGenerator { Axios = 'Axios', Cache = 'Cache', ORM = 'ORM', OSS = 'OSS', Prisma = 'Prisma', Swagger = 'Swagger', WebSocket = 'WebSocket', } export type GeneratorCoreWrapperArgs< GeneratorOptions = Record, ExtraTypeArgs = void > = ExtraTypeArgs extends void ? { core: ICoreInstance; options: GeneratorOptions; } : { core: ICoreInstance; options: GeneratorOptions; type: ExtraTypeArgs; }; export type InferFuncUniqueArgType< GeneratorOptions, GeneratorSubType, T extends < A extends GeneratorCoreWrapperArgs >( args: A ) => Promise > = T extends (args: infer R) => Promise ? R : never; export type RequiredGeneratorCoreFuncStruct< GeneratorOption, GeneratorSubType = void > = >( args: A ) => Promise; export type InferCoreFuncArgGenericType = T extends ( args: GeneratorCoreWrapperArgs ) => Promise ? R : never; export type InferWrapperOptionParam = T extends GeneratorCoreWrapperArgs< infer R > ? R : void; export type InferWrapperTypeParam = T extends GeneratorCoreWrapperArgs< unknown, infer R > ? R : void;