IAtom interface

Home > atom > IAtom

IAtom interface

Интерфейс ядра атома.

Signature:

export interface IAtom<T>

Remarks

Функция-контейнер.

Properties

PropertyTypeDescription
idstringИдентификатор, вернёт uid если не был задан IAtom.setId()
isAsyncBooleanЯвляется ли уставленный добытчик IAtom.setGetter() асинхронным
isAwaitingBooleanНаходится ли атом в процессе получения значения от асинхронного добытчика IAtom.setGetter()
isEmptybooleanВернёт true при отсутствующем значении в контейнере
isStatelessBooleantrue когда атом не запоминает значение IAtom.stateless()
namestringИмя заданное IAtom.setName()
uidstringУникальный идентификатор генерируется при создании.
valueTТекущее значение контейнера

Methods

MethodDescription
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

ParameterTypeDescription
metaNamestringназвание-ключ мета-данных
valueanyнеобязательное значение мета-данных

Returns:

IAtom<T>

IAtom

clear() method

Удалить связи всех функций-получателей, слушателей, и очистить значение контейнера

Signature:

clear(): IAtom<T>;

Returns:

IAtom<T>

IAtom

clearValue() method

Очистить значение контейнера

Signature:

clearValue(): IAtom<T>;

Returns:

IAtom<T>

IAtom

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

ParameterTypeDescription
receiverValueReceiver<T>функция-получатель

Returns:

IAtom<T>

IAtom

fmap() method

Применить функцию к значению в контейнере

Signature:

fmap(fun: (v: T) => T): IAtom<T>;

Parameters

ParameterTypeDescription
fun(v: T) => Tфункция принимающая текущее значение и возвращающей новое значение в контейнер и дочерним функциям-получателям

Returns:

IAtom<T>

IAtom

getMeta() method

Получить мета-данные по имени

Signature:

getMeta(metaName: string): any;

Parameters

ParameterTypeDescription
metaNamestringимя мета-данных

Returns:

any

данные мета-данных

hasMeta() method

Проверить на наличие мета-данных

Signature:

hasMeta(metaName: string): boolean;

Parameters

ParameterTypeDescription
metaNamestringимя мета-данных

Returns:

boolean

положительно при наличии мета-данных

holistic() method

Сделать конетейнер принимающим и передаюшим множество агрументов. Все аргументы переданные в атом, сохраняются как массив. В функции-получатели значения передаются в полном количестве.

Signature:

holistic(bool?: boolean): IAtom<T>;

Parameters

ParameterTypeDescription
boolboolean? - по умолчанию true

Returns:

IAtom<T>

IAtom

id property

Идентификатор, вернёт uid если не был задан IAtom.setId()

Signature:

readonly id: string;

injectOnce() method

Передаёт значение контейнера в ключ объекта

Signature:

injectOnce(targetObject: any, key?: string): IAtom<T>;

Parameters

ParameterTypeDescription
targetObjectanyцелевой объект
keystringключ доступа к значению в объекте

Returns:

IAtom<T>

is() method

Проверить значение контейнера на соответствие

Signature:

is(compareValue: T): boolean;

Parameters

ParameterTypeDescription
compareValueTпроверяемое значение

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

ParameterTypeDescription
receiverValueReceiver<T>функция-получатель

Returns:

IAtom<T>

IAtom

offAwait() method

Удалить слушатель изменения асинхронного состояния

Signature:

offAwait(listener: AnyFunction): void;

Parameters

ParameterTypeDescription
listenerAnyFunctionфункция-слушатель

Returns:

void

IAtom

offClear() method

Удалить слушатель отчистки зачения IAtom.clearValue()

Signature:

offClear(listener: () => void): IAtom<T>;

Parameters

ParameterTypeDescription
listener() => voidфункция-слушатель

Returns:

IAtom<T>

IAtom

onAwait() method

Добавить слушатель изменения асинхронного состояния функции добычи значения IAtom.setGetter()

Signature:

onAwait(listener: (isAwaiting: boolean) => void): IAtom<T>;

Parameters

ParameterTypeDescription
listener(isAwaiting: boolean) => voidфункция-слушатель

Returns:

IAtom<T>

IAtom

once() method

Передать один раз в функцию-получатель значение контейнера, текущее если оно есть или как появится

Signature:

once(receiver: ValueReceiver<T>): IAtom<T>;

Parameters

ParameterTypeDescription
receiverValueReceiver<T>функция-получатель

Returns:

IAtom<T>

IAtom

onClear() method

Добавить слушатель отчистки значения

Signature:

onClear(listener: (deep: Level) => void): IAtom<T>;

Parameters

ParameterTypeDescription
listener(deep: Level) => voidфункция-слушатель принимающая строку - значение глубины отчистки

Returns:

IAtom<T>

IAtom

Remarks

Значение глубины отчистки

resend() method

