IAtom interface
IAtom interface
Интерфейс ядра атома.
Signature:
export interface IAtom<T> Remarks
Функция-контейнер.
Properties
| Property | Type | Description |
|---|---|---|
| id | string | Идентификатор, вернёт uid если не был задан IAtom.setId() |
| isAsync | Boolean | Является ли уставленный добытчик IAtom.setGetter() асинхронным |
| isAwaiting | Boolean | Находится ли атом в процессе получения значения от асинхронного добытчика IAtom.setGetter() |
| isEmpty | boolean | Вернёт true при отсутствующем значении в контейнере |
| isStateless | Boolean | true когда атом не запоминает значение IAtom.stateless() |
| name | string | Имя заданное IAtom.setName() |
| uid | string | Уникальный идентификатор генерируется при создании. |
| value | T | Текущее значение контейнера |
Methods
| Method | Description |
|---|---|
| addMeta(metaName, value) | Добавить мета-данные |
| clear() | Удалить связи всех функций-получателей, слушателей, и очистить значение контейнера |
| clearValue() | Очистить значение контейнера |
| cloneValue() | Создать дубликат значение |
| decay() | Распад атома, форсировать отчистку пямятти, удалить все свойства, функции и ссылки. |
| down(receiver) | Удалить функцию-получатель |
| fmap(fun) | Применить функцию к значению в контейнере |
| getMeta(metaName) | Получить мета-данные по имени |
| hasMeta(metaName) | Проверить на наличие мета-данных |
| holistic(bool) | Сделать конетейнер принимающим и передаюшим множество агрументов. Все аргументы переданные в атом, сохраняются как массив. В функции-получатели значения передаются в полном количестве. |
| injectOnce(targetObject, key) | Передаёт значение контейнера в ключ объекта |
| is(compareValue) | Проверить значение контейнера на соответствие |
| next(receiver) | Добавить функцию-получатель и передать значение со следующего обновления |
| offAwait(listener) | Удалить слушатель изменения асинхронного состояния |
| offClear(listener) | Удалить слушатель отчистки зачения IAtom.clearValue() |
| onAwait(listener) | Добавить слушатель изменения асинхронного состояния функции добычи значения IAtom.setGetter() |
| once(receiver) | Передать один раз в функцию-получатель значение контейнера, текущее если оно есть или как появится |
| onClear(listener) | Добавить слушатель отчистки значения |
| resend() | Повторно отправить значение всем функциям-получателям |
| safe(bool) | Обновление фукнций-приёмников происходит только при уникальных значениях |
| setGetter(getter, isAsync) | Использовать функцию-добытчик значения контейнера |
| setId(id) | Установить идентификатор |
| setName(name) | Установить имя |
| setOnceGet(getter, isAsync) | Использовать функцию-добытчик только один раз |
| setWrapper(wrapper, isAsync) | Использовать функцию-обёртку Каждое новое обновление значение контейнера атома, всегда будет проходить сперва через функцию-обёртку |
| stateless(bool) | Сделать конетейнер всегда пустым. Значение переданное в атом, доставится в функции-получатели минуя контейнер. |
| up(receiver) | Добавить функцию-получатель обновлений значения контейнера и передать текущее значение контейнера, если оно есть |
| upDown(receiver) | Добавить функцию-получатель со вторым аргументом функцией-отмены подписки |
| upFalse(receiver) | Добавить функцию-получатель значений равных false после приведения значения к типу boolean методом !value |
| upNone(receiver) | Добавить функцию-получатель значений равных null и undefined |
| upSome(receiver) | Добавить функцию-получатель значений не равных null и undefined |
| upSomeFalse(receiver) | Добавить функцию-получатель значений равных false после приведения значения к типу boolean методом !value за исключением null и undefined |
| upTrue(receiver) | Добавить функцию-получатель значений равных true после приведения значения к типу boolean методом !!value |
addMeta() method
Добавить мета-данные
Signature:
addMeta(metaName: string, value?: any): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| metaName | string | название-ключ мета-данных |
| value | any | необязательное значение мета-данных |
Returns:
IAtom<T>
clear() method
Удалить связи всех функций-получателей, слушателей, и очистить значение контейнера
Signature:
clear(): IAtom<T>;Returns:
IAtom<T>
clearValue() method
Очистить значение контейнера
Signature:
clearValue(): IAtom<T>;Returns:
IAtom<T>
cloneValue() method
Создать дубликат значение
Signature:
cloneValue(): T;Returns:
T
T
Remarks
Методом JSON.parse(JSON.stringify(value))
decay() method
Распад атома, форсировать отчистку пямятти, удалить все свойства, функции и ссылки.
Signature:
decay(): void;Returns:
void
down() method
Удалить функцию-получатель
Signature:
down(receiver: ValueReceiver<T>): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| receiver | ValueReceiver<T> | функция-получатель |
Returns:
IAtom<T>
fmap() method
Применить функцию к значению в контейнере
Signature:
fmap(fun: (v: T) => T): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| fun | (v: T) => T | функция принимающая текущее значение и возвращающей новое значение в контейнер и дочерним функциям-получателям |
Returns:
IAtom<T>
getMeta() method
Получить мета-данные по имени
Signature:
getMeta(metaName: string): any;Parameters
| Parameter | Type | Description |
|---|---|---|
| metaName | string | имя мета-данных |
Returns:
any
данные мета-данных
hasMeta() method
Проверить на наличие мета-данных
Signature:
hasMeta(metaName: string): boolean;Parameters
| Parameter | Type | Description |
|---|---|---|
| metaName | string | имя мета-данных |
Returns:
boolean
положительно при наличии мета-данных
holistic() method
Сделать конетейнер принимающим и передаюшим множество агрументов. Все аргументы переданные в атом, сохраняются как массив. В функции-получатели значения передаются в полном количестве.
Signature:
holistic(bool?: boolean): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| bool | boolean | ? - по умолчанию true |
Returns:
IAtom<T>
id property
Идентификатор, вернёт uid если не был задан IAtom.setId()
Signature:
readonly id: string;injectOnce() method
Передаёт значение контейнера в ключ объекта
Signature:
injectOnce(targetObject: any, key?: string): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| targetObject | any | целевой объект |
| key | string | ключ доступа к значению в объекте |
Returns:
IAtom<T>
is() method
Проверить значение контейнера на соответствие
Signature:
is(compareValue: T): boolean;Parameters
| Parameter | Type | Description |
|---|---|---|
| compareValue | T | проверяемое значение |
Returns:
boolean
положительно при соответствии заданного значения значению контейнера
isAsync property
Является ли уставленный добытчик IAtom.setGetter() асинхронным
Signature:
readonly isAsync: Boolean;isAwaiting property
Находится ли атом в процессе получения значения от асинхронного добытчика IAtom.setGetter()
Signature:
readonly isAwaiting: Boolean;isEmpty property
Вернёт true при отсутствующем значении в контейнере
Signature:
readonly isEmpty: boolean;isStateless property
true когда атом не запоминает значение IAtom.stateless()
Signature:
readonly isStateless: Boolean;name property
Имя заданное IAtom.setName()
Signature:
readonly name: string;next() method
Добавить функцию-получатель и передать значение со следующего обновления
Signature:
next(receiver: ValueReceiver<T>): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| receiver | ValueReceiver<T> | функция-получатель |
Returns:
IAtom<T>
offAwait() method
Удалить слушатель изменения асинхронного состояния
Signature:
offAwait(listener: AnyFunction): void;Parameters
| Parameter | Type | Description |
|---|---|---|
| listener | AnyFunction | функция-слушатель |
Returns:
void
offClear() method
Удалить слушатель отчистки зачения IAtom.clearValue()
Signature:
offClear(listener: () => void): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| listener | () => void | функция-слушатель |
Returns:
IAtom<T>
onAwait() method
Добавить слушатель изменения асинхронного состояния функции добычи значения IAtom.setGetter()
Signature:
onAwait(listener: (isAwaiting: boolean) => void): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| listener | (isAwaiting: boolean) => void | функция-слушатель |
Returns:
IAtom<T>
once() method
Передать один раз в функцию-получатель значение контейнера, текущее если оно есть или как появится
Signature:
once(receiver: ValueReceiver<T>): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| receiver | ValueReceiver<T> | функция-получатель |
Returns:
IAtom<T>
onClear() method
Добавить слушатель отчистки значения
Signature:
onClear(listener: (deep: Level) => void): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| listener | (deep: Level) => void | функция-слушатель принимающая строку - значение глубины отчистки |
Returns:
IAtom<T>
Remarks
Значение глубины отчистки
value отичстка значения IAtom.clearValue()
all отичстка всего IAtom.clear()
decay рапад IAtom.decay()
resend() method
Повторно отправить значение всем функциям-получателям
Signature:
resend(): IAtom<T>;Returns:
IAtom<T>
safe() method
Обновление фукнций-приёмников происходит только при уникальных значениях
Signature:
safe(bool?: boolean): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| bool | boolean | ? - по умолчанию true |
Returns:
IAtom<T>
setGetter() method
Использовать функцию-добытчик значения контейнера
Signature:
setGetter(getter: () => T | Promise<T>, isAsync?: boolean): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| getter | () => T ا Promise<T> | функция-добытчик |
| isAsync | boolean | установить значение IAtom.isAsync |
Returns:
IAtom<T>
Remarks
Функция-добытчик вызывается каждый раз при вызове функции-атома
setId() method
Установить идентификатор
Signature:
setId(id: string): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| id | string | идентификатор |
Returns:
IAtom<T>
setName() method
Установить имя
Signature:
setName(name: string): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| name | string | имя |
Returns:
IAtom<T>
setOnceGet() method
Использовать функцию-добытчик только один раз
Signature:
setOnceGet(getter: () => T | Promise<T>, isAsync?: boolean): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| getter | () => T ا Promise<T> | функция-добытчик |
| isAsync | boolean | установить значение IAtom.isAsync |
Returns:
IAtom<T>
setWrapper() method
Использовать функцию-обёртку Каждое новое обновление значение контейнера атома, всегда будет проходить сперва через функцию-обёртку
Signature:
setWrapper(wrapper: (newValue: T, prevValue: T) => T | Promise<T>, isAsync?: boolean): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| wrapper | (newValue: T, prevValue: T) => T ا Promise<T> | функция-обёртка |
| isAsync | boolean | установить значение returns IAtom.isAsync |
Returns:
IAtom<T>
stateless() method
Сделать конетейнер всегда пустым. Значение переданное в атом, доставится в функции-получатели минуя контейнер.
Signature:
stateless(bool?: boolean): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| bool | boolean | ? - по умолчанию true |
Returns:
IAtom<T>
uid property
Уникальный идентификатор генерируется при создании.
Signature:
readonly uid: string;up() method
Добавить функцию-получатель обновлений значения контейнера и передать текущее значение контейнера, если оно есть
Signature:
up(receiver: ValueReceiver<T>): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| receiver | ValueReceiver<T> | функция-получатель |
Returns:
IAtom<T>
upDown() method
Добавить функцию-получатель со вторым аргументом функцией-отмены подписки
Signature:
upDown(receiver: ValueDownReceiver<T>): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| receiver | ValueDownReceiver<T> | функция-получатель |
Returns:
IAtom<T>
upFalse() method
Добавить функцию-получатель значений равных false после приведения значения к типу boolean методом !value
Signature:
upFalse(receiver: ValueReceiver<T>): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| receiver | ValueReceiver<T> | функция-получатель |
Returns:
IAtom<T>
upNone() method
Добавить функцию-получатель значений равных null и undefined
Signature:
upNone(receiver: ValueReceiver<T>): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| receiver | ValueReceiver<T> | функция-получатель |
Returns:
IAtom<T>
upSome() method
Добавить функцию-получатель значений не равных null и undefined
Signature:
upSome(receiver: ValueReceiver<T>): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| receiver | ValueReceiver<T> | функция-получатель |
Returns:
IAtom<T>
upSomeFalse() method
Добавить функцию-получатель значений равных false после приведения значения к типу boolean методом !value за исключением null и undefined
Signature:
upSomeFalse(receiver: ValueReceiver<T>): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| receiver | ValueReceiver<T> | функция-получатель |
Returns:
IAtom<T>
upTrue() method
Добавить функцию-получатель значений равных true после приведения значения к типу boolean методом !!value
Signature:
upTrue(receiver: ValueReceiver<T>): IAtom<T>;Parameters
| Parameter | Type | Description |
|---|---|---|
| receiver | ValueReceiver<T> | функция-получатель |
Returns:
IAtom<T>
value property
Текущее значение контейнера
Signature:
readonly value: T;