import type { PromptObject } from 'prompts'; import type { Feature } from './features'; import type { PackageManagerName } from './packageManager'; import type { Platform } from './prompts'; export type { Feature }; /** * Possible command options. */ export type CommandOptions = { target: string; source?: string; withReadme: boolean; withChangelog: boolean; example: boolean; local: boolean; barrel: boolean; name?: string; description?: string; package?: string; authorName?: string; authorEmail?: string; authorUrl?: string; repo?: string; license?: string; moduleVersion?: string; platform?: Platform[]; features?: Feature[]; fullExample?: boolean; packageManager?: PackageManagerName; }; /** * Represents an object that is passed to `ejs` when rendering the template. */ export type SubstitutionData = { project: { slug: string; name: string; version: string; description: string; package: string; moduleName: string; viewName: string; swiftUIViewName: string; swiftUIModifierName: string; composeViewName: string; composeModifierName: string; sharedObjectName: string; platforms: Platform[]; features: Feature[]; }; author: string; license: string; repo: string; type: 'standalone'; }; export type LocalSubstitutionData = { project: { slug: string; name: string; package: string; moduleName: string; viewName: string; swiftUIViewName: string; swiftUIModifierName: string; composeViewName: string; composeModifierName: string; sharedObjectName: string; platforms: Platform[]; features: Feature[]; }; type: 'local'; }; export type CustomPromptObject = PromptObject & { name: string; resolvedValue?: string | null; }; export type Answers = Record;