# core/loaders/grammar.loader.ts

> 9 lines of code and 1 definition.

Tree: Code Parse
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/code-parse#file-code-parse-core-loaders-grammar-loader-ts
Source text: https://banes-lab.com/source/code-parse/core/loaders/grammar.loader.ts.txt

Listed in [core/loaders](https://banes-lab.com/api/source/code-parse/core/loaders.md), before [core/loaders/manifest.loader.ts](https://banes-lab.com/source/code-parse/core/loaders/manifest.loader.ts.md).

## Definitions

- `availableLanguages` (lexical_declaration, line 5, exported)

## Contained in

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

## Uses

- [core/resolvers/grammar.resolver.ts](https://banes-lab.com/source/code-parse/core/resolvers/grammar.resolver.ts.md)

## Linked from

- [core/resolvers](https://banes-lab.com/anatomy/code-parse/folder-code-parse-core-resolvers.md)

## Source

```typescript
import { GRAMMAR_SUFFIX } from "#configuration/constants/grammar.constants";
import { readdirSync } from "node:fs";
import { resolveGrammarDir } from "#core/resolvers/grammar.resolver";

export const availableLanguages = function availableLanguages(): string[] {
    return readdirSync(resolveGrammarDir())
        .filter((name) => name.endsWith(GRAMMAR_SUFFIX))
        .map((name) => name.slice(0, name.length - GRAMMAR_SUFFIX.length))
        .sort((a, b) => a.localeCompare(b));
};
```
