diff --git a/packages/cli/src/lib/new/collection/collectTemplateParams.ts b/packages/cli/src/lib/new/collection/collectTemplateParams.ts index 5338dc34ca..0c2f0e5d2b 100644 --- a/packages/cli/src/lib/new/collection/collectTemplateParams.ts +++ b/packages/cli/src/lib/new/collection/collectTemplateParams.ts @@ -18,9 +18,8 @@ import inquirer from 'inquirer'; import { getCodeownersFilePath } from '../../codeowners'; import { paths } from '../../paths'; import { NewConfig } from '../types'; -import { buildCustomPrompt, getPromptsForRole, ownerPrompt } from './prompts'; +import { customPrompt, getPromptsForRole, ownerPrompt } from './prompts'; import { NewTemplate } from '../types'; -import { Options } from '../execution/utils'; type CollectTemplateParamsOptions = { config: NewConfig; @@ -30,7 +29,7 @@ type CollectTemplateParamsOptions = { export async function collectTemplateParams( options: CollectTemplateParamsOptions, -): Promise { +): Promise> { const { config, template, prefilledParams } = options; const codeOwnersFilePath = await getCodeownersFilePath(paths.targetRoot); @@ -41,13 +40,13 @@ export async function collectTemplateParams( prompts.push(ownerPrompt()); } if (template.prompts) { - prompts.push(...template.prompts.map(buildCustomPrompt)); + prompts.push(...template.prompts.map(customPrompt)); } const needsAnswer = []; const prefilledAnswers = {} as Record; for (const prompt of prompts) { - if (prefilledParams[prompt.name] !== undefined) { + if (prompt.name && prefilledParams[prompt.name] !== undefined) { prefilledAnswers[prompt.name] = prefilledParams[prompt.name]; } else { needsAnswer.push(prompt); diff --git a/packages/cli/src/lib/new/collection/prompts.ts b/packages/cli/src/lib/new/collection/prompts.ts index 6d3b479486..d2ac8c2f08 100644 --- a/packages/cli/src/lib/new/collection/prompts.ts +++ b/packages/cli/src/lib/new/collection/prompts.ts @@ -14,12 +14,11 @@ * limitations under the License. */ -import { Answers, DistinctQuestion } from 'inquirer'; +import { DistinctQuestion } from 'inquirer'; import { NewTemplatePrompt, TemplateRole } from '../types'; import { parseOwnerIds } from '../../codeowners'; -export type Prompt = DistinctQuestion; -export function namePrompt(): Prompt<{ name: string }> { +export function namePrompt(): DistinctQuestion { return { type: 'input', name: 'name', @@ -35,7 +34,7 @@ export function namePrompt(): Prompt<{ name: string }> { }; } -export function pluginIdPrompt(): Prompt<{ pluginId: string }> { +export function pluginIdPrompt(): DistinctQuestion { return { type: 'input', name: 'pluginId', @@ -51,7 +50,7 @@ export function pluginIdPrompt(): Prompt<{ pluginId: string }> { }; } -export function moduleIdIdPrompt(): Prompt<{ moduleId: string }> { +export function moduleIdIdPrompt(): DistinctQuestion { return { type: 'input', name: 'moduleId', @@ -67,7 +66,7 @@ export function moduleIdIdPrompt(): Prompt<{ moduleId: string }> { }; } -export function getPromptsForRole(role: TemplateRole) { +export function getPromptsForRole(role: TemplateRole): Array { switch (role) { case 'web-library': case 'node-library': @@ -87,7 +86,7 @@ export function getPromptsForRole(role: TemplateRole) { } } -export function ownerPrompt(): Prompt<{ owner?: string }> { +export function ownerPrompt(): DistinctQuestion { return { type: 'input', name: 'owner', @@ -107,9 +106,7 @@ export function ownerPrompt(): Prompt<{ owner?: string }> { }; } -export function buildCustomPrompt( - prompt: NewTemplatePrompt, -): Prompt<{ [key: string]: string }> { +export function customPrompt(prompt: NewTemplatePrompt): DistinctQuestion { return { type: 'input', name: prompt.id, diff --git a/packages/cli/src/lib/new/execution/executeTemplate.ts b/packages/cli/src/lib/new/execution/executeTemplate.ts index 5549a354cb..1aba91444e 100644 --- a/packages/cli/src/lib/new/execution/executeTemplate.ts +++ b/packages/cli/src/lib/new/execution/executeTemplate.ts @@ -29,12 +29,11 @@ import { executePluginPackageTemplate } from './executePluginPackageTemplate'; import { TemporaryDirectoryManager } from './TemporaryDirectoryManager'; import { NewConfig } from '../types'; import { NewTemplate } from '../types'; -import { Options } from './utils'; type ExecuteNewTemplateOptions = { config: NewConfig; template: NewTemplate; - params: Options; + params: Record; }; export async function executeNewTemplate(options: ExecuteNewTemplateOptions) { diff --git a/packages/cli/src/lib/new/execution/utils.ts b/packages/cli/src/lib/new/execution/utils.ts index d9b7628b1c..1fe693d828 100644 --- a/packages/cli/src/lib/new/execution/utils.ts +++ b/packages/cli/src/lib/new/execution/utils.ts @@ -15,15 +15,6 @@ */ import { NewTemplate } from '../types'; -export interface Options extends Record { - private: boolean; - baseVersion: string; - license: string; - targetPath: string; - owner: string; - scope: string; -} - export const resolvePackageName = (options: { baseName: string; scope?: string;