UNPKG

eslint-config-xaxa

Version:

The ultimate ESLint config - successor to Airbnb Config. Built on Anthony Fu's ESLint config, Airbnb, ESLint Stylistic, Perfectionist, React, TypeScript, Astro, JSDocs, Prettier, Node.js, Unicorns, Promises, and more.

112 lines (107 loc) 2.43 kB
const sortImportsPlugin = { importOrder: [ '<BUILTIN_MODULES>', '^(react/(.*)$)|^(react$)', '^(next/(.*)$)|^(next$)', '<THIRD_PARTY_MODULES>', '', '^~/(.*)$', '^@/(.*)$', '^~(.*)$', '^[./]', ], }; /** @type { PrettierConfig | SortImportsConfig } */ const config = { arrowParens: 'always', bracketSameLine: false, bracketSpacing: true, endOfLine: 'lf', overrides: [ { files: ['**/.all-contributorsrc'], options: { parser: 'json' }, }, { files: ['**/.vscode/settings.json'], options: { parser: 'jsonc' }, }, // { // files: ["**/*.json"], // options: { // parser: "json-stringify", // }, // }, { files: ['**/*.{mjs,js,jsx}'], options: { ...sortImportsPlugin, // !NOTE: tailwind plugin must be last plugins: ['@ianvs/prettier-plugin-sort-imports', 'prettier-plugin-tailwindcss'], }, }, { files: ['**/*.{ts,tsx}'], options: { ...sortImportsPlugin, parser: 'typescript', // !NOTE: tailwind plugin must be last plugins: ['@ianvs/prettier-plugin-sort-imports', 'prettier-plugin-tailwindcss'], }, }, { files: ['**/tsconfig*.json'], options: { parser: 'jsonc' }, }, { files: ['**/package.json'], options: { parser: 'json-stringify', plugins: ['prettier-plugin-pkgjson'], }, }, { files: ['**/*.md'], options: { parser: 'markdown', proseWrap: 'always', }, }, { files: ['**/*.mdx'], options: { parser: 'mdx', proseWrap: 'always', }, }, { files: ['**/*.astro'], options: { parser: 'astro', // !NOTE: tailwind plugin must be last plugins: ['prettier-plugin-astro', 'prettier-plugin-tailwindcss'], }, }, { files: ['**/*.sol'], options: { bracketSpacing: false, parser: 'solidity-parse', plugins: ['prettier-plugin-solidity'], printWidth: 100, singleQuote: false, tabWidth: 4, useTabs: false, }, }, ], printWidth: 100, proseWrap: 'always', semi: true, singleQuote: true, tabWidth: 2, trailingComma: 'all', // !NOTE: do not use root level `plugins`, put it on overrides useTabs: false, }; export default config;