eslint-config-sensible-prettier-typescript
Version:
Sensible default eslint rules and prettier rules for Typescript projects
84 lines • 3.98 kB
text/typescript
/**
* Builds a TypeScript-specific ESLint configuration object.
*
* This function creates a comprehensive TypeScript configuration that includes:
* - TypeScript parser and plugin
* - TypeScript-specific rules and recommendations
* - Import/export rules with TypeScript support
* - Code quality rules (unicorn, perfectionist, jsdoc)
* - Custom rule overrides for TypeScript projects
*
* @param {import('eslint').Linter.Config['files']} [files] - File patterns to apply this configuration to
* @param {import('eslint').Linter.Config['languageOptions']} [languageOptions] - Additional language options to merge
* @returns {import('eslint').Linter.Config} TypeScript ESLint configuration object
*/
export function buildTsConfig(files?: import("eslint").Linter.Config["files"], languageOptions?: import("eslint").Linter.Config["languageOptions"]): import("eslint").Linter.Config;
/**
* Builds a JavaScript-specific ESLint configuration object.
*
* This function creates a JavaScript configuration that includes:
* - Import/export rules
* - Code quality rules (unicorn, perfectionist)
* - Common JavaScript linting rules
* - Custom rule overrides
*
* @param {import('eslint').Linter.Config['files']} [files] - File patterns to apply this configuration to
* @param {import('eslint').Linter.Config['languageOptions']} [languageOptions] - Additional language options to merge
* @returns {import('eslint').Linter.Config} JavaScript ESLint configuration object
*/
export function buildJsConfig(files?: import("eslint").Linter.Config["files"], languageOptions?: import("eslint").Linter.Config["languageOptions"]): import("eslint").Linter.Config;
/**
* Builds a complete ESLint 9 flat configuration array.
*
* This function returns a comprehensive ESLint configuration that includes:
* - Global ignore patterns
* - Base JavaScript recommended rules
* - Prettier integration
* - JSDoc rules
* - TypeScript configurations for various file types
* - JavaScript configurations for various file types
* - Browser and Node.js globals where appropriate
*
* @param {{ defaultSourceType?: string }} [options] - Optional configuration options.
* - defaultSourceType: Default source type for TypeScript and JavaScript files that don't have source type indicated in the file name extension.
*
* @returns {import('eslint').Linter.Config[]} Complete ESLint flat configuration array
*
* @example
* ```javascript
* // Use the complete configuration
* const config = buildFullConfig();
*
* // Extend with custom rules
* module.exports = [
* ...buildFullConfig(),
* { rules: { 'no-console': 'warn' } }
* ];
* ```
*/
export function buildESLintConfig(options?: {
defaultSourceType?: string;
}): import("eslint").Linter.Config[];
/**
* Customizes an existing ESLint configuration array by applying modifications to matching configurations.
*
* This utility function allows you to modify specific configuration objects within an array
* based on a selector function. Useful for applying project-specific customizations.
*
* @param {import('eslint').Linter.Config[]} configArray - Array of ESLint configurations to modify
* @param {function(import('eslint').Linter.Config): boolean} selector - Function to select which configs to modify
* @param {function(import('eslint').Linter.Config): void} modifier - Function to apply modifications to selected configs
*
* @example
* ```javascript
* const config = buildFullConfig();
*
* // Modify all TypeScript configurations
* customiseConfig(config,
* (cfg) => [cfg.files].flat().some((f) => typeof f === 'string' && f.endsWith('*.ts')),
* (cfg) => { cfg.languageOptions.parserOptions.sourceType = 'commonjs'; }
* );
* ```
*/
export function customiseESLintConfig(configArray: import("eslint").Linter.Config[], selector: (arg0: import("eslint").Linter.Config) => boolean, modifier: (arg0: import("eslint").Linter.Config) => void): void;
//# sourceMappingURL=eslint.config.d.mts.map