Query
Типобезопасные фильтры и проекция полей для Payload с плагином select для REST API.
Установка
pnpm add payload-query Описание
payload-query добавляет проверку типов на этапе компиляции для запросов Where в Payload. Передайте тип коллекции TypeScript в тип Filter, и редактор подсветит неверные пути к полям, неподдерживаемые операторы и операнды, не соответствующие типу поля. Структура остаётся такой же, как у Where в Payload, поэтому Filter можно использовать в find, findByID и везде, где ожидается условие where. Если значения в запросе зависят от данных во время выполнения, тип Query позволяет задавать операнды как функции, принимающие типизированные данные и возвращающие значение. Запрос задаётся один раз, с литералами и функциональными операндами вместе, затем преобразуется в Filter функцией toFilter. Если вызвать toFilter только с запросом, результатом будет функция, принимающая данные и возвращающая Filter. Для проекции полей, аналогичной SQL SELECT или проекции MongoDB, предусмотрен тип Select. Он указывает, какие поля включать, при этом id выбирается по умолчанию. Плагин selectPlugin регистрирует хуки afterRead на коллекциях и глобалах, чтобы параметр select работал в REST API, с возможностью ограничения конкретными slug. Для внутреннего API функция select применяет ту же проекцию к возвращаемому документу. Пути к полям разрешаются через ObjectPaths и ValueAtPath из ts-powertypes/ts-powertools. Есть ограничения: коллекции с циклическими ссылками нельзя использовать напрямую как тип-параметр, нужен Pick<> или any. Выбор отдельных вложенных полей не поддерживается, вложенные поля включаются или исключаются целиком. Peer-зависимость: payload ^1.6.22 (Payload 1.x).
О пакете
- Имя пакета
payload-query- Последняя версия
1.0.2- Размер
- 19 кБ
- Лицензия
- MIT
- Загрузок в неделю
- 35
- Последняя публикация
- 18 апр. 2023 г.
Ещё от teunmooij
Профиль автораПохожие плагины
Ещё в категории «Инструменты разработки»Shared plugin tooling
Dev-зависимость с общими конфигами lint, форматирования, TypeScript, сборки, тестовой БД и релиза для плагинов Payload.
Puck visual page builder
Интеграция визуального конструктора Puck с Payload CMS для редактирования с помощью перетаскивания.
OpenAPI
Создает спецификации OpenAPI 3.0/3.1/3.2 из конфигураций Payload CMS.
Create Ideal CMS
Интерактивный CLI для развёртывания монорепозитория Payload CMS с предустановленными плагинами @focus-reactive.
OpenAPI
Генерирует спецификацию OpenAPI из конфигурации Payload CMS 3.x и подключает интерфейс документации на выбор: Swagger UI, Redoc, RapiDoc или Scalar.
Markdown documentation sync
Синхронизирует Markdown-документацию с Payload CMS с помощью Git.