# core/predicates/record.predicate.ts

> 9 lines of code and 3 definitions.

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

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

## Definitions

- `isObject` (lexical_declaration, line 1, exported)
- `isPlainRecord` (lexical_declaration, line 5, exported)
- `isStringList` (lexical_declaration, line 9, exported)

## Contained in

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

## Used by

- [core/converters/check.converter.ts](https://banes-lab.com/source/context/core/converters/check.converter.ts.md)
- [core/guards/context.guard.ts](https://banes-lab.com/source/context/core/guards/context.guard.ts.md)
- [core/loaders/algorithm.loader.ts](https://banes-lab.com/source/context/core/loaders/algorithm.loader.ts.md)
- [core/loaders/grammar.loader.ts](https://banes-lab.com/source/context/core/loaders/grammar.loader.ts.md)
- [core/loaders/layer.loader.ts](https://banes-lab.com/source/context/core/loaders/layer.loader.ts.md)
- [core/loaders/reason.loader.ts](https://banes-lab.com/source/context/core/loaders/reason.loader.ts.md)
- [core/normalizers/field.normalizer.ts](https://banes-lab.com/source/context/core/normalizers/field.normalizer.ts.md)
- [core/normalizers/layer.normalizer.ts](https://banes-lab.com/source/context/core/normalizers/layer.normalizer.ts.md)
- [core/normalizers/reason.normalizer.ts](https://banes-lab.com/source/context/core/normalizers/reason.normalizer.ts.md)
- [core/observers/record.observer.ts](https://banes-lab.com/source/context/core/observers/record.observer.ts.md)
- [core/selectors/field.selector.ts](https://banes-lab.com/source/context/core/selectors/field.selector.ts.md)
- [core/validators/field.validator.ts](https://banes-lab.com/source/context/core/validators/field.validator.ts.md)

## Linked from

- [core/converters](https://banes-lab.com/anatomy/context/folder-context-core-converters.md)
- [core/guards](https://banes-lab.com/anatomy/context/folder-context-core-guards.md)
- [core/loaders](https://banes-lab.com/anatomy/context/folder-context-core-loaders.md)
- [core/normalizers](https://banes-lab.com/anatomy/context/folder-context-core-normalizers.md)
- [core/observers](https://banes-lab.com/anatomy/context/folder-context-core-observers.md)
- [core/predicates](https://banes-lab.com/anatomy/context/folder-context-core-predicates.md)
- [core/selectors](https://banes-lab.com/anatomy/context/folder-context-core-selectors.md)
- [core/validators](https://banes-lab.com/anatomy/context/folder-context-core-validators.md)

## Source

```typescript
export const isObject = function isObject(value: unknown): value is Record<string, unknown> {
    return typeof value === "object" && value !== null;
};

export const isPlainRecord = function isPlainRecord(value: unknown): value is Record<string, unknown> {
    return isObject(value) && !Array.isArray(value);
};

export const isStringList = function isStringList(value: unknown): value is string[] {
    return Array.isArray(value) && value.every((item) => typeof item === "string");
};
```
