mergeAtoms.ts
Назначение файла
Модуль предоставляет утилиту mergeAtoms(), которая объединяет несколько атомов в один вычисляемый результат.
Общая информация
mergeAtoms() полезен, когда итоговое значение зависит от нескольких источников, а пользователю нужен компактный API вместо ручного вызова compute(() => ...). Функция принимает список атомов и явную функцию комбинации.
Концептуальная архитектура
Реализация строится поверх compute():
- При каждом чтении derived-атома функция читает все входные атомы.
- Значения собираются в массив в исходном порядке.
- Пользовательская
computationполучает распакованные значения и строит итоговый результат.
Типизация через кортеж TValues сохраняет точные типы всех аргументов.
Описание публичного API
mergeAtoms<TValues, TResult>(sources, computation, options?): Atom<TResult>
sources: кортеж исходных атомов.computation: функция комбинирования значений.options: опции вычисляемого атома.- Возвращает вычисляемый атом с итоговым значением
TResult.
Примеры использования
ts
import { atom, mergeAtoms } from '@nrgyjs/core';
const price = atom(10);
const quantity = atom(3);
const total = mergeAtoms([price, quantity], (p, q) => p * q);
console.log(total()); // 30