# configuration/strings/schema.strings.ts

> 36 lines of code and 14 definitions.

Tree: GovLab Patterns
Language: typescript
Layer: product
Canonical: https://banes-lab.com/anatomy/patterns#file-patterns-configuration-strings-schema-strings-ts
Source text: https://banes-lab.com/source/patterns/configuration/strings/schema.strings.ts.txt

Listed in [configuration/strings](https://banes-lab.com/api/source/patterns/configuration/strings.md), after [configuration/strings/representation.strings.ts](https://banes-lab.com/source/patterns/configuration/strings/representation.strings.ts.md) and before [configuration/strings/walk.strings.ts](https://banes-lab.com/source/patterns/configuration/strings/walk.strings.ts.md).

## Definitions

- `notAnObject` (lexical_declaration, line 21, exported)
- `invalidSchemaField` (lexical_declaration, line 41, exported)
- `unsupportedValue` (lexical_declaration, line 5, exported)
- `mixedPrimitives` (lexical_declaration, line 9, exported)
- `heterogeneousKinds` (lexical_declaration, line 13, exported)
- `unresolvedKind` (lexical_declaration, line 17, exported)
- `requiredField` (lexical_declaration, line 25, exported)
- `kindMismatch` (lexical_declaration, line 29, exported)
- `primitiveMismatch` (lexical_declaration, line 33, exported)
- `unknownRecordFields` (lexical_declaration, line 37, exported)
- `unknownMappingFields` (lexical_declaration, line 45, exported)
- `NO_RECORDS` (lexical_declaration, line 1, exported)
- `SCHEMA_NOT_ARRAY` (lexical_declaration, line 3, exported)
- `NULL_PRIMITIVE` (lexical_declaration, line 49, exported)

## Contained in

- [configuration/strings](https://banes-lab.com/anatomy/patterns/folder-patterns-configuration-strings.md)

## Used by

- [core/aggregators/field.aggregator.ts](https://banes-lab.com/source/patterns/core/aggregators/field.aggregator.ts.md)
- [core/analyzers/schema.analyzer.ts](https://banes-lab.com/source/patterns/core/analyzers/schema.analyzer.ts.md)
- [core/classifiers/schema.classifier.ts](https://banes-lab.com/source/patterns/core/classifiers/schema.classifier.ts.md)
- [core/parsers/schema.parser.ts](https://banes-lab.com/source/patterns/core/parsers/schema.parser.ts.md)
- [core/validators/schema.validator.ts](https://banes-lab.com/source/patterns/core/validators/schema.validator.ts.md)

## Linked from

- [core/aggregators](https://banes-lab.com/anatomy/patterns/folder-patterns-core-aggregators.md)
- [core/analyzers](https://banes-lab.com/anatomy/patterns/folder-patterns-core-analyzers.md)
- [core/classifiers](https://banes-lab.com/anatomy/patterns/folder-patterns-core-classifiers.md)
- [core/parsers](https://banes-lab.com/anatomy/patterns/folder-patterns-core-parsers.md)
- [core/validators](https://banes-lab.com/anatomy/patterns/folder-patterns-core-validators.md)

## Source

```typescript
export const NO_RECORDS = "data source has no records array";

export const SCHEMA_NOT_ARRAY = "schema must be an array of field descriptors";

export const unsupportedValue = function unsupportedValue(type: string): string {
    return `unsupported value type: ${type}`;
};

export const mixedPrimitives = function mixedPrimitives(name: string, primitives: string): string {
    return `field "${name}" mixes primitives: ${primitives}`;
};

export const heterogeneousKinds = function heterogeneousKinds(name: string, kinds: string): string {
    return `field "${name}" has heterogeneous kinds: ${kinds}`;
};

export const unresolvedKind = function unresolvedKind(name: string): string {
    return `field "${name}" has no resolved kind`;
};

export const notAnObject = function notAnObject(record: string): string {
    return `record is not an object: ${record}`;
};

export const requiredField = function requiredField(name: string): string {
    return `field "${name}" is required`;
};

export const kindMismatch = function kindMismatch(name: string, expected: string, actual: string): string {
    return `field "${name}" expected ${expected}, got ${actual}`;
};

export const primitiveMismatch = function primitiveMismatch(name: string, expected: string): string {
    return `field "${name}" expected ${expected}`;
};

export const unknownRecordFields = function unknownRecordFields(named: string): string {
    return `record has fields not in the schema: ${named}`;
};

export const invalidSchemaField = function invalidSchemaField(raw: string): string {
    return `invalid schema field: ${raw}`;
};

export const unknownMappingFields = function unknownMappingFields(named: string): string {
    return `mapping references fields not in the data: ${named}`;
};

export const NULL_PRIMITIVE = "null";
```
