{"id":16191897,"url":"https://github.com/namchee/eslint-config-namchee","last_synced_at":"2026-01-29T06:34:19.171Z","repository":{"id":39921480,"uuid":"367791210","full_name":"Namchee/eslint-config-namchee","owner":"Namchee","description":":wrench: My personal ESLint configuration. Designed to be used with TypeScript.","archived":false,"fork":false,"pushed_at":"2024-10-29T15:37:33.000Z","size":310,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-09T23:52:04.676Z","etag":null,"topics":["eslint","eslint-config","typescript"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Namchee.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-16T05:18:20.000Z","updated_at":"2023-07-18T09:15:06.000Z","dependencies_parsed_at":"2023-10-21T16:26:37.669Z","dependency_job_id":"be663851-b2ad-46aa-af62-bba4baf90bba","html_url":"https://github.com/Namchee/eslint-config-namchee","commit_stats":{"total_commits":51,"total_committers":3,"mean_commits":17.0,"dds":"0.039215686274509776","last_synced_commit":"a77bca41b2e96b101637812e7145d257b468d058"},"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Namchee%2Feslint-config-namchee","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Namchee%2Feslint-config-namchee/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Namchee%2Feslint-config-namchee/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Namchee%2Feslint-config-namchee/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Namchee","download_url":"https://codeload.github.com/Namchee/eslint-config-namchee/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248131454,"owners_count":21052819,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["eslint","eslint-config","typescript"],"created_at":"2024-10-10T08:07:33.063Z","updated_at":"2026-01-29T06:34:19.164Z","avatar_url":"https://github.com/Namchee.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESLint Config Namchee\n\nPersonal and opinionated ESLint shareable configuration with the following goodness:\n\n1. One liner factory function for clean setup, powered by ESLint flat configuration\n2. Work out of the box with JavaScript and TypeScript projects\n3. Automatically organizes pesky imports with reasonable defaults, powered by [Perfectionist](https://perfectionist.dev/).\n4. Includes `package.json` and `tsconfig.json` linting too\n5. Supports Astro, Vue, Markdown, YAML, and TOML\n6. Includes Stylistic rules by default. Powered by [ESLint Stylistic](https://eslint.style/) instead of [Prettier](https://prettier.io/), [why?](https://github.com/eslint/eslint/issues/17522)\n\n## Installation\n\nInstall this config with your favorite package manager:\n\n```bash\n# using npm\nnpm install @namchee/eslint-config -D\n\n# using yarn\nyarn add @namchee/eslint-config -D\n\n# using pnpm\npnpm add @namchee/eslint-config -D\n\n# using bun\nbun add @namchee/eslint-config -D\n```\n\n## Usage\n\nTo use the ESLint configuration, you can extend your configuration by importing the config directly:\n\n```js\nimport { createESLintConfig } from '@namchee/eslint-config';\n\nexport default createESLintConfig();\n```\n\nThe factory function accepts an optional parameter in form of key-value objects, with the following idenfitiers:\n\n| Name | Description | Default |\n| --- | --- | --- |\n| `typescript` | Enables TypeScript rules, including rules for linting tsconfig.json and its derivatives. | `true` |\n| `json` | Enables JSON rules, including JSONC and JSON5. | `false` |\n| `yaml` | Enables YAML rules. | `false` |\n| `stylistic` | Enable Stylistic rules used to format code, replacing prettier. | `true` |\n| `node` | Enables JS and TS rules exclusively for NodeJS API. | `false` |\n| `markdown` | Enables Markdown rules used to lint markdown files, including MDX. | `false` |\n| `astro` | Enables Astro rules. Does not include linting markdown files. | `false` |\n| `vue` | Enables Vue rules. | `false` |\n| `toml` | Enables TOML rules. | `false` |\n| `unocss` | Enables UnoCSS-specific rules. | `false` |\n| `package` | Enables `package.json` rules. | `true` |\n| `typecheck` | Enables type-aware rules for TypeScript files. Do note for possible performance hit. | `true` |\n\n## VSCode Settings\n\nIf you're using VSCode, use the following settings for maximum DX with this configuration:\n\n```json\n{\n    \"editor.codeActionsOnSave\": {\n        \"source.fixAll.eslint\": true,\n        // let ESLint rules handle this\n        \"source.organizeImports\": \"never\"\n    },\n    \"eslint.codeAction.showDocumentation\": {\n        \"enable\": true\n    },\n    \"eslint.format.enable\": true,\n        \"eslint.rules.customizations\": [\n        { \"rule\": \"style/*\", \"severity\": \"off\" },\n        { \"rule\": \"*-indent\", \"severity\": \"off\" },\n        { \"rule\": \"*-spacing\", \"severity\": \"off\" },\n        { \"rule\": \"*-spaces\", \"severity\": \"off\" },\n        { \"rule\": \"*-order\", \"severity\": \"off\" },\n        { \"rule\": \"*-dangle\", \"severity\": \"off\" },\n        { \"rule\": \"*-newline\", \"severity\": \"off\" },\n        { \"rule\": \"*quotes\", \"severity\": \"off\" },\n        { \"rule\": \"*semi\", \"severity\": \"off\" }\n    ],\n    \"eslint.validate\": [\n        \"javascript\",\n        \"javascriptreact\",\n        \"typescript\",\n        \"typescriptreact\",\n        \"json\",\n        \"jsonc\",\n        \"yaml\",\n        \"astro\",\n        \"vue\",\n        \"toml\",\n        \"markdown\"\n    ],\n\n    // disable prettier and let ESLint stylistic handle it\n    \"prettier.enable\": false\n}\n```\n\n## Acknowledgements\n\nThis project is inspired by:\n\n- [antfu's ESLint Configuration](https://github.com/antfu/eslint-config). Import sorting configuration are extracted from this configuration!\n- [sxzz's ESLint Configuration](https://github.com/sxzz/eslint-config)\n\n## License\n\nThis project is licensed under the [MIT License](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnamchee%2Feslint-config-namchee","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnamchee%2Feslint-config-namchee","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnamchee%2Feslint-config-namchee/lists"}