UNPKG

eslint-config-sensible-prettier-typescript

Version:

Sensible default eslint rules and prettier rules for Typescript projects

84 lines 3.98 kB
/** * 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