# core/plugins/context.plugin.ts

> 13 lines of code and 5 definitions.

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

Listed in [core/plugins](https://banes-lab.com/api/source/quality/core/plugins.md), before [core/plugins/eslint.plugin.ts](https://banes-lab.com/source/quality/core/plugins/eslint.plugin.ts.md).

## Definitions

- `RULE_FILES` (lexical_declaration, line 7)
- `RULE_ENTRIES` (lexical_declaration, line 8)
- `rules` (lexical_declaration, line 10, exported)
- `MODULE_RULES` (lexical_declaration, line 12)
- `configs` (lexical_declaration, line 16, exported)

## Contained in

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

## Source

```typescript
import type { Linter, Rule } from "eslint";
import { ESLINT_RULE_SUFFIX } from "#configuration/constants/eslint.constants";
import { absolutePath } from "@ssot/paths";
import { eslintRuleEntries } from "#core/converters/rule.converter";
import { loadRuleFolder } from "#core/loaders/rule.loader";

const RULE_FILES = await loadRuleFolder(absolutePath("govlab.quality.contextRules"), ESLINT_RULE_SUFFIX);
const RULE_ENTRIES = eslintRuleEntries(RULE_FILES);

export const rules: Record<string, Rule.RuleModule> = Object.fromEntries(RULE_ENTRIES);

const MODULE_RULES: Linter.RulesRecord = Object.fromEntries(
    Object.keys(rules).map((id): [string, Linter.RuleEntry] => [`govlab-context/${id}`, "error"]),
);

export const configs = { module: { rules: MODULE_RULES } };

export default { configs, rules };
```
