Skip to content

./configs

Exports composable factories: createAngularConfigs, createCommonConfigs, createEnvironmentConfigs, createNodeToolingConfigs, createGlobalIgnores, createGitignoreConfigs, createImportConfigs, createJavaScriptConfigs, createJsonConfigs, createLodashConfigs, createMarkdownConfigs, createPrettierConfigs, createReactConfigs, createRegexpConfigs, createPackageJsonSortConfigs, createTsconfigSortConfigs, createTypeScriptConfigs, createTypeScriptParserOptions, getTypeScriptPresetConfigs, createUniAppConfigs, createVueConfigs, and createVueJsxConfigs; also their option types, RuntimeEnvironment, LodashPreference, and DEFAULT_IGNORE_PATTERNS.

js
import { defineConfig } from "eslint/config";
import { createAngularConfigs, createMarkdownConfigs } from "@fast-china/eslint-config/configs";

export default defineConfig([
	...createAngularConfigs(),
	...createMarkdownConfigs(),
	{
		name: "project/custom",
		rules: {
			"no-console": "warn",
		},
	},
]);

Factories return configuration fragments without automatically providing other fragments' parsers, plugins, or scopes. Prefer complete root factories unless composition boundaries are understood.

createAngularConfigs Create

Creates Angular TypeScript, external HTML template, and inline-template configuration.

Signature

ts
export const createAngularConfigs = ({ inlineTemplates = true, templateAccessibility = true }: AngularConfigOptions = {}): ReturnType<
	typeof defineConfig
>;

Example

