summaryrefslogtreecommitdiff
path: root/src/jet/utils/error-metadata.ts
blob: 1322dfd5be1ef55d3af8b7d5f82056099a26d3f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import type { Opt } from '@jet/environment';
import type { Intent } from '@jet/environment/dispatching';

export function addRejectedIntent(error: Error, intent: Intent<unknown>) {
    (error as any).rejectedIntent = intent;
}

export function getRejectedIntent(error: Error): Opt<Intent<unknown>> {
    return hasRejectedIntent(error) ? error.rejectedIntent : null;
}

function hasRejectedIntent(
    error: Error,
): error is Error & { rejectedIntent: Intent<unknown> } {
    return 'rejectedIntent' in error;
}