MineflowApiError
@mineflow/client-core / MineflowApiError
Class: MineflowApiError
Defined in: packages/client-core/src/errors.ts:49
Типизированная ошибка REST-вызова. Бросается из unwrap/normalizeError,
когда ответ не-OK. Наследует Error, поэтому ловится обычным try/catch и
распознаётся через instanceof MineflowApiError.
Example
try {
unwrap(await client.POST('/api/v1/eam/assets/{id}/decommission', { ... }));
} catch (e) {
if (e instanceof MineflowApiError && e.is('ASSET_INVALID_STATUS_TRANSITION')) {
// показать доменное сообщение
}
}
Extends
Error
Constructors
Constructor
new MineflowApiError(problem: ProblemDetails): MineflowApiError;
Defined in: packages/client-core/src/errors.ts:62
Parameters
| Parameter | Type |
|---|---|
problem | ProblemDetails |
Returns
MineflowApiError
Overrides
Error.constructor
Properties
code
readonly code: string | undefined;
Defined in: packages/client-core/src/errors.ts:56
Стабильный машинный код домена (code из Problem Details) либо undefined,
если бэк его не прислал. ЭТО, а не message, — то, на что гейтят UI.
detail
readonly detail: unknown;
Defined in: packages/client-core/src/errors.ts:58
Доп. детали ошибки; для 422 — { errors: [...] } с пофайловыми Zod-ошибками.
problem
readonly problem: ProblemDetails;
Defined in: packages/client-core/src/errors.ts:60
Полный исходный объект Problem Details (RFC 7807).
status
readonly status: number;
Defined in: packages/client-core/src/errors.ts:51
HTTP-статус ответа (напр. 409, 422).
Methods
is()
is(code: string): boolean;
Defined in: packages/client-core/src/errors.ts:81
Совпадает ли стабильный код ошибки с ожидаемым. Удобная замена
e.code === '...' для гейтинга UI по конкретному доменному коду.
Parameters
| Parameter | Type | Description |
|---|---|---|
code | string | ожидаемый машинный код, напр. ASSET_INVALID_STATUS_TRANSITION. |
Returns
boolean
true, если MineflowApiError.code равен code.