in src/commands/createFunction/FunctionListStep.ts [144:180]
public async prompt(context: IFunctionWizardContext): Promise<void> {
let templateFilter: TemplateFilter = getWorkspaceSetting<TemplateFilter>(templateFilterSetting, context.projectPath) || TemplateFilter.Verified;
const templateProvider = ext.templateProvider.get(context);
while (!context.functionTemplate) {
let placeHolder: string = this._isProjectWizard ?
localize('selectFirstFuncTemplate', "Select a template for your project's first function") :
localize('selectFuncTemplate', 'Select a template for your function');
if (templateProvider.templateSource) {
placeHolder += localize('templateSource', ' (Template source: "{0}")', templateProvider.templateSource)
}
const result: IFunctionTemplate | TemplatePromptResult = (await context.ui.showQuickPick(this.getPicks(context, templateFilter), { placeHolder })).data;
if (result === 'skipForNow') {
context.telemetry.properties.templateId = 'skipForNow';
break;
} else if (result === 'changeFilter') {
templateFilter = await promptForTemplateFilter(context);
// can only update setting if it's open in a workspace
if (!this._isProjectWizard || context.openBehavior === 'AlreadyOpen') {
await updateWorkspaceSetting(templateFilterSetting, templateFilter, context.projectPath);
}
context.telemetry.properties.changedFilter = 'true';
} else if (result === 'openAPI') {
context.generateFromOpenAPI = true;
break;
} else if (result === 'reloadTemplates') {
await templateProvider.clearTemplateCache(context, context.projectPath, nonNullProp(context, 'language'), nonNullProp(context, 'version'));
context.telemetry.properties.reloaded = 'true';
} else {
context.functionTemplate = result;
}
}
context.telemetry.properties.templateFilter = templateFilter;
}