in src/templates/script/parseScriptTemplates.ts [161:207]
displayName: getResourceValue(resources, rawBinding.displayName),
isHttpTrigger: /^http/i.test(rawBinding.type),
isTimerTrigger: /^timer/i.test(rawBinding.type),
settings,
type: rawBinding.type
});
}
} catch {
// Ignore errors so that a single poorly formed binding does not affect other bindings
}
}
}
return result;
}
export function parseScriptTemplate(rawTemplate: IRawTemplate, resources: IResources, bindingTemplates: IBindingTemplate[]): IScriptFunctionTemplate | undefined {
if (!rawTemplate.id || !rawTemplate.metadata) {
return undefined;
}
const functionJson: ParsedFunctionJson = new ParsedFunctionJson(rawTemplate.function);
let language: ProjectLanguage = rawTemplate.metadata.language;
// The templateApiZip only supports script languages, and thus incorrectly defines 'C#Script' as 'C#', etc.
switch (language) {
case ProjectLanguage.CSharp:
language = ProjectLanguage.CSharpScript;
break;
case ProjectLanguage.FSharp:
language = ProjectLanguage.FSharpScript;
break;
// The schema of Java templates is the same as script languages, so put it here.
case ProjectLanguage.Java:
language = ProjectLanguage.Java;
break;
default:
}
const userPromptedSettings: IBindingSetting[] = [];
if (rawTemplate.metadata.userPrompt) {
for (const settingName of rawTemplate.metadata.userPrompt) {
if (functionJson.triggerBinding) {
const triggerBinding: IFunctionBinding = functionJson.triggerBinding;
const bindingTemplate: IBindingTemplate | undefined = bindingTemplates.find(b => b.type.toLowerCase() === triggerBinding.type?.toLowerCase());
if (bindingTemplate) {
const setting: IBindingSetting | undefined = bindingTemplate.settings.find((bs: IBindingSetting) => bs.name === settingName);
if (setting) {