@dimensional-innovations/tool-config 4.0.0 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +7 -120
  3. package/dist/cli/index.js +1812 -0
  4. package/dist/cli/index.js.map +1 -0
  5. package/dist/index.d.ts +401 -0
  6. package/dist/index.js +2644 -0
  7. package/dist/index.js.map +1 -0
  8. package/package.json +22 -15
  9. package/bin/lib/ci-setup.js +0 -142
  10. package/bin/lib/formatting.js +0 -103
  11. package/bin/lib/handlers/eslint.js +0 -61
  12. package/bin/lib/handlers/prettier.js +0 -83
  13. package/bin/lib/handlers/semantic-release.js +0 -60
  14. package/bin/lib/handlers/stylelint.js +0 -85
  15. package/bin/lib/handlers/typescript.js +0 -156
  16. package/bin/lib/package-manager.js +0 -201
  17. package/bin/lib/ui.js +0 -239
  18. package/bin/lib/uninstall.js +0 -199
  19. package/bin/lib/validators.js +0 -28
  20. package/bin/setup-tool-config.js +0 -442
  21. package/src/detectors.js +0 -286
  22. package/src/index.js +0 -69
  23. package/src/tools/eslint/index.js +0 -282
  24. package/src/tools/eslint/presets/base.js +0 -75
  25. package/src/tools/eslint/presets/environments/browser.js +0 -16
  26. package/src/tools/eslint/presets/environments/node.js +0 -21
  27. package/src/tools/eslint/presets/environments/universal.js +0 -18
  28. package/src/tools/eslint/presets/frameworks/angular.js +0 -80
  29. package/src/tools/eslint/presets/frameworks/astro.js +0 -43
  30. package/src/tools/eslint/presets/frameworks/node.js +0 -63
  31. package/src/tools/eslint/presets/frameworks/react.js +0 -81
  32. package/src/tools/eslint/presets/frameworks/solid.js +0 -50
  33. package/src/tools/eslint/presets/frameworks/svelte.js +0 -65
  34. package/src/tools/eslint/presets/frameworks/vanilla.js +0 -22
  35. package/src/tools/eslint/presets/frameworks/vue.js +0 -159
  36. package/src/tools/eslint/presets/imports.js +0 -47
  37. package/src/tools/eslint/presets/typescript.js +0 -142
  38. package/src/tools/prettier/README.md +0 -398
  39. package/src/tools/prettier/index.js +0 -132
  40. package/src/tools/prettier/presets/base.js +0 -36
  41. package/src/tools/prettier/presets/frameworks/astro.js +0 -15
  42. package/src/tools/prettier/presets/frameworks/react.js +0 -15
  43. package/src/tools/prettier/presets/frameworks/svelte.js +0 -22
  44. package/src/tools/prettier/presets/frameworks/vanilla.js +0 -13
  45. package/src/tools/prettier/presets/frameworks/vue.js +0 -21
  46. package/src/tools/prettier/presets/prettierignore.js +0 -57
  47. package/src/tools/semantic-release/CI_SETUP.md +0 -66
  48. package/src/tools/semantic-release/README.md +0 -533
  49. package/src/tools/semantic-release/index.js +0 -130
  50. package/src/tools/semantic-release/presets/default.js +0 -37
  51. package/src/tools/semantic-release/presets/library.js +0 -58
  52. package/src/tools/semantic-release/presets/monorepo.js +0 -48
  53. package/src/tools/semantic-release/templates/.gitlab-ci.yml +0 -89
  54. package/src/tools/semantic-release/templates/bitbucket-pipelines.yml +0 -100
  55. package/src/tools/semantic-release/templates/github-workflow.yml +0 -107
  56. package/src/tools/stylelint/README.md +0 -425
  57. package/src/tools/stylelint/index.js +0 -195
  58. package/src/tools/stylelint/presets/base.js +0 -50
  59. package/src/tools/stylelint/presets/css-modules.js +0 -43
  60. package/src/tools/stylelint/presets/frameworks/react.js +0 -18
  61. package/src/tools/stylelint/presets/frameworks/svelte.js +0 -28
  62. package/src/tools/stylelint/presets/frameworks/vanilla.js +0 -14
  63. package/src/tools/stylelint/presets/frameworks/vue.js +0 -38
  64. package/src/tools/stylelint/presets/scss.js +0 -83
  65. package/src/tools/stylelint/presets/tailwind.js +0 -49
  66. package/src/tools/typescript/README.md +0 -665
  67. package/src/tools/typescript/checker-detection.js +0 -113
  68. package/src/tools/typescript/index.js +0 -202
  69. package/src/tools/typescript/presets/base.js +0 -58
  70. package/src/tools/typescript/presets/environments/browser.js +0 -10
  71. package/src/tools/typescript/presets/environments/node.js +0 -11
  72. package/src/tools/typescript/presets/environments/universal.js +0 -11
  73. package/src/tools/typescript/presets/frameworks/angular.js +0 -11
  74. package/src/tools/typescript/presets/frameworks/astro.js +0 -11
  75. package/src/tools/typescript/presets/frameworks/electron.js +0 -100
  76. package/src/tools/typescript/presets/frameworks/node.js +0 -12
  77. package/src/tools/typescript/presets/frameworks/react.js +0 -10
  78. package/src/tools/typescript/presets/frameworks/solid.js +0 -11
  79. package/src/tools/typescript/presets/frameworks/svelte.js +0 -10
  80. package/src/tools/typescript/presets/frameworks/vanilla.js +0 -9
  81. package/src/tools/typescript/presets/frameworks/vue.js +0 -17
  82. package/src/utils/ignore-patterns.js +0 -157
  83. package/src/utils/package-reader.js +0 -42
