@yeoman/types
Version:
Common API for yeoman's generator/environment stack
12 lines (8 loc) • 567 B
TypeScript
/* eslint-disable unicorn/prevent-abbreviations */
import type { BaseGenerator, BaseGeneratorConstructor } from './generator.js';
export type GetGeneratorOptions<T extends BaseGenerator = BaseGenerator> = T extends BaseGenerator<infer Options> ? Options : never;
export type GetGeneratorFeatures<T extends BaseGenerator = BaseGenerator> = T extends BaseGenerator<any, infer features> ? features : never;
export type GetGeneratorConstructor<T extends BaseGenerator = BaseGenerator> = BaseGeneratorConstructor<
GetGeneratorOptions<T>,
GetGeneratorFeatures<T>
>;