@thisisagile/easy-service
Version:
Straightforward library for building domain-driven microservice architectures
18 lines (14 loc) • 587 B
text/typescript
import { ErrorOrigin, isError } from '@thisisagile/easy';
import { VerbOptions } from './Verb';
export class OriginatedError extends Error {
constructor(
readonly origin: ErrorOrigin,
readonly options?: VerbOptions
) {
super();
if (isError(origin)) this.stack = origin.stack;
}
}
export const isOriginatedError = (e?: unknown): e is OriginatedError => isError(e) && e instanceof OriginatedError;
export const toOriginatedError = (e: unknown, options?: VerbOptions): OriginatedError =>
isOriginatedError(e) ? e : new OriginatedError(e as ErrorOrigin, options);