Skip to content

readonlyAtom.ts

Назначение файла

Модуль предоставляет функцию readonlyAtom(), создающую read-only представление существующего атома.

Общая информация

readonlyAtom() нужен для безопасной публикации состояния наружу. Он скрывает методы изменения SourceAtom, но сохраняет реактивность и label исходного атома.

Концептуальная архитектура

Функция извлекает label через getAtomLabel() и создает вычисляемый атом compute(source, { label }). Благодаря этому:

  • сохраняется текущее значение источника;
  • автоматически отслеживаются все обновления;
  • наружу возвращается только интерфейс Atom<T> без методов записи.

Описание публичного API

readonlyAtom<T>(source: Atom<T>): Atom<T>

  • source: исходный атом.
  • Возвращает read-only атом, читающий значение из source.

Примеры использования

ts
import { atom, readonlyAtom } from '@nrgyjs/core';

const source = atom(1);
const exposed = readonlyAtom(source);

console.log(exposed()); // 1
source.set(2);
console.log(exposed()); // 2