feat(console): поле зависимостей для функций из кода (deps → zip)
- UI: textarea 'Зависимости' в формах создания и редактирования - плейсхолдер меняется по языку (requirements.txt / package.json / Gemfile / composer.json) - Python: если deps заполнен → zip(main.py + requirements.txt), иначе raw bytes - PHP: если deps → zip(main.php + composer.json) - Ruby: если deps → zip(handler.rb + Gemfile) - Node.js: пока без изменений (сложная структура package.json) - runtime: BuildPythonZip, BuildScriptZipWithDeps, buildZipTwo - model: Deps string в CreateFunctionRequest и UpdateCodeRequest - v1.3.89
This commit is contained in:
@@ -11,3 +11,20 @@ package runtime
|
||||
func BuildScriptZip(code, fileName string) ([]byte, error) {
|
||||
return buildZip(fileName, []byte(code))
|
||||
}
|
||||
|
||||
// BuildScriptZipWithDeps создаёт zip с кодом и файлом зависимостей.
|
||||
// fileName — имя файла кода (handler.rb, main.php и т.д.)
|
||||
// depsName — имя файла зависимостей (Gemfile, composer.json и т.д.)
|
||||
func BuildScriptZipWithDeps(code, fileName, deps, depsName string) ([]byte, error) {
|
||||
return buildZipTwo(fileName, depsName, []byte(code), []byte(deps))
|
||||
}
|
||||
|
||||
// BuildPythonZip создаёт zip с main.py (и опционально requirements.txt).
|
||||
// Если deps пустой — возвращает raw bytes кода (текущее поведение Python).
|
||||
// Если deps задан — zip с main.py + requirements.txt для pip install.
|
||||
func BuildPythonZip(code, deps string) ([]byte, error) {
|
||||
if deps == "" {
|
||||
return []byte(code), nil
|
||||
}
|
||||
return buildZipTwo("main.py", "requirements.txt", []byte(code), []byte(deps))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user