Повторно отправить значение всем функциям-получателям

Signature:

resend(): IAtom<T>;

Returns:

IAtom<T>

IAtom

safe() method

Обновление фукнций-приёмников происходит только при уникальных значениях

Signature:

safe(bool?: boolean): IAtom<T>;

Parameters

ParameterTypeDescription
boolboolean? - по умолчанию true

Returns:

IAtom<T>

IAtom

setGetter() method

Использовать функцию-добытчик значения контейнера

Signature:

setGetter(getter: () => T | Promise<T>, isAsync?: boolean): IAtom<T>;

Parameters

ParameterTypeDescription
getter() => T ا Promise<T>функция-добытчик
isAsyncbooleanустановить значение IAtom.isAsync

Returns:

IAtom<T>

IAtom

Remarks

Функция-добытчик вызывается каждый раз при вызове функции-атома

setId() method

Установить идентификатор

Signature:

setId(id: string): IAtom<T>;

Parameters

ParameterTypeDescription
idstringидентификатор

Returns:

IAtom<T>

IAtom

setName() method

Установить имя

Signature:

setName(name: string): IAtom<T>;

Parameters

ParameterTypeDescription
namestringимя

Returns:

IAtom<T>

IAtom

setOnceGet() method

Использовать функцию-добытчик только один раз

Signature:

setOnceGet(getter: () => T | Promise<T>, isAsync?: boolean): IAtom<T>;

Parameters

ParameterTypeDescription
getter() => T ا Promise<T>функция-добытчик
isAsyncbooleanустановить значение IAtom.isAsync

Returns:

IAtom<T>

IAtom

setWrapper() method

Использовать функцию-обёртку Каждое новое обновление значение контейнера атома, всегда будет проходить сперва через функцию-обёртку

Signature:

setWrapper(wrapper: (newValue: T, prevValue: T) => T | Promise<T>, isAsync?: boolean): IAtom<T>;

Parameters

ParameterTypeDescription
wrapper(newValue: T, prevValue: T) => T ا Promise<T>функция-обёртка
isAsyncbooleanустановить значение returns IAtom.isAsync

Returns:

IAtom<T>

IAtom

stateless() method

Сделать конетейнер всегда пустым. Значение переданное в атом, доставится в функции-получатели минуя контейнер.

Signature:

stateless(bool?: boolean): IAtom<T>;

Parameters

ParameterTypeDescription
boolboolean? - по умолчанию true

Returns:

IAtom<T>

IAtom

uid property

Уникальный идентификатор генерируется при создании.

Signature:

readonly uid: string;

up() method

Добавить функцию-получатель обновлений значения контейнера и передать текущее значение контейнера, если оно есть

Signature:

up(receiver: ValueReceiver<T>): IAtom<T>;

Parameters

ParameterTypeDescription
receiverValueReceiver<T>функция-получатель

Returns:

IAtom<T>

IAtom

upDown() method

Добавить функцию-получатель со вторым аргументом функцией-отмены подписки

Signature:

upDown(receiver: ValueDownReceiver<T>): IAtom<T>;

Parameters

ParameterTypeDescription
receiverValueDownReceiver<T>функция-получатель

Returns:

IAtom<T>

IAtom

upFalse() method

Добавить функцию-получатель значений равных false после приведения значения к типу boolean методом !value

Signature:

upFalse(receiver: ValueReceiver<T>): IAtom<T>;

Parameters

ParameterTypeDescription
receiverValueReceiver<T>функция-получатель

Returns:

IAtom<T>

IAtom

upNone() method

Добавить функцию-получатель значений равных null и undefined

Signature:

upNone(receiver: ValueReceiver<T>): IAtom<T>;

Parameters

ParameterTypeDescription
receiverValueReceiver<T>функция-получатель

Returns:

IAtom<T>

IAtom

upSome() method

Добавить функцию-получатель значений не равных null и undefined

Signature:

upSome(receiver: ValueReceiver<T>): IAtom<T>;

Parameters

ParameterTypeDescription
receiverValueReceiver<T>функция-получатель

Returns:

IAtom<T>

IAtom

upSomeFalse() method

Добавить функцию-получатель значений равных false после приведения значения к типу boolean методом !value за исключением null и undefined

Signature:

upSomeFalse(receiver: ValueReceiver<T>): IAtom<T>;

Parameters

ParameterTypeDescription
receiverValueReceiver<T>функция-получатель

Returns:

IAtom<T>

IAtom

upTrue() method

Добавить функцию-получатель значений равных true после приведения значения к типу boolean методом !!value

Signature:

upTrue(receiver: ValueReceiver<T>): IAtom<T>;

Parameters

ParameterTypeDescription
receiverValueReceiver<T>функция-получатель

Returns:

IAtom<T>

IAtom

value property

Текущее значение контейнера

Signature:

readonly value: T;