Query

Типобезопасные фильтры и проекция полей для Payload с плагином select для REST API.

Сообщество 140 11/нед MIT v1.0.2

Установка

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

Профиль автора