FastDenizenMeta — это лёгкая JavaScript-библиотека для локального парсинга, кэширования и поиска по мета-документации Denizen.
Она скачивает исходный код источников с GitHub, извлекает блоки <!--[@]...-->, преобразует их в удобный JSON-формат и предоставляет быстрый API для поиска по тегам, событиям, командам и другим элементам языка.
- Умный поиск по названиям и содержимому.
- Поддержка "нечёткого" поиска (например,
flag->blocks_flagged). - Кэширование в памяти — мгновенная работа после первой загрузки.
- Автоматическая загрузка и парсинг исходников.
- Полная структура данных для тегов, команд, ивентов, ObjectType, механизмов, языка и действий.
- Простая интеграция в Node.js или собственные инструменты.
npm install github:tizis0/FastDenizenMetaimport FastDenizenMeta from "fast-denizen-meta";
const meta = new FastDenizenMeta();
// Загружаем новые данные
await meta.reload();
// Простой поиск
const result = meta.searchSmart("flag");
// Пример вывода
for (const entry of result.results) {
console.log(`[${entry.type}] ${entry.name}`);
}searchSmart(query, type = null) ищет по всем элементам, ранжируя результаты по релевантности и типу.
Порядок приоритетов:
- Команды (command)
- Теги (tag)
- Механизмы (mechanism)
- ObjectTypes (objecttype)
- Ивенты (event)
- Язык (language)
- Действия (action)
Пример:
const res = meta.searchSmart("chunk load");
for (const x of res.results) {
console.log(`${x.type}: ${x.name}`);
}Результат (пример):
command: chunkload
event: receives chunk unload
| Метод | Аргументы | Описание |
|---|---|---|
reload() |
string? |
Загружает документацию из Denizen Dev, или указанного источника. |
search(query, type?) |
string, string? |
Простой поиск по названию. |
searchSmart(query, type?) |
string, string? |
Расширенный поиск с приоритетом типов и нечеткими совпадениями. |
addSource(url, plugin?) |
string, string? |
Загружает дополнительный источник документации. |
storage |
- | Возвращает полный JSON объект, содержащий кэш документации. |
Разработано с ❤️ для разработчиков Denizen. Если библиотека вам помогла — поставьте ⭐ на GitHub!