# core/predicates/taxonomy.domain.predicate.ts

> 10 lines of code and 2 definitions.

Tree: GovLab Docs
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/docs#file-docs-core-predicates-taxonomy-domain-predicate-ts
Source text: https://banes-lab.com/source/docs/core/predicates/taxonomy.domain.predicate.ts.txt

Listed in [core/predicates](https://banes-lab.com/api/source/docs/core/predicates.md), after [core/predicates/source.predicate.ts](https://banes-lab.com/source/docs/core/predicates/source.predicate.ts.md).

## Definitions

- `isDomainMeta` (lexical_declaration, line 3, exported)
- `isDomainSub` (lexical_declaration, line 7, exported)

## Contained in

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

## Used by

- [core/plugins/manifest.domain.plugin.ts](https://banes-lab.com/source/docs/core/plugins/manifest.domain.plugin.ts.md)

## Linked from

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

## Source

```typescript
import { DOMAIN_TAXONOMY } from "#configuration/constants/taxonomy.domain.constants";

export const isDomainMeta = function isDomainMeta(meta: unknown): meta is string {
    return typeof meta === "string" && Object.hasOwn(DOMAIN_TAXONOMY, meta);
};

export const isDomainSub = function isDomainSub(meta: unknown, sub: unknown): boolean {
    if (!isDomainMeta(meta) || typeof sub !== "string") {
        return false;
    }
    return (DOMAIN_TAXONOMY[meta] ?? []).includes(sub);
};
```
