# core/converters/stylelint.converter.ts

> 22 lines of code and 8 definitions.

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

Listed in [core/converters](https://banes-lab.com/api/source/quality/core/converters.md), after [core/converters/rule.converter.ts](https://banes-lab.com/source/quality/core/converters/rule.converter.ts.md) and before [core/converters/surface.converter.ts](https://banes-lab.com/source/quality/core/converters/surface.converter.ts.md).

## Definitions

- `isEnabled` (lexical_declaration, line 6)
- `typeSystemRuleOptions` (lexical_declaration, line 11, exported)
- `Z_INDEX_RULE_ID` (lexical_declaration, line 3)
- `CUSTOM_PROPERTY_ORDER_RULE_ID` (lexical_declaration, line 4)
- `value` (lexical_declaration, line 7)
- `out` (lexical_declaration, line 15, exported)
- `tokensFile` (lexical_declaration, line 16, exported)
- `segments` (lexical_declaration, line 20, exported)

## Contained in

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

## Used by

- [core/adapters/stylelint.adapter.ts](https://banes-lab.com/source/quality/core/adapters/stylelint.adapter.ts.md)

## Linked from

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

## Source

```typescript
import type { TypeSystemLayout } from "#types/config.types";

const Z_INDEX_RULE_ID = "govlab/no-magic-z-index";
const CUSTOM_PROPERTY_ORDER_RULE_ID = "govlab/custom-property-order";

const isEnabled = function isEnabled(rules: Record<string, unknown>, rule: string): boolean {
    const value = rules[rule];
    return value !== undefined && value !== null && value !== false;
};

export const typeSystemRuleOptions = function typeSystemRuleOptions(
    typeSystem: TypeSystemLayout | undefined,
    rules: Record<string, unknown>,
): Record<string, unknown> {
    const out: Record<string, unknown> = {};
    const tokensFile = typeSystem?.tokensFile;
    if (typeof typeSystem?.zTokenPrefix === "string" && isEnabled(rules, Z_INDEX_RULE_ID)) {
        out[Z_INDEX_RULE_ID] = [true, { tokensFile, zTokenPrefix: typeSystem.zTokenPrefix }];
    }
    const segments = typeSystem?.layerSegments;
    if ((typeof tokensFile === "string" || segments !== undefined) && isEnabled(rules, CUSTOM_PROPERTY_ORDER_RULE_ID)) {
        out[CUSTOM_PROPERTY_ORDER_RULE_ID] = [true, { segments, tokensFile }];
    }
    return out;
};
```
