# core/formatters/canon.formatter.ts

> 5 lines of code and 2 definitions.

Tree: GovLab Quality
Language: typescript
Layer: processing
Canonical: https://banes-lab.com/anatomy/quality#file-quality-core-formatters-canon-formatter-ts
Source text: https://banes-lab.com/source/quality/core/formatters/canon.formatter.ts.txt

Listed in [core/formatters](https://banes-lab.com/api/source/quality/core/formatters.md), before [core/formatters/canon.reference.formatter.ts](https://banes-lab.com/source/quality/core/formatters/canon.reference.formatter.ts.md).

## Definitions

- `withCanon` (lexical_declaration, line 3, exported)
- `canonRef` (lexical_declaration, line 4, exported)

## Contained in

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

## Used by

- [core/factories/eslint.factory.ts](https://banes-lab.com/source/quality/core/factories/eslint.factory.ts.md)
- [core/formatters/stylelint.formatter.ts](https://banes-lab.com/source/quality/core/formatters/stylelint.formatter.ts.md)

## Linked from

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

## Source

```typescript
import { canonRefsFor } from "#configuration/quality/generated/canon.generated";

export const withCanon = function withCanon(text: string, ruleId: string, canonical: readonly string[]): string {
    const canonRef = canonical.length > 0 ? ` [canon: ${canonRefsFor(canonical).join(" ")}]` : "";
    return `${text} [${ruleId}]${canonRef}`;
};
```
