@yeoman/adapter
Version:
Input Output adapter for yeoman's generator/environment stack
65 lines (64 loc) • 2.39 kB
TypeScript
import { createPromptModule } from 'inquirer';
import type { Logger, PromptAnswers, PromptQuestions, QueuedAdapter, Task } from '../../types/index.js';
type PromptModule = ReturnType<typeof createPromptModule>;
type TestQuestion = {
name: string;
message: string;
type: string;
default?: any;
};
type PromptCalls = {
question: TestQuestion;
answer: any;
};
export type DummyPromptCallback = (answer: any, { question, answers }: {
question: TestQuestion;
answers: PromptAnswers;
}) => any;
export type DummyPromptOptions = {
mockedAnswers?: PromptAnswers;
callback?: DummyPromptCallback;
throwOnMissingAnswer?: boolean;
};
type SpyFactory<SpyType = any> = ({ returns }: {
returns?: any;
}) => SpyType;
export type TestAdapterOptions<SpyType = any> = DummyPromptOptions & {
log?: any;
spyFactory?: SpyFactory<SpyType>;
};
export type DefineTestAdapterConfig = Pick<TestAdapterOptions, 'log' | 'spyFactory' | 'throwOnMissingAnswer'>;
export declare const defineConfig: (config: DefineTestAdapterConfig) => DefineTestAdapterConfig;
export declare const getConfig: () => {
log?: any;
spyFactory?: SpyFactory<any> | undefined;
throwOnMissingAnswer?: boolean | undefined;
};
/**
* @experimental
*/
export declare class TestAdapter<LogType extends Logger = Logger, SpyType = any> implements QueuedAdapter {
promptModule: PromptModule;
diff: any & SpyType;
log: LogType & SpyType;
registerDummyPrompt: (promptName: string, customPromptOptions?: DummyPromptOptions) => PromptModule;
readonly mockedAnswers: PromptAnswers;
readonly calls: PromptCalls[];
private abortController;
private readonly spyFactory;
constructor(options?: TestAdapterOptions<SpyType>);
queue<TaskResultType>(function_: Task<TaskResultType>): Promise<TaskResultType>;
progress<ReturnType>(function_: (progress: {
step: (prefix: string, message: string, ...arguments_: any[]) => void;
}) => ReturnType, _options?: {
disabled?: boolean | undefined;
name?: string | undefined;
} | undefined): Promise<ReturnType>;
close(): void;
prompt<A extends PromptAnswers = PromptAnswers>(questions: PromptQuestions<A>, initialAnswers?: Partial<A> | undefined): Promise<A>;
/**
* Add answers to the mocked answers.
*/
addAnswers(answers: PromptAnswers): void;
}
export {};