API
Этот документ описывает публичный API основных классов и интерфейсов @vue-modeler/model.
ProtoModel
Абстрактный базовый класс для создания реактивных моделей с управлением действиями.
Статические методы
| Метод | Описание |
|---|---|
createModel | Оборачивает ProtoModel в Model<T> (proxy) для доступа к @action как к Action |
model | Фабрика для создания Model<T> с сигнатурой конструктора класса |
Свойства экземпляра (ProtoModel)
| Свойство | Тип | Описание |
|---|---|---|
hasPendingActions | boolean | Есть ли в модели действия в состоянии pending |
hasActionWithError | boolean | Есть ли в модели действия в состоянии error |
Защищённые методы (ProtoModel)
| Метод | Описание |
|---|---|
watch | Регистрирует watch/watchEffect в локальном EffectScope модели |
computed | Создаёт computed в локальном EffectScope модели |
action | Возвращает Action для метода с @action (создаёт при первом обращении) |
setActionState | Обновляет агрегированное состояние действий модели |
validateArgs | Пользовательская валидация аргументов действий (переопределяется в модели) |
Публичные методы (ProtoModel)
| Метод | Описание |
|---|---|
isModelOf | Проверка типа модели через instanceof |
destructor | Останавливает watchers и EffectScope модели |
Action
Класс, представляющий действие (декорированный метод) с возможностями управления состоянием.
Статические свойства (Action)
| Свойство | Тип | Описание |
|---|---|---|
possibleState | object | Все возможные состояния действия |
actionFlag | Symbol | Флаг, которым декоратор @action помечает методы |
abortedByLock | Symbol | Маркер причины abort при lock |
Статические методы (Action)
| Метод | Описание |
|---|---|
create | Фабрика реактивного (shallowReactive) экземпляра Action |
Свойства экземпляра (Action)
| Свойство | Тип | Описание |
|---|---|---|
name | string | Имя действия (имя метода) |
owner | Model<T> | Владелец действия (модель) |
possibleStates | ActionStateName[] | Все возможные состояния |
state | ActionStateName | Текущее состояние |
abortController | AbortController | null | AbortController, если действие pending |
args | Args | never[] | Аргументы последнего запуска |
promise | Promise<void> | null | Promise текущего запуска (pending) |
error | ActionError | null | Ошибка выполнения (error) |
abortReason | unknown | Причина abort |
isPending | boolean | state === 'pending' |
isError | boolean | state === 'error' |
isReady | boolean | state === 'ready' |
isLock | boolean | state === 'lock' |
isAbort | boolean | state === 'abort' |
Методы экземпляра (Action)
| Метод | Описание |
|---|---|
is | Проверяет состояние(я) действия |
validate | Запускает валидацию аргументов |
exec | Выполняет действие |
abort | Прерывает выполнение |
lock | Блокирует выполнение |
unlock | Снимает блокировку |
resetError | Сбрасывает ошибку |
toString | Строковое представление |
ActionLike
Интерфейс, описывающий публичный контракт для экземпляров Action без деталей реализации.
ActionError
Класс ошибки, представляющий исключение, произошедшее во время выполнения действия. Это исключение, которое должно быть обработано и отображено пользователю в пользовательском интерфейсе.
Конструктор (ActionError)
| Конструктор | Описание |
|---|---|
new ActionError(...) | Ошибка, возникающая при выполнении действия (Action.error) |
Свойства экземпляра (ActionError)
| Свойство | Тип | Описание |
|---|---|---|
cause | Error | Оригинальная ошибка-причина |
Методы экземпляра (ActionError)
| Метод | Описание |
|---|---|
throwCause | Выбрасывает оригинальную ошибку-причину |
toString | Возвращает сообщение из ошибки-причины |
Типы
Вспомогательные типы, используемые в публичном API моделей и действий.
Внутренние ошибки
Классы ошибок, связанные с некорректным жизненным циклом и состояниями действий.
