# core/predicates/constants.predicate.ts

> 9 lines of code and 3 definitions.

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

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

## Definitions

- `codeOf` (lexical_declaration, line 4)
- `isUpperSnake` (lexical_declaration, line 8, exported)
- `hasUpper` (lexical_declaration, line 9, exported)

## Contained in

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

## Uses

- [core/predicates/code-point.predicate.ts](https://banes-lab.com/source/quality/core/predicates/code-point.predicate.ts.md)

## Linked from

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

## Source

```typescript
import { isAsciiUpper, isSnakeTail } from "#core/predicates/code-point.predicate";
import { everyChar } from "@govlab/constants";

const codeOf = function codeOf(char: string): number | undefined {
    return char.codePointAt(0);
};

export const isUpperSnake = function isUpperSnake(name: string): boolean {
    const hasUpper = !everyChar(name, (char) => !isAsciiUpper(codeOf(char)));
    return hasUpper && everyChar(name, (char) => isAsciiUpper(codeOf(char)) || isSnakeTail(codeOf(char)));
};
```
