Nodul LogoNodul
Инструменты кода

Bun

Описание узла

Bun

Среда выполнения Bun выполняет JavaScript-код внутри сценариев автоматизации.

Она во многом совместима с Node.js, но обеспечивает более высокую производительность и дополнительные встроенные функции, такие как SQLite, быстрый менеджер пакетов и улучшенные API.

В low-code среде Bun работает так же, как Node.js — через узел JavaScript, с переключением среды выполнения в настройках.

Добавление кода в сценарий

Чтобы добавить код Bun:

  1. Добавьте узел JavaScript в сценарий.
  2. В настройках узла переключите среду выполнения на Bun.
  3. Отредактируйте шаблон кода вручную или с помощью ИИ.

Обмен данными между узлами

Использование данных из предыдущих узлов

Вы можете получить доступ к выходным данным предыдущих узлов через объект data:

export default async function run({ data }) {
  const username = data["{{1.body.user}}"];
  return { user: username };
}

Передача обработанных данных в последующие узлы

Узел Bun может возвращать строки, числа, JSON-объекты или массивы:

export default async function run() {
  return {
    status: "ok",
    count: 42,
  };
}

Использование NPM-пакетов

Bun поддерживает импорт npm-библиотек с помощью оператора import.

Зависимости устанавливаются автоматически после сохранения сценария.

import axios from "axios";

export default async function run() {
  const response = await axios.get("https://api.github.com/repositories");
  return { total: response.data.length };
}

Некоторые библиотеки могут вести себя в Bun иначе, чем в Node.js. Всегда проверяйте совместимость.

Специфичные для Bun функции

Поддержка SQLite

Bun предоставляет встроенный модуль bun:sqlite:

import { Database } from "bun:sqlite";

export default async function run() {
  const db = new Database(":memory:");
  db.run("CREATE TABLE users (id INTEGER, name TEXT)");
  db.run("INSERT INTO users VALUES (?, ?)", [1, "Alice"]);

  const row = db.query("SELECT * FROM users").get();
  return { user: row };
}

Логирование

Используйте console.log для отладки. Вывод появится во вкладке Log.

Ограничения в low-code среде

Среда изолирована: прослушивание портов, запуск HTTP/WebSocket-серверов или фоновых демонов невозможны.

  • Максимальное время выполнения: 2 минуты
  • Поддерживается только JavaScript. Синтаксис TypeScript/JSX (: type, interfaces, generics) недоступен
  • Используйте import вместо require
  • Некоторые модули ядра Node.js не поддерживаются
  • Не все npm-пакеты гарантированно работают
  • Bun.serve и любое создание серверов не поддерживаются