31 lines
1.5 KiB
Go
31 lines
1.5 KiB
Go
package runtime
|
||
|
||
// DefaultEntrypoint возвращает точку входа по умолчанию для языка lang.
|
||
//
|
||
// Формат entrypoint зависит от среды выполнения Fission:
|
||
// - python: "module.function" → Fission импортирует модуль и вызывает функцию
|
||
// - nodejs: "main" → имя экспортированной default-функции в main.js
|
||
// - php: "main.php::handler" → имя файла + "::" + имя функции
|
||
// - ruby: "handler" → имя метода в загруженном файле
|
||
// - go: "Handler" → экспортированная Go-функция (с большой буквы)
|
||
func DefaultEntrypoint(lang string) string {
|
||
switch lang {
|
||
case "nodejs":
|
||
// "main" (без .js): node-env.specializeV2 делает split(".") для functionName
|
||
// с точкой → funcname="js" → ищет экспорт "js" → 500.
|
||
// Без расширения: funcname=undefined → берёт default export (module.exports = __invoke).
|
||
return "main"
|
||
case "php":
|
||
// Fission php-env: filename::functionName
|
||
return "main.php::handler"
|
||
case "ruby":
|
||
return "handler"
|
||
case "go":
|
||
// Go: экспортированная функция (заглавная) — go/plugin требует экспорт
|
||
return "Handler"
|
||
default:
|
||
// python и неизвестные языки: "main.main" = модуль main, функция main
|
||
return "main.main"
|
||
}
|
||
}
|