UNPKG

genezio

Version:

Command line utility to interact with Genezio infrastructure.

38 lines (37 loc) 1.73 kB
import { UserError } from "../errors.js"; import { AwsFunctionHandlerProvider, AwsPythonFunctionHandlerProvider, } from "../functionHandlerProvider/providers/AwsFunctionHandlerProvider.js"; import { FunctionType, Language } from "../projectConfiguration/yaml/models.js"; export function getFunctionHandlerProvider(functionType, language) { switch (functionType) { case FunctionType.aws: { const providerMap = { [`${FunctionType.aws}-${Language.python}`]: new AwsPythonFunctionHandlerProvider(), [`${FunctionType.aws}-${Language.js}`]: new AwsFunctionHandlerProvider(), [`${FunctionType.aws}-${Language.ts}`]: new AwsFunctionHandlerProvider(), }; const key = `${functionType}-${language}`; const provider = providerMap[key]; if (provider) { return provider; } else { throw new UserError(`Unsupported language: ${language} for AWS function. Supported languages are: python, js, ts.`); } } case FunctionType.httpServer: case FunctionType.persistent: { const supportedLanguages = [ Language.python, Language.pythonAsgi, Language.js, Language.ts, ]; if (!supportedLanguages.includes(language)) { throw new UserError(`Unsupported language: ${language}. Supported languages are: ${supportedLanguages.join(", ")}`); } return null; } default: throw new UserError(`Unsupported function type: ${functionType}. Supported providers are: aws, httpServer.`); } }