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
- Загрузок в неделю
- 11
- Последняя публикация
- 18 апр. 2023 г.
Ещё от teunmooij
Профиль автораRedirects
Плагин для управления редиректами в Payload CMS.
SEO plugin
Плагин для управления метаданными SEO в админ-панели Payload.
Cloud
Подключает инстанс Payload к инфраструктуре Payload Cloud: S3-хранилище, кэширование загрузок через Cloudflare CDN, доставка почты через Resend.
Stripe
Связывает коллекции Payload с ресурсами Stripe, обрабатывает webhook-события и проксирует вызовы API.
Cloud Storage
Плагин для интеграции облачного хранилища в Payload CMS.
Nested Docs
Добавляет иерархию документов с автогенерируемыми хлебными крошками в выбранные коллекции Payload.