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;