# core/predicates/failure.predicate.ts

> 14 lines of code and 4 definitions.

Tree: GovLab Quality
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/quality#file-quality-core-predicates-failure-predicate-ts
Source text: https://banes-lab.com/source/quality/core/predicates/failure.predicate.ts.txt

Listed in [core/predicates](https://banes-lab.com/api/source/quality/core/predicates.md), after [core/predicates/eslint.predicate.ts](https://banes-lab.com/source/quality/core/predicates/eslint.predicate.ts.md) and before [core/predicates/filename.predicate.ts](https://banes-lab.com/source/quality/core/predicates/filename.predicate.ts.md).

## Definitions

- `signalKilled` (lexical_declaration, line 12, exported)
- `statusIn` (lexical_declaration, line 16, exported)
- `isNotFound` (lexical_declaration, line 4, exported)
- `isModuleMissing` (lexical_declaration, line 8, exported)

## Contained in

- [core/predicates](https://banes-lab.com/anatomy/quality/folder-quality-core-predicates.md)

## Uses

- [core/selectors/failure.selector.ts](https://banes-lab.com/source/quality/core/selectors/failure.selector.ts.md)

## Used by

- [core/adapters/tool.adapter.ts](https://banes-lab.com/source/quality/core/adapters/tool.adapter.ts.md)
- [core/adapters/tool.jscpd.adapter.ts](https://banes-lab.com/source/quality/core/adapters/tool.jscpd.adapter.ts.md)
- [core/adapters/tool.knip.adapter.ts](https://banes-lab.com/source/quality/core/adapters/tool.knip.adapter.ts.md)
- [core/adapters/tool.oxlint.adapter.ts](https://banes-lab.com/source/quality/core/adapters/tool.oxlint.adapter.ts.md)
- [core/adapters/tool.phpcs.adapter.ts](https://banes-lab.com/source/quality/core/adapters/tool.phpcs.adapter.ts.md)
- [core/adapters/tool.sqlfluff.adapter.ts](https://banes-lab.com/source/quality/core/adapters/tool.sqlfluff.adapter.ts.md)
- [core/adapters/tool.stylua.adapter.ts](https://banes-lab.com/source/quality/core/adapters/tool.stylua.adapter.ts.md)
- [core/classifiers/invocation.classifier.ts](https://banes-lab.com/source/quality/core/classifiers/invocation.classifier.ts.md)
- [core/coordinators/access.coordinator.ts](https://banes-lab.com/source/quality/core/coordinators/access.coordinator.ts.md)
- [core/coordinators/validation.coordinator.ts](https://banes-lab.com/source/quality/core/coordinators/validation.coordinator.ts.md)
- [core/loaders/eslint.loader.ts](https://banes-lab.com/source/quality/core/loaders/eslint.loader.ts.md)
- [core/loaders/source.loader.ts](https://banes-lab.com/source/quality/core/loaders/source.loader.ts.md)
- [core/producers/tool.oxlint.producer.ts](https://banes-lab.com/source/quality/core/producers/tool.oxlint.producer.ts.md)

## Linked from

- [core/adapters](https://banes-lab.com/anatomy/quality/folder-quality-core-adapters.md)
- [core/classifiers](https://banes-lab.com/anatomy/quality/folder-quality-core-classifiers.md)
- [core/coordinators](https://banes-lab.com/anatomy/quality/folder-quality-core-coordinators.md)
- [core/loaders](https://banes-lab.com/anatomy/quality/folder-quality-core-loaders.md)
- [core/producers](https://banes-lab.com/anatomy/quality/folder-quality-core-producers.md)
- [core/selectors](https://banes-lab.com/anatomy/quality/folder-quality-core-selectors.md)

## Source

```typescript
import { MODULE_MISSING_CODES, NOT_FOUND_CODE } from "#configuration/constants/tool.constants";
import { errnoCode } from "#core/selectors/failure.selector";

export const isNotFound = function isNotFound(error: Error): boolean {
    return errnoCode(error) === NOT_FOUND_CODE;
};

export const isModuleMissing = function isModuleMissing(error: unknown): boolean {
    return error instanceof Error && MODULE_MISSING_CODES.has(errnoCode(error));
};

export const signalKilled = function signalKilled(status: number | null): boolean {
    return status === null;
};

export const statusIn = function statusIn(statuses: ReadonlySet<number>, status: number | null): boolean {
    return statuses.has(status ?? 0);
};
```
