# configuration/strings/detector.strings.ts

> 6 lines of code and 2 definitions.

Tree: Secrets
Language: typescript
Layer: product
Canonical: https://banes-lab.com/anatomy/secrets#file-secrets-configuration-strings-detector-strings-ts
Source text: https://banes-lab.com/source/secrets/configuration/strings/detector.strings.ts.txt

Listed in [configuration/strings](https://banes-lab.com/api/source/secrets/configuration/strings.md), before [configuration/strings/environment.strings.ts](https://banes-lab.com/source/secrets/configuration/strings/environment.strings.ts.md).

## Definitions

- `duplicateDetector` (lexical_declaration, line 1, exported)
- `missingDetectors` (lexical_declaration, line 5, exported)

## Contained in

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

## Used by

- [core/loaders/detector.loader.ts](https://banes-lab.com/source/secrets/core/loaders/detector.loader.ts.md)
- [core/registries/detector.registry.ts](https://banes-lab.com/source/secrets/core/registries/detector.registry.ts.md)

## Linked from

- [core/loaders](https://banes-lab.com/anatomy/secrets/folder-secrets-core-loaders.md)
- [core/registries](https://banes-lab.com/anatomy/secrets/folder-secrets-core-registries.md)

## Source

```typescript
export const duplicateDetector = function duplicateDetector(kind: string): string {
    return `detectors: the kind ${kind} is registered twice. Each kind is one predicate file, so remove the second registration.`;
};

export const missingDetectors = function missingDetectors(kinds: readonly string[]): string {
    return `detectors: no predicate file registers ${kinds.join(", ")}. Add one file per declared kind under the detectors folder.`;
};
```
