@opencharts/error
v0.0.1
Published
Shared error types and classes for OpenCharts
Maintainers
Readme
@opencharts/error
Typed domain error classes for the OpenCharts ecosystem.
Overview
@opencharts/error provides a hierarchy of typed errors that carry machine-readable code strings and an internalContext bag for operational identifiers. Errors never carry PHI (patient names, dates of birth, MRNs, or clinical content).
All error classes extend CanonicalError, which in turn extends the native Error.
Installation
npm install @opencharts/errorError Classes
Base
| Class | Code |
|---|---|
| CanonicalError | (base — not thrown directly) |
Resource errors
| Class | Code |
|---|---|
| UnknownCanonicalResourceError | UNKNOWN_CANONICAL_RESOURCE |
| InvalidCanonicalResourceError | INVALID_CANONICAL_RESOURCE |
| DuplicateResourceKeyError | DUPLICATE_RESOURCE_KEY |
| InvalidResourceReferenceError | INVALID_RESOURCE_REFERENCE |
Parameter errors
| Class | Code |
|---|---|
| UnknownCanonicalParameterError | UNKNOWN_CANONICAL_PARAMETER |
| InvalidCanonicalParameterError | INVALID_CANONICAL_PARAMETER |
Extension errors
| Class | Code |
|---|---|
| InvalidCanonicalExtensionError | INVALID_CANONICAL_EXTENSION |
Mapping errors
| Class | Code |
|---|---|
| InvalidSourceMappingError | INVALID_SOURCE_MAPPING |
Workflow errors
| Class | Code |
|---|---|
| InvalidWorkflowDefinitionError | INVALID_WORKFLOW_DEFINITION |
| WorkflowBindingResolutionError | WORKFLOW_BINDING_RESOLUTION_ERROR |
Identity resolution errors
| Class | Code |
|---|---|
| IdentityResolutionTypeMismatchError | IDENTITY_RESOLUTION_TYPE_MISMATCH |
| IdentityResolutionConflictError | IDENTITY_RESOLUTION_CONFLICT |
Item / operation errors
| Class | Code |
|---|---|
| MissingRequiredInputError | MISSING_REQUIRED_INPUT |
| StaleLeaseError | STALE_LEASE |
Adapter / query errors
| Class | Code |
|---|---|
| UnsupportedAdapterCapabilityError | UNSUPPORTED_ADAPTER_CAPABILITY |
| InvalidCanonicalQueryError | INVALID_CANONICAL_QUERY |
| UnsupportedCapabilityQueryError | UNSUPPORTED_CAPABILITY_QUERY |
Publish errors
| Class | Code |
|---|---|
| InvalidPublishTargetError | INVALID_PUBLISH_TARGET |
Usage
import {
UnknownCanonicalResourceError,
InvalidCanonicalResourceError,
} from '@opencharts/error';
try {
catalog.get('UnknownType');
} catch (err) {
if (err instanceof UnknownCanonicalResourceError) {
console.error(err.code); // 'UNKNOWN_CANONICAL_RESOURCE'
console.error(err.context); // { resource_type: 'UnknownType' }
}
throw err;
}Catching by base class
import { CanonicalError } from '@opencharts/error';
try {
// ...
} catch (err) {
if (err instanceof CanonicalError) {
// All canonical errors have .code and .context
logger.error({ code: err.code, context: err.context }, err.message);
}
throw err;
}Error properties
Every CanonicalError instance has:
| Property | Type | Description |
|---|---|---|
| message | string | Human-readable description (no PHI) |
| code | string | Machine-readable error code |
| context | Object | Operational identifiers (no PHI) |
| name | string | Constructor name (e.g. "UnknownCanonicalResourceError") |
| stack | string | Native stack trace |
