query.ts
Назначение файла (Purpose)
Интеграция Nrgy.js с объектами Query из библиотеки rx-effects.
Общая информация (Overview)
Этот файл предоставляет механизмы для взаимного преобразования между Atom из Nrgy и Query из rx-effects. Это позволяет использовать атомы там, где ожидаются объекты Query, и наоборот.
Концептуальная архитектура (Conceptual Architecture)
Query — это объект с методом get() и свойством value$ (Observable).
toQuery: оборачиваетAtom, используя его вызов дляget()иobserve(source)из@nrgyjs/rxjsдля полученияvalue$.fromQuery: подписывается наvalue$и хранит состояние во внутреннем атоме. Итоговый атом является вычисляемым (compute), который возвращает значение или выбрасывает ошибку в зависимости от состояния подписки.
Описание публичного API (Public API Description)
toQuery<T>(source: Atom<T>): Query<T>
Превращает Nrgy Atom в Query.
source: Исходный Nrgy Atom.
fromQuery<T>(query: Query<T>): DestroyableAtom<T>
Превращает Query в Nrgy Atom.
query: Исходный объектQuery.
Примеры использования (Usage Examples)
typescript
import { atom } from '@nrgyjs/core';
import { toQuery, fromQuery } from '@nrgyjs/rx-effects';
const count = atom(10);
const countQuery = toQuery(count);
console.log(countQuery.get()); // 10
countQuery.value$.subscribe(v => console.log(v));