@@ -1,113 +0,0 @@
1
- import { existsSync } from 'fs'
2
- import { join } from 'path'
3
-
4
- /**
5
- * Detect which TypeScript checker to use
6
- * Priority: tsgo (fastest) -> vue-tsc (Vue SFCs) -> tsc (fallback)
7
- *
8
- * @param {string} framework - Detected framework
9
- * @param {string} preference - User preference: 'auto' | 'modern' | 'legacy'
10
- * @param {string} cwd - Current working directory
11
- * @returns {string} Checker to use: 'tsgo' | 'vue-tsc' | 'tsc'
12
- */
13
- export function detectTypeChecker(framework, preference = 'auto', cwd = process.cwd()) {
14
- // User explicitly requested legacy
15
- if (preference === 'legacy') {
16
- return framework === 'vue' ? 'vue-tsc' : 'tsc'
17
- }
18
-
19
- // User explicitly requested modern
20
- if (preference === 'modern') {
21
- return 'tsgo'
22
- }
23
-
24
- // Auto-detection (default)
25
- if (preference === 'auto') {
26
- // Vue needs vue-tsc for SFC support (tsgo doesn't support .vue yet)
27
- if (framework === 'vue') {
28
- const hasVueTsc = hasPackageInstalled('vue-tsc', cwd)
29
- if (hasVueTsc) return 'vue-tsc'
30
-
31
- console.warn(
32
- '⚠️ Vue project detected but vue-tsc not found.\n' +
33
- ' Install with: npm install -D vue-tsc\n' +
34
- " Falling back to tsgo/tsc (won't check .vue files)"
35
- )
36
- }
37
-
38
- // Check if tsgo is available
39
- const hasTsgo = hasPackageInstalled('@typescript/native-preview', cwd)
40
- if (hasTsgo) {
41
- return 'tsgo'
42
- }
43
-
44
- // Fallback to standard tsc
45
- return 'tsc'
46
- }
47
-
48
- throw new Error(`Unknown checker preference: ${preference}`)
49
- }
50
-
51
- /**
52
- * Check if package is installed in node_modules
53
- *
54
- * @param {string} packageName - Package to check for
55
- * @param {string} cwd - Current working directory
56
- * @returns {boolean} True if package is installed
57
- */
58
- function hasPackageInstalled(packageName, cwd) {
59
- try {
60
- const packagePath = join(cwd, 'node_modules', packageName, 'package.json')
61
- return existsSync(packagePath)
62
- } catch {
63
- return false
64
- }
65
- }
66
-
67
- /**
68
- * Get the command to run for type checking
69
- *
70
- * @param {string} checker - Checker to use: 'tsgo' | 'tsc' | 'vue-tsc'
71
- * @param {Object} options - Command options
72
- * @param {boolean} [options.watch=false] - Enable watch mode
73
- * @param {boolean} [options.noEmit=true] - Skip emit (type check only)
74
- * @param {string} [options.project='.'] - Project path
75
- * @returns {string} Command string
76
- */
77
- export function getTypeCheckCommand(checker, options = {}) {
78
- const { watch = false, noEmit = true, project = '.' } = options
79
-
80
- const baseCmd = checker // 'tsgo', 'tsc', or 'vue-tsc'
81
- const flags = []
82
-
83
- if (noEmit) flags.push('--noEmit')
84
- if (watch) flags.push('--watch')
85
- if (project !== '.') flags.push(`-p ${project}`)
86
-
87
- return `${baseCmd} ${flags.join(' ')}`.trim()
88
- }
89
-
90
- /**
91
- * Get fallback chain for script generation
92
- * Example: "tsgo --noEmit || tsc --noEmit"
93
- *
94
- * @param {string} checker - Primary checker to use
95
- * @param {string} framework - Framework name
96
- * @returns {string} Command with fallback
97
- */
98
- export function getTypeCheckCommandWithFallback(checker, framework) {
99
- const primary = getTypeCheckCommand(checker, { noEmit: true })
100
-
101
- // No fallback needed for vue-tsc or tsc (they're already fallbacks)
102
- if (checker === 'vue-tsc' || checker === 'tsc') {
103
- return primary
104
- }
105
-
106
- // tsgo with fallback
107
- const fallback =
108
- framework === 'vue'
109
- ? getTypeCheckCommand('vue-tsc', { noEmit: true })
110
- : getTypeCheckCommand('tsc', { noEmit: true })
111
-
112
- return `${primary} || ${fallback}`
113
- }
@@ -1,202 +0,0 @@
1
- import { autoDetect } from '../../detectors.js'
2
-
3
- import { detectTypeChecker } from './checker-detection.js'
4
- import basePreset from './presets/base.js'
5
- import browserEnv from './presets/environments/browser.js'
6
- import nodeEnv from './presets/environments/node.js'
7
- import universalEnv from './presets/environments/universal.js'
8
- import angularFramework from './presets/frameworks/angular.js'
9
- import astroFramework from './presets/frameworks/astro.js'
10
- import electronFramework from './presets/frameworks/electron.js'
11
- import nodeFramework from './presets/frameworks/node.js'
12
- import reactFramework from './presets/frameworks/react.js'
13
- import solidFramework from './presets/frameworks/solid.js'
14
- import svelteFramework from './presets/frameworks/svelte.js'
15
- import vanillaFramework from './presets/frameworks/vanilla.js'
16
- import vueFramework from './presets/frameworks/vue.js'
17
-
18
- /**
19
- * Create TypeScript configuration with auto-detection
20
- *
21
- * @param {Object} options - Configuration options
22
- * @param {string} [options.framework='auto'] - Framework to configure for
23
- * @param {string} [options.environment='auto'] - Target environment
24
- * @param {boolean} [options.typescript=true] - Enable TypeScript (always true for this tool)
25
- * @param {string} [options.checker='auto'] - Which checker: 'auto', 'modern' (tsgo), 'legacy' (tsc)
26
- * @param {boolean} [options.strict=true] - Enable strict mode
27
- * @param {Object} [options.compilerOptions={}] - User compiler option overrides
28
- * @param {string} [options.cwd=process.cwd()] - Working directory
29
- * @returns {Object} TypeScript configuration object
30
- */
31
- export function createTypescriptConfig(options = {}) {
32
- const {
33
- framework: frameworkOption = 'auto',
34
- environment: environmentOption = 'auto',
35
- checker: checkerPreference = 'auto',
36
- strict = true,
37
- electron: electronOption,
38
- renderer: rendererOption,
39
- compilerOptions: userCompilerOptions = {},
40
- cwd = process.cwd()
41
- } = options
42
-
43
- // Auto-detect framework, environment, and Electron
44
- const detected =
45
- frameworkOption === 'auto' || environmentOption === 'auto' || electronOption === undefined
46
- ? autoDetect(cwd)
47
- : { framework: frameworkOption, environment: environmentOption, electron: electronOption }
48
-
49
- const framework = frameworkOption === 'auto' ? detected.framework : frameworkOption
50
- const environment = environmentOption === 'auto' ? detected.environment : environmentOption
51
- const isElectron = electronOption !== undefined ? electronOption : detected.electron
52
-
53
- // Handle Electron multi-config
54
- if (isElectron) {
55
- const renderer = rendererOption || framework
56
- const checker = detectTypeChecker(framework, checkerPreference, cwd)
57
-
58
- console.log(
59
- `⚡ Electron TypeScript Config: ${renderer} renderer | Checker: ${checker}${checker === 'tsgo' ? ' (10x faster!)' : ''}`
60
- )
61
-
62
- const configs = electronFramework(renderer)
63
-
64
- return {
65
- ...configs,
66
- _meta: {
67
- framework: 'electron',
68
- renderer,
69
- checker,
70
- multiConfig: true,
71
- experimental: checker === 'tsgo',
72
- generatedBy: '@dimensional-innovations/tool-config'
73
- }
74
- }
75
- }
76
-
77
- // Detect which type checker to use
78
- const checker = detectTypeChecker(framework, checkerPreference, cwd)
79
-
80
- // Log detection
81
- console.log(
82
- `🔍 TypeScript Config: ${framework} | ${environment} | Checker: ${checker}${checker === 'tsgo' ? ' (10x faster!)' : ''}`
83
- )
84
-
85
- // Load presets
86
- const config = loadPresets(framework, environment, strict)
87
-
88
- // Merge user overrides
89
- if (userCompilerOptions && Object.keys(userCompilerOptions).length > 0) {
90
- config.compilerOptions = {
91
- ...config.compilerOptions,
92
- ...userCompilerOptions
93
- }
94
- }
95
-
96
- // Add metadata
97
- config._meta = {
98
- framework,
99
- environment,
100
- checker,
101
- experimental: checker === 'tsgo',
102
- generatedBy: '@dimensional-innovations/tool-config'
103
- }
104
-
105
- return config
106
- }
107
-
108
- /**
109
- * Load and merge configuration presets
110
- *
111
- * @param {string} framework - Framework name
112
- * @param {string} environment - Environment name
113
- * @param {boolean} strict - Enable strict mode
114
- * @returns {Object} Merged configuration
115
- */
116
- function loadPresets(framework, environment, strict) {
117
- const config = JSON.parse(JSON.stringify(basePreset)) // Deep clone
118
-
119
- // Load environment preset (synchronous imports)
120
- const envPreset = loadEnvironmentPreset(environment)
121
- mergeConfig(config, envPreset)
122
-
123
- // Load framework preset (synchronous imports)
124
- const frameworkPreset = loadFrameworkPreset(framework)
125
- mergeConfig(config, frameworkPreset)
126
-
127
- // Apply strict mode overrides if disabled
128
- if (!strict) {
129
- config.compilerOptions.strict = false
130
- config.compilerOptions.noImplicitAny = false
131
- // Keep other strict checks, just disable the master switch
132
- }
133
-
134
- return config
135
- }
136
-
137
- /**
138
- * Load environment-specific preset
139
- *
140
- * @param {string} environment - Environment name
141
- * @returns {Object} Environment preset
142
- */
143
- function loadEnvironmentPreset(environment) {
144
- switch (environment) {
145
- case 'browser':
146
- return browserEnv
147
- case 'node':
148
- return nodeEnv
149
- case 'universal':
150
- return universalEnv
151
- default:
152
- return {}
153
- }
154
- }
155
-
156
- /**
157
- * Load framework-specific preset
158
- *
159
- * @param {string} framework - Framework name
160
- * @returns {Object} Framework preset
161
- */
162
- function loadFrameworkPreset(framework) {
163
- switch (framework) {
164
- case 'react':
165
- return reactFramework
166
- case 'vue':
167
- return vueFramework
168
- case 'svelte':
169
- return svelteFramework
170
- case 'solid':
171
- return solidFramework
172
- case 'astro':
173
- return astroFramework
174
- case 'angular':
175
- return angularFramework
176
- case 'node':
177
- return nodeFramework
178
- case 'vanilla':
179
- default:
180
- return vanillaFramework
181
- }
182
- }
183
-
184
- /**
185
- * Deep merge configuration objects
186
- *
187
- * @param {Object} target - Target configuration
188
- * @param {Object} source - Source configuration to merge
189
- */
190
- function mergeConfig(target, source) {
191
- for (const key in source) {
192
- if (key === 'compilerOptions' && target.compilerOptions) {
193
- Object.assign(target.compilerOptions, source.compilerOptions)
194
- } else if (key === 'include' && Array.isArray(source.include)) {
195
- target.include = [...new Set([...(target.include || []), ...source.include])]
196
- } else if (key === 'exclude' && Array.isArray(source.exclude)) {
197
- target.exclude = [...new Set([...(target.exclude || []), ...source.exclude])]
198
- } else {
199
- target[key] = source[key]
200
- }
201
- }
202
- }
@@ -1,58 +0,0 @@
1
- /**
2
- * Base TypeScript configuration
3
- * Strict, modern defaults that work across all frameworks
4
- *
5
- * Based on TypeScript 5.x best practices with ES2022 target
6
- */
7
- export default {
8
- compilerOptions: {
9
- // Language and Environment
10
- target: 'ES2022',
11
- lib: ['ES2022'],
12
-
13
- // Modules
14
- module: 'ESNext',
15
- moduleResolution: 'Bundler',
16
- resolveJsonModule: true,
17
-
18
- // Emit
19
- declaration: true,
20
- declarationMap: true,
21
- sourceMap: true,
22
- removeComments: false,
23
-
24
- // Interop Constraints
25
- esModuleInterop: true,
26
- allowSyntheticDefaultImports: true,
27
- forceConsistentCasingInFileNames: true,
28
- isolatedModules: true,
29
-
30
- // Type Checking (Strict Mode)
31
- strict: true,
32
- noImplicitAny: true,
33
- strictNullChecks: true,
34
- strictFunctionTypes: true,
35
- strictBindCallApply: true,
36
- strictPropertyInitialization: true,
37
- noImplicitThis: true,
38
- alwaysStrict: true,
39
-
40
- // Additional Checks
41
- noUnusedLocals: true,
42
- noUnusedParameters: true,
43
- noImplicitReturns: true,
44
- noFallthroughCasesInSwitch: true,
45
- noUncheckedIndexedAccess: true,
46
- noImplicitOverride: true,
47
- noPropertyAccessFromIndexSignature: false,
48
-
49
- // Completeness
50
- skipLibCheck: true, // Faster, skip checking .d.ts files
51
-
52
- // Advanced
53
- allowUnusedLabels: false,
54
- allowUnreachableCode: false
55
- },
56
- include: ['src/**/*'],
57
- exclude: ['node_modules', 'dist', 'build', 'out', 'coverage', '.nyc_output']
58
- }
@@ -1,10 +0,0 @@
1
- /**
2
- * Browser environment TypeScript configuration
3
- * For client-side applications running in web browsers
4
- */
5
- export default {
6
- compilerOptions: {
7
- lib: ['ES2022', 'DOM', 'DOM.Iterable'],
8
- target: 'ES2020' // Good browser support
9
- }
10
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * Node.js environment TypeScript configuration
3
- * For server-side applications and CLIs
4
- */
5
- export default {
6
- compilerOptions: {
7
- lib: ['ES2022'],
8
- target: 'ES2022',
9
- types: ['node']
10
- }
11
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * Universal (SSR/Isomorphic) environment TypeScript configuration
3
- * For applications that run in both browser and Node.js contexts
4
- */
5
- export default {
6
- compilerOptions: {
7
- lib: ['ES2022', 'DOM', 'DOM.Iterable'],
8
- target: 'ES2020',
9
- types: ['node'] // Include Node types for server-side code
10
- }
11
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * Angular TypeScript configuration
3
- * Strict mode enabled by default (Angular best practice)
4
- */
5
- export default {
6
- compilerOptions: {
7
- lib: ['ES2022', 'DOM', 'DOM.Iterable'],
8
- experimentalDecorators: true,
9
- emitDecoratorMetadata: true
10
- }
11
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * Astro TypeScript configuration
3
- * Multi-framework support with islands architecture
4
- */
5
- export default {
6
- compilerOptions: {
7
- jsx: 'react-jsx', // Astro uses React-style JSX
8
- lib: ['ES2022', 'DOM', 'DOM.Iterable'],
9
- types: ['astro/client']
10
- }
11
- }
@@ -1,100 +0,0 @@
1
- /**
2
- * Electron TypeScript preset - generates multi-config setup
3
- * Replaces @electron-toolkit/tsconfig with framework-aware configs
4
- *
5
- * Generates 4 separate tsconfig files:
6
- * - tsconfig.json: Root orchestrator with project references
7
- * - tsconfig.node.json: Main process + Preload scripts (Node.js environment)
8
- * - tsconfig.web.json: Renderer process (browser environment with framework)
9
- * - tsconfig.tests.json: Test environment (Vitest + Playwright)
10
- */
11
-
12
- /**
13
- * Create Electron multi-config preset
14
- * @param {string} renderer - Renderer framework ('vue', 'react', 'svelte', 'vanilla')
15
- * @returns {Object} Object containing all 4 tsconfig configurations
16
- */
17
- export default function createElectronPreset(renderer = 'vue') {
18
- // Determine renderer-specific file extensions
19
- const rendererExtensions = renderer === 'vue' ? ['src/renderer/**/*.vue'] : []
20
-
21
- return {
22
- // Root tsconfig.json - orchestrator with project references
23
- root: {
24
- files: [],
25
- references: [{ path: './tsconfig.node.json' }, { path: './tsconfig.web.json' }]
26
- },
27
-
28
- // tsconfig.node.json - Main process + Preload scripts
29
- node: {
30
- $schema: 'https://json.schemastore.org/tsconfig',
31
- include: ['electron.vite.config.*', 'package.json', 'src/main/*', 'src/preload/*'],
32
- compilerOptions: {
33
- composite: true,
34
- target: 'ES2024',
35
- lib: ['ES2024', 'ESNext'],
36
- module: 'NodeNext',
37
- moduleResolution: 'NodeNext',
38
- types: ['electron-vite/node'],
39
- baseUrl: '.',
40
- paths: {
41
- '@/*': ['src/*'],
42
- '@main/*': ['src/main/*'],
43
- '@preload/*': ['src/preload/*']
44
- },
45
- resolveJsonModule: true
46
- }
47
- },
48
-
49
- // tsconfig.web.json - Renderer process (browser)
50
- web: {
51
- $schema: 'https://json.schemastore.org/tsconfig',
52
- include: [
53
- 'src/renderer/env.d.ts',
54
- 'src/renderer/**/*',
55
- ...rendererExtensions,
56
- 'src/preload/*.d.ts',
57
- 'package.json'
58
- ],
59
- compilerOptions: {
60
- composite: true,
61
- target: 'ES2024',
62
- lib: ['ES2024', 'ESNext', 'DOM', 'DOM.Iterable'],
63
- baseUrl: '.',
64
- paths: {
65
- '@/*': ['src/*'],
66
- '@renderer/*': ['src/renderer/*'],
67
- '@main/*': ['src/main/*'],
68
- '@preload/*': ['src/preload/*']
69
- },
70
- strict: true,
71
- noUnusedParameters: true,
72
- noFallthroughCasesInSwitch: true,
73
- noUncheckedIndexedAccess: true
74
- }
75
- },
76
-
77
- // tsconfig.tests.json - Test environment
78
- tests: {
79
- $schema: 'https://json.schemastore.org/tsconfig',
80
- include: ['tests/**/*', 'src/renderer/**/*.vue', 'src/renderer/env.d.ts'],
81
- compilerOptions: {
82
- composite: true,
83
- baseUrl: '.',
84
- paths: {
85
- '@/*': ['src/*'],
86
- '@renderer/*': ['src/renderer/*'],
87
- '@main/*': ['src/main/*'],
88
- '@preload/*': ['src/preload/*'],
89
- '@tests/*': ['tests/*'],
90
- '@unit/*': ['tests/unit/*'],
91
- '@integration/*': ['tests/integration/*'],
92
- '@fixtures/*': ['tests/fixtures/*'],
93
- '@setup/*': ['tests/setup/*']
94
- },
95
- types: ['vitest/globals', '@playwright/test'],
96
- strict: false
97
- }
98
- }
99
- }
100
- }
@@ -1,12 +0,0 @@
1
- /**
2
- * Node.js backend TypeScript configuration
3
- * For server-side applications, APIs, and CLIs
4
- */
5
- export default {
6
- compilerOptions: {
7
- lib: ['ES2022'],
8
- module: 'NodeNext',
9
- moduleResolution: 'NodeNext',
10
- types: ['node']
11
- }
12
- }
@@ -1,10 +0,0 @@
1
- /**
2
- * React TypeScript configuration
3
- * Supports modern React 17+ with automatic JSX runtime
4
- */
5
- export default {
6
- compilerOptions: {
7
- jsx: 'react-jsx', // Modern React 17+ automatic runtime
8
- lib: ['ES2022', 'DOM', 'DOM.Iterable']
9
- }
10
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * Solid.js TypeScript configuration
3
- * Uses JSX similar to React
4
- */
5
- export default {
6
- compilerOptions: {
7
- jsx: 'preserve', // Solid uses its own JSX transform
8
- jsxImportSource: 'solid-js',
9
- lib: ['ES2022', 'DOM', 'DOM.Iterable']
10
- }
11
- }
@@ -1,10 +0,0 @@
1
- /**
2
- * Svelte TypeScript configuration
3
- * Note: Use svelte-check for .svelte file type checking
4
- */
5
- export default {
6
- compilerOptions: {
7
- lib: ['ES2022', 'DOM', 'DOM.Iterable'],
8
- types: ['svelte']
9
- }
10
- }
@@ -1,9 +0,0 @@
1
- /**
2
- * Vanilla TypeScript configuration
3
- * Plain TypeScript without any framework
4
- */
5
- export default {
6
- compilerOptions: {
7
- lib: ['ES2022', 'DOM', 'DOM.Iterable']
8
- }
9
- }
@@ -1,17 +0,0 @@
1
- /**
2
- * Vue.js TypeScript configuration
3
- * Requires vue-tsc for Single File Component (.vue) support
4
- */
5
- export default {
6
- compilerOptions: {
7
- jsx: 'preserve', // Vue compiler handles JSX transformation
8
- jsxImportSource: 'vue',
9
- lib: ['ES2022', 'DOM', 'DOM.Iterable'],
10
- types: ['vite/client'] // Common for Vue + Vite projects
11
- },
12
- // Vue-specific options (for vue-tsc)
13
- vueCompilerOptions: {
14
- extensions: ['.vue'],
15
- vitePressExtensions: ['.md']
16
- }
17
- }