function hasCode
hasCode<Codes extends readonly string[]>(
value: unknown,
...codes: Codes
): value is Failure<Codes[number], unknown>

Narrows a Failure to one of several codes — the multi-code sibling of Factory.is.

import * as Failure from './failure.ts';

const FileMissing = Failure.define('FileMissing', (d: { path: string }) => `no ${d.path}`);
const error: unknown = FileMissing({ path: 'a.ts' });

if (Failure.hasCode(error, 'FileMissing', 'PermissionDenied')) error.code; // narrowed union
Failure.hasCode(error, 'FileMissing', 'PermissionDenied'); // true
Failure.hasCode(Failure.from(new Error('EACCES')), 'FileMissing'); // false — code is 'Unknown'

Type Parameters

Codes extends readonly string[]

Parameters

value: unknown
...codes: Codes

Return Type

value is Failure<Codes[number], unknown>

Usage

import { hasCode } from "lib/result/failure.ts";