console: use per-function invoke timeout

This commit is contained in:
Naeel
2026-04-27 10:33:40 +03:00
parent e600d6e1e8
commit 01f546e0e8
3 changed files with 68 additions and 13 deletions
+19 -1
View File
@@ -459,6 +459,10 @@
<label>Методы (через запятую)</label>
<input id="c-methods" value="GET">
</div>
<div class="field">
<label>Timeout (сек)</label>
<input id="c-timeout" type="number" min="1" value="60">
</div>
</div>
<div>
<label>Код</label>
@@ -512,6 +516,10 @@
<label>Entrypoint</label>
<input id="e-entry" disabled>
</div>
<div class="field">
<label>Timeout (сек)</label>
<input id="e-timeout" type="number" min="1" value="60">
</div>
</div>
<div>
<label>Код</label>
@@ -627,6 +635,12 @@
return items.length ? Array.from(new Set(items)) : ['GET'];
}
function parseTimeout(v) {
var n = Number(String(v || '').trim());
if (!Number.isFinite(n) || n <= 0) return 60;
return Math.round(n);
}
function triggerByFn(fnName) {
return (S.triggers || []).find(function (t) {
return t.spec && t.spec.functionref && t.spec.functionref.name === fnName;
@@ -673,6 +687,7 @@
function openCreate() {
document.getElementById('c-lang').value = 'python';
onLangChange();
document.getElementById('c-timeout').value = '60';
document.getElementById('create-modal').classList.add('open');
document.getElementById('c-name').focus();
}
@@ -697,6 +712,7 @@
entrypoint: document.getElementById('c-entry').value.trim(),
route: document.getElementById('c-route').value.trim(),
methods: parseMethods(document.getElementById('c-methods').value),
timeout: parseTimeout(document.getElementById('c-timeout').value),
code: document.getElementById('c-code').value
});
@@ -718,6 +734,7 @@
document.getElementById('e-name').value = name;
document.getElementById('e-env').value = fn.environment || '';
document.getElementById('e-entry').value = fn.entrypoint || '';
document.getElementById('e-timeout').value = String(fn.timeout || 60);
document.getElementById('e-code').value = fn.code || '';
// Определяем язык по имени environment для линтера
var envName = (fn.environment || '').toLowerCase();
@@ -754,7 +771,8 @@
try {
const name = S.currentEdit.name;
await requestJSON(API_BASE + '/functions/' + encodeURIComponent(name) + '/code', 'PUT', {
code: document.getElementById('e-code').value
code: document.getElementById('e-code').value,
timeout: parseTimeout(document.getElementById('e-timeout').value)
});
closeEdit();
progress.stop('\u041a\u043e\u0434 \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d: ' + name, 'ok');