Donutgramплагины
На этой страницеЛокальные модули

Модули и импорты

Разделяйте код на локальные ES-модули внутри проверенного пакета.

Локальные модули

В .dgplugin можно разместить несколько JavaScript-файлов. Используйте относительные импорты с расширением .js.

Вспомогательная функция

Файл modules/greeting.js:

export function greeting(name) {
  return `Привет, ${name.trim()}!`;
}

Точка входа main.js:

const _plugin = "donutgram";
import { greeting } from "./modules/greeting.js";

export default definePlugin({
  async activate(api) {
    await api.commands.register({
      id: "hello",
      title: "Показать приветствие",
      placement: "composer",
      async run() {
        await api.ui.toast(greeting("Алиса"));
      }
    });
  }
});

Для этой команды укажите ui.contribute / composer в манифесте.

Что доступно загрузчику

Загружается только проверенный исходный код внутри установленного пакета. У плагина нет загрузчика Node.js, require, fs, process, DOM и браузерного fetch.

Код из HTTPS-ответа нельзя превратить в новый модуль. eval и конструкторы Function заблокированы. QuickJS-байткод не является форматом распространения плагина.

Изоляция

Два плагина могут иметь свой modules/greeting.js: их окружения независимы. Каждый аккаунт также получает собственное выполнение плагина.

TypeScript

Типы SDK помогают редактору и сборщику. Перед упаковкой преобразуйте .ts в обычный JavaScript. Готовый пакет должен содержать поддерживаемые исходные файлы и корректную точку входа с маркером.