UNPKG

eslint-config-xaxa

Version:

Modern, ESLint v9+ compatible, Airbnb-based shareable config; including plugins like Import, Prettier, Unicorn, Typescript, Astro, and React.

112 lines (107 loc) 2.43 kB
const sortImportsPlugin = { importOrder: [ '<BUILTIN_MODULES>', '^(react/(.*)$)|^(react$)', '^(next/(.*)$)|^(next$)', '<THIRD_PARTY_MODULES>', '', '^~/(.*)$', '^@/(.*)$', '^~(.*)$', '^[./]', ], }; /** @type { PrettierConfig | SortImportsConfig } */ const config = { endOfLine: 'lf', printWidth: 100, tabWidth: 2, useTabs: false, semi: true, proseWrap: 'always', arrowParens: 'always', singleQuote: true, trailingComma: 'all', bracketSpacing: true, bracketSameLine: false, // !NOTE: do not use root level `plugins`, put it on overrides 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: { plugins: ['prettier-plugin-solidity'], parser: 'solidity-parse', printWidth: 100, tabWidth: 4, useTabs: false, singleQuote: false, bracketSpacing: false, }, }, ], }; export default config;