@shayanthenerd/eslint-config
Version:
A modern, flexible ESLint configuration for enforcing best practices and maintaining a consistent coding style
237 lines (236 loc) • 4.66 kB
JavaScript
//#region src/helpers/options/defaultOptions.ts
const defaultOptions = {
autoDetectDeps: true,
env: "browser",
gitignore: ".gitignore",
packageDir: ".",
tsConfig: false,
project: {
basePath: ".",
globals: {
astro: true,
audioWorklet: true,
browser: true,
bun: true,
commonjs: false,
deno: true,
node: true,
nodeBuiltin: true,
serviceworker: true,
sharedWorker: true,
vitest: false,
vue: true,
webextension: true,
worker: true,
custom: {}
},
ignores: [],
linterOptions: {
noInlineConfig: false,
reportUnusedInlineConfigs: "warn",
reportUnusedDisableDirectives: "warn"
},
rules: {},
settings: {}
},
configs: {
astro: { overrides: {} },
baseline: {
baseline: "widely",
css: {
allowedAtRules: [],
allowedFunctions: [],
allowedMediaConditions: [],
allowedProperties: [],
allowedPropertyValues: {},
allowedSelectors: [],
allowedUnits: []
},
javascript: {
ignoredFeatures: [],
ignoredNodeTypes: []
},
overrides: {}
},
css: { overrides: {} },
html: {
idNamingConvention: "snake_case",
overrides: {}
},
importX: { overrides: {} },
javascript: {
maxDepth: 3,
maxNestedCallbacks: 3,
overrides: {}
},
markdown: {
allowedHtmlTags: [],
frontmatter: "yaml",
language: "gfm",
overrides: {}
},
next: { overrides: {} },
node: { overrides: {} },
nuxt: {
icon: { component: "Icon" },
image: false,
ui: { prefix: "U" },
overrides: {}
},
packageJson: { overrides: {} },
perfectionist: {
sortType: "line-length",
overrides: {}
},
promise: { overrides: {} },
react: {
accessibility: {
anchorComponents: [
"Link",
"NextLink",
"NavLink"
],
headingComponents: [
"H1",
"H2",
"H3",
"H4",
"H5",
"H6"
],
imageComponents: [
"Img",
"LazyImg",
"Image",
"LazyImage",
"NextImage",
"LazyNextImage"
]
},
overrides: {}
},
stylistic: {
arrowParens: "always",
indent: 2,
jsxQuotes: "prefer-double",
maxAttributesPerLine: 3,
maxConsecutiveEmptyLines: 1,
maxLineLength: 120,
memberDelimiterStyle: "comma",
quotes: "single",
semi: "always",
selfCloseVoidHtmlElements: "always",
trailingComma: "always-multiline",
overrides: {}
},
tailwind: {
config: "",
cwd: void 0,
entryPoint: "",
ignoredUnknownClasses: [],
multilineSort: true,
overrides: {}
},
test: {
maxNestedDescribe: 1,
testFunction: "test",
cypress: { overrides: {} },
playwright: { overrides: {} },
storybook: { overrides: {} },
vitest: { overrides: {} }
},
typescript: {
allowedDefaultProjects: [],
methodSignatureStyle: "method",
removeUnusedImports: false,
typeDefinitionStyle: "interface",
overrides: {}
},
unicorn: {
functionStyle: {
callbacks: "arrow-function",
defaultExport: "declaration",
namedExports: "declaration",
namedFunctions: "declaration",
reassignedVariables: "arrow-function",
typedVariables: "arrow-function"
},
overrides: {}
},
vue: {
accessibility: {
accessibleChildComponents: [
"img",
"picture",
"NuxtImg",
"NuxtPicture",
"UBadge"
],
anchorComponents: [
"RouterLink",
"NuxtLink",
"ULink"
],
imageComponents: ["NuxtImg"]
},
allowedStyleAttributes: ["scoped", "module"],
attributeHyphenation: "never",
attributesOrder: [
"CONDITIONALS",
"RENDER_MODIFIERS",
"LIST_RENDERING",
"UNIQUE",
"DEFINITION",
"GLOBAL",
"SLOT",
"TWO_WAY_BINDING",
"CONTENT",
"OTHER_DIRECTIVES",
"EVENTS",
"ATTR_SHORTHAND_BOOL",
"ATTR_DYNAMIC",
"ATTR_STATIC"
],
blockLang: {
script: "js",
style: "implicit"
},
blocksOrder: [
"script:not([setup])",
"script[setup]",
"template",
"i18n[locale=en]",
"i18n:not([locale=en])",
"style:not([scoped])",
"style[scoped]",
"docs"
],
componentNameCaseInTemplate: "PascalCase",
destructureProps: "only-when-assigned",
ignoredUndefinedComponents: [],
macrosOrder: [
"definePage",
"defineOptions",
"defineModel",
"defineProps",
"defineEmits",
"defineSlots",
"defineCustom",
"defineExpose"
],
preferVBindSameNameShorthand: "always",
preferVBindTrueShorthand: "always",
restrictedElements: [],
restrictedStaticAttributes: [],
templateMaxLineLength: 130,
vForDelimiterStyle: "in",
overrides: {}
},
zod: {
mini: false,
overrides: {}
}
}
};
//#endregion
export { defaultOptions };