js
import { createAngularConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createAngularConfigs({ inlineTemplates: true, templateAccessibility: true }),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

InputTypeRequired / defaultDescription
optionsAngularConfigOptionsOptional; defaults to {}Angular inline-template processing and template accessibility options.

Returns

ValueTypeDescription
configsReturnType<<br> typeof defineConfig<br>>Flat Config array ordered by TypeScript source, then external templates.

createCommonConfigs Create

Creates common configuration for JavaScript, TypeScript, and Vue scripts.

Signature

ts
export const createCommonConfigs = (files: readonly string[] = GLOBS_CODE): ReturnType<typeof defineConfig>;

Example

js
import { createCommonConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createCommonConfigs(["src/**/*.{js,ts}"]),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

InputTypeRequired / defaultDescription
filesreadonly string[]Optional; defaults to GLOBS_CODEESLint globs receiving common rules.

Returns

ValueTypeDescription
configsReturnType<typeof defineConfig>Flat Config array with common rules and unused-disable checks.

createEnvironmentConfigs Create

Creates runtime-environment configuration.

Signature

ts
export const createEnvironmentConfigs = ({
	environment = "browser",
	files = GLOBS_CODE,
	nodeFiles = GLOBS_JAVASCRIPT,
	globals: projectGlobals = {},
}: EnvironmentConfigOptions = {}): ReturnType<typeof defineConfig>;

Example

js
import { createEnvironmentConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createEnvironmentConfigs({ environment: "browser", files: ["src/**/*.ts"] }),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

InputTypeRequired / defaultDescription
optionsEnvironmentConfigOptionsOptional; defaults to {}Runtime environment, target files, and project globals.

Returns

ValueTypeDescription
configsReturnType<typeof defineConfig>Flat Config array for application runtime followed by Node tooling environments.

createNodeToolingConfigs Create

Creates final overrides for Node configuration, scripts, tests, and CLI files.

Signature

ts
export const createNodeToolingConfigs = (nodeFiles: readonly string[] = GLOBS_JAVASCRIPT): ReturnType<typeof defineConfig>;

Example

js
import { createNodeToolingConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createNodeToolingConfigs(),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

InputTypeRequired / defaultDescription
nodeFilesreadonly string[]Optional; defaults to GLOBS_JAVASCRIPTEnabled JavaScript/TypeScript file globs.

Returns

ValueTypeDescription
configsReturnType<typeof defineConfig>Node tooling override array.

createGlobalIgnores Create

Creates global ignores, appending project patterns after defaults.

Signature

ts
export const createGlobalIgnores = (additionalPatterns: readonly string[] = []): ReturnType<typeof defineConfig>;

Example

js
import { createGlobalIgnores } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createGlobalIgnores(["coverage/**"]),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

InputTypeRequired / defaultDescription
additionalPatternsreadonly string[]Optional; defaults to []Additional ESLint global-ignore patterns appended to the default set.

Returns

ValueTypeDescription
configsReturnType<typeof defineConfig>Flat Config array with one named global-ignore fragment.

createGitignoreConfigs Create

Creates global ignores from the project's .gitignore.

Signature

ts
export const createGitignoreConfigs = (): ReturnType<typeof defineConfig>;

Example

js
import { createGitignoreConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createGitignoreConfigs(),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

This method has no input parameters.

Returns

ValueTypeDescription
configsReturnType<typeof defineConfig>Flat Config array containing converted .gitignore patterns.

createImportConfigs Create

Creates module-import rules.

Signature

ts
export const createImportConfigs = (files: readonly string[] = GLOBS_CODE): ReturnType<typeof defineConfig>;

Example

js
import { createImportConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createImportConfigs(["src/**/*.{ts,tsx}"]),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

InputTypeRequired / defaultDescription
filesreadonly string[]Optional; defaults to GLOBS_CODEESLint globs receiving import-x recommended and local rules.

Returns

ValueTypeDescription
configsReturnType<typeof defineConfig>Flat Config array with import-x presets and local rules.

createJavaScriptConfigs Create

Creates JavaScript/JSX configuration.

Signature

ts
export const createJavaScriptConfigs = (files: readonly string[] = GLOBS_JAVASCRIPT): ReturnType<typeof defineConfig>;

Example

js
import { createJavaScriptConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createJavaScriptConfigs(["src/**/*.js"]),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

InputTypeRequired / defaultDescription
filesreadonly string[]Optional; defaults to GLOBS_JAVASCRIPTESLint globs receiving JavaScript base rules.

Returns

ValueTypeDescription
configsReturnType<typeof defineConfig>Flat Config array with JavaScript recommended presets, local rules, and JSX parsing.

createJsonConfigs Create

Creates JSON, JSONC, and JSON5 configuration.

Signature

ts
export const createJsonConfigs = (): ReturnType<typeof defineConfig>;

Example

js
import { createJsonConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createJsonConfigs(),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

This method has no input parameters.

Returns

ValueTypeDescription
configsReturnType<typeof defineConfig>Flat Config array ordered by JSON, JSONC, JSON5, then VS Code workspace overrides.

createLodashConfigs Create

Creates Lodash static-import restrictions.

Signature

ts
export const createLodashConfigs = (preference: LodashPreference, files: readonly string[] = GLOBS_CODE): ReturnType<typeof defineConfig>;

Example

js
import { createLodashConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createLodashConfigs("lodash", ["src/**/*.ts"]),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

InputTypeRequired / defaultDescription
preferenceLodashPreferenceRequiredThe only Lodash package entry allowed in the project.
filesreadonly string[]Optional; defaults to GLOBS_CODEESLint globs receiving import restrictions.

Returns

ValueTypeDescription
configsReturnType<typeof defineConfig>Flat Config array containing the selected Lodash restrictions.

createMarkdownConfigs Create

Creates Markdown structure and syntax checks.

Signature

ts
export const createMarkdownConfigs = (): ReturnType<typeof defineConfig>;

Example

js
import { createMarkdownConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createMarkdownConfigs(),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

This method has no input parameters.

Returns

ValueTypeDescription
configsReturnType<typeof defineConfig>Flat Config array containing @eslint/markdown recommended presets.

createPrettierConfigs Create

Creates the Prettier compatibility layer.

Signature

ts
export const createPrettierConfigs = (): ReturnType<typeof defineConfig>;

Example

js
import { createPrettierConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createPrettierConfigs(),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

This method has no input parameters.

Returns

ValueTypeDescription
configsReturnType<typeof defineConfig>Flat Config array with a named eslint-config-prettier entry.

createReactConfigs Create

Creates React, JSX/TSX, and Hooks configuration.

Signature

ts
export const createReactConfigs = ({ importSource = "react", polymorphicPropName = "as", version = "detect" }: ReactConfigOptions = {}): ReturnType<
	typeof defineConfig
>;

Example

js
import { createReactConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createReactConfigs({ importSource: "react", version: "detect" }),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

InputTypeRequired / defaultDescription
optionsReactConfigOptionsOptional; defaults to {}React version, runtime import source, and polymorphic component attributes.

Returns

ValueTypeDescription
configsReturnType<<br> typeof defineConfig<br>>React JavaScript, type-aware TypeScript, and Hooks Flat Config array.

createRegexpConfigs Create

Creates regular-expression correctness checks.

Signature

ts
export const createRegexpConfigs = (files: readonly string[] = GLOBS_CODE): ReturnType<typeof defineConfig>;

Example

js
import { createRegexpConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createRegexpConfigs(["src/**/*.{js,ts}"]),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

InputTypeRequired / defaultDescription
filesreadonly string[]Optional; defaults to GLOBS_CODEESLint globs receiving regular-expression rules.

Returns

ValueTypeDescription
configsReturnType<typeof defineConfig>Flat Config array with the regexp plugin and shared rules.

createPackageJsonSortConfigs Create

Creates package.json sorting configuration.

Signature

ts
export const createPackageJsonSortConfigs = (): ReturnType<typeof defineConfig>;

Example

js
import { createPackageJsonSortConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createPackageJsonSortConfigs(),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

This method has no input parameters.

Returns

ValueTypeDescription
configsReturnType<typeof defineConfig>Field-sorting Flat Config array matching only package.json.

createTsconfigSortConfigs Create

Creates tsconfig.json sorting configuration.

Signature

ts
export const createTsconfigSortConfigs = (): ReturnType<typeof defineConfig>;

Example

js
import { createTsconfigSortConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createTsconfigSortConfigs(),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

This method has no input parameters.

Returns

ValueTypeDescription
configsReturnType<typeof defineConfig>Field-sorting Flat Config array matching tsconfig.json and tsconfig.*.json.

getTypeScriptPresetConfigs Presets

Returns official common/type-aware typescript-eslint presets.

Signature

ts
export const getTypeScriptPresetConfigs = (): Linter.Config[];

Example

js
import { getTypeScriptPresetConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...getTypeScriptPresetConfigs(),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

This method has no input parameters.

Returns

ValueTypeDescription
configsLinter.Config[]ESLint core recommended rules and matching typescript-eslint presets.

createTypeScriptParserOptions Create

Creates TypeScript parser Project Service options.

Signature

ts
export const createTypeScriptParserOptions = (extraFileExtensions: readonly string[] = []): Linter.ParserOptions;

Example

js
import { vueConfig } from "@fast-china/eslint-config";
import { createTypeScriptParserOptions } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...vueConfig,
	{
		name: "project/typescript-parser",
		files: ["src/**/*.ts"],
		languageOptions: {
			parserOptions: createTypeScriptParserOptions(`[".vue"]`),
		},
	},
]);

Input

InputTypeRequired / defaultDescription
extraFileExtensionsreadonly string[]Optional; defaults to []Additional extensions needed by this project's TypeScript Project Service.

Returns

ValueTypeDescription
configsLinter.ParserOptionsParser options with projectService always enabled.

createTypeScriptConfigs Create

Creates TypeScript configuration.

Signature

ts
export const createTypeScriptConfigs = (files: readonly string[] = GLOBS_TYPESCRIPT, extraFileExtensions: readonly string[] = []): ReturnType<typeof defineConfig>;

Example

js
import { createTypeScriptConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createTypeScriptConfigs(["src/**/*.ts"], `[".vue"]`),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

InputTypeRequired / defaultDescription
filesreadonly string[]Optional; defaults to GLOBS_TYPESCRIPTESLint globs receiving TypeScript configuration.
extraFileExtensionsreadonly string[]Optional; defaults to []Additional extensions consistent with framework parsers in the same composition.

Returns

ValueTypeDescription
configsReturnType<typeof defineConfig>Flat Config array with TypeScript presets, parser options, and local rules.

createUniAppConfigs Create

Creates UniApp runtime and manifest adaptation.

Signature

ts
export const createUniAppConfigs = (files: readonly string[] = GLOBS_CODE): ReturnType<typeof defineConfig>;

Example

js
import { createUniAppConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createUniAppConfigs(["src/**/*.{ts,vue,nvue}"]),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

InputTypeRequired / defaultDescription
filesreadonly string[]Optional; defaults to GLOBS_CODECode globs receiving UniApp common globals.

Returns

ValueTypeDescription
configsReturnType<typeof defineConfig>UniApp globals and JSON-comment compatibility configuration.

createVueConfigs Create

Creates Vue 3 SFC configuration.

Signature

ts
export const createVueConfigs = (files: readonly string[] = `[GLOB_VUE]`, extraFileExtensions: readonly string[] = `[".vue"]`): ReturnType<typeof defineConfig>;

Example

js
import { createVueConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createVueConfigs(["src/**/*.vue"], `[".vue"]`),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

InputTypeRequired / defaultDescription
filesreadonly string[]Optional; defaults to [GLOB_VUE]SFC globs receiving Vue parsers and rules.
extraFileExtensionsreadonly string[]Optional; defaults to [".vue"]Additional extensions consistent with TypeScript configuration in the same composition.

Returns

ValueTypeDescription
configsReturnType<typeof defineConfig>Flat Config array with Vue template/script parsers, recommended presets, and local rules.

createVueJsxConfigs Create

Creates Vue JSX/TSX component-script semantics.

Signature

ts
export const createVueJsxConfigs = (extraFileExtensions: readonly string[] = `[".vue"]`): ReturnType<typeof defineConfig>;

Example

js
import { createVueJsxConfigs } from "@fast-china/eslint-config/configs";
import { defineConfig } from "eslint/config";

export default defineConfig([
	...createVueJsxConfigs(`[".vue"]`),
	{
		name: "project/custom",
		files: ["src/**/*.{js,ts,vue}"],
		rules: {
			"no-console": "warn",
		},
	},
]);

Input

InputTypeRequired / defaultDescription
extraFileExtensionsreadonly string[]Optional; defaults to [".vue"]Additional extensions consistent with TypeScript and SFC configuration in the same composition.

Returns

ValueTypeDescription
configsReturnType<typeof defineConfig>Flat Config array separately handling standalone Vue .jsx and .tsx components.