Утиліти
api.getProcessStats
Повертає навантаження CPU та RAM цього worker-процесу аддона. Додаткові дозволи не потрібні.
| Поле | Тип | Примітка |
|---|---|---|
cpuPercent |
number |
CPU від попереднього виклику (перший виклик — 0) |
ramMb |
number |
Resident memory у мегабайтах |
pid |
number |
PID worker-процесу цього аддона |
Підходить для самодіагностики, оптимізації або автоматичного відновлення (наприклад, перезапуск при перевищенні ліміту пам'яті). Можна поєднувати з api.restart() або очищенням внутрішніх кешів.
const MAX_RAM_MB = 512;
setInterval(() => {
const stats = api.getProcessStats();
console.log('Worker usage', stats);
if (stats.ramMb > MAX_RAM_MB) {
console.warn('Memory limit exceeded, restarting worker');
api.restart();
}
}, 10_000);
Ті самі метрики показуються в списках аддонів у налаштуваннях StreamKit+ (PID в UI — лише в режимі розробника).
isDeveloperMode
true, коли застосунок запущено без упаковки (dev-збірка) або користувач увімкнув Developer mode в налаштуваннях. Використовуйте для додаткового логування або debug-ендпоінтів; зберігайте звичайну поведінку, коли false. Зміна налаштування потребує перезапуску застосунку/worker.
if (isDeveloperMode) {
console.log('Debug info', params);
}
ADDON_TMP_DIR
Абсолютний шлях до scratch-папки аддона в temp ОС:
{os.tmpdir()}/StreamKitPlusAddons/{addonId}
Створюється автоматично під час старту worker. Якщо в addonId є / (наприклад ORG/REPO), утворюються вкладені папки. Шляхи всередині не потребують files.requestAccess. Використовуйте з files.* (FILE_ACCESS) або ytdlp.downloadFile. Обробник ендпоінта може повернути { file: pathInsideTmp }, щоб віддати медіа у веб-UI аддона.
const sep = ADDON_TMP_DIR.includes('\\') ? '\\' : '/';
const out = `${ADDON_TMP_DIR}${sep}clip.%(ext)s`;
await ytdlp.downloadFile(url, out, { format: 'ba/bestaudio', extractAudio: true, audioFormat: 'm4a' });
console
log, error, warn, info — з префіксом [Addon {id}].
Таймери
| API | Примітки |
|---|---|
setTimeout(fn, delay, ...args) |
Помилки перехоплюються; delay передається в Node як є |
setInterval(fn, interval, ...args) |
Помилки перехоплюються; interval передається в Node як є |
clearTimeout / clearInterval |
Стандартні |
sleep(ms) |
Promise-затримка |
random
const n = random.number(1, 6);
const id = random.id();
crypto
const { verifier, challenge } = crypto.createPkce();
const ok = crypto.verifyRsaSha256(publicKeyPem, message, signatureBase64);
URL і URLSearchParams
Безпечні для пісочниці реалізації для розбору та побудови URL у коді аддона.
require(name)
Доступно лише з дозволом ROOT. Інакше кидає виняток.