or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

configuration-options.mdcore-configuration.mdflat-config-utilities.mdindex.mdutility-functions.md

utility-functions.mddocs/

0

# Utility Functions

1

2

Core utility function for configuration resolution and normalization used in the ESLint configuration system.

3

4

## Capabilities

5

6

### Configuration Resolution

7

8

Function for resolving and normalizing configuration options with intelligent defaults.

9

10

```typescript { .api }

11

/**

12

* Resolve and normalize configuration options with intelligent defaults.

13

* Applies default values for directories and features based on project structure.

14

*

15

* @param config - Configuration options to resolve

16

* @returns Resolved configuration with all defaults applied

17

*/

18

function resolveOptions(config: NuxtESLintConfigOptions): NuxtESLintConfigOptionsResolved;

19

20

interface NuxtESLintConfigOptionsResolved {

21

features: Required<NotNill<NuxtESLintFeaturesOptions>>;

22

dirs: Required<NotNill<DirectoriesConfig>>;

23

}

24

```

25

26

**Usage Examples:**

27

28

```typescript

29

import { resolveOptions } from "@nuxt/eslint-config";

30

31

// Basic resolution with defaults

32

const resolved = resolveOptions({});

33

console.log(resolved.features.typescript); // true if TypeScript is installed

34

console.log(resolved.dirs.root); // ['.', './app']

35

36

// Partial configuration resolution

37

const resolved2 = resolveOptions({

38

features: {

39

stylistic: true

40

},

41

dirs: {

42

src: ["./src"]

43

}

44

});

45

// All other features get defaults, directories are computed from src

46

47

// The function automatically:

48

// - Detects TypeScript availability using package detection

49

// - Sets up directory patterns based on src/root configuration

50

// - Applies Nuxt 3/4 conventions for project structure

51

// - Merges user options with intelligent defaults

52

```

53

54

### Default Resolution Logic

55

56

Understanding how the utility function applies defaults and resolves configurations.

57

58

The `resolveOptions` function follows this resolution strategy:

59

60

1. **Directory Resolution**: Establishes directory structure with Nuxt conventions

61

- `root`: Defaults to `['.', './app']` (supports both Nuxt 3 and 4)

62

- `src`: Defaults to same as `root`

63

- `pages`, `layouts`, `components`, etc.: Computed from `src` directories

64

65

2. **Feature Detection**: Auto-detects capabilities and applies defaults

66

- `typescript`: Automatically enabled if TypeScript package is detected

67

- `standalone`: Enabled by default for complete configuration

68

- `stylistic`, `tooling`, `formatters`: Disabled by default

69

70

3. **Configuration Merging**: User-provided options override defaults while maintaining type safety

71

72

**Internal Resolution Process:**

73

74

```typescript

75

// Example of the resolution logic:

76

const resolvedConfig = resolveOptions({

77

features: { stylistic: true },

78

dirs: { root: ["./app"] }

79

});

80

81

// Results in:

82

// {

83

// features: {

84

// standalone: true,

85

// stylistic: true, // User provided

86

// typescript: true, // Auto-detected

87

// tooling: false, // Default

88

// formatters: false, // Default

89

// nuxt: {}, // Default

90

// import: {} // Default

91

// },

92

// dirs: {

93

// root: ["./app"], // User provided

94

// src: ["./app"], // Computed from root

95

// pages: ["./app/pages"], // Computed from src

96

// layouts: ["./app/layouts"], // Computed from src

97

// components: ["./app/components"], // Computed from src

98

// // ... other directories computed similarly

99

// }

100

// }

101

```