Перейти к основному содержимому

MineflowApiError

@mineflow/client-core


@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

ParameterType
problemProblemDetails

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

ParameterTypeDescription
codestringожидаемый машинный код, напр. ASSET_INVALID_STATUS_TRANSITION.

Returns

boolean

true, если MineflowApiError.code равен code.