{"id":15020757,"url":"https://github.com/ycs77/eslint-config","last_synced_at":"2025-10-26T07:31:49.556Z","repository":{"id":57700601,"uuid":"504302524","full_name":"ycs77/eslint-config","owner":"ycs77","description":"Lucas's ESLint config presets","archived":false,"fork":false,"pushed_at":"2025-09-13T15:09:58.000Z","size":1165,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-12T22:42:46.770Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ycs77.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-06-16T20:51:37.000Z","updated_at":"2025-09-13T15:09:59.000Z","dependencies_parsed_at":"2024-07-15T16:26:24.560Z","dependency_job_id":"6162dc59-67b0-4aea-bb34-3310986dcfb8","html_url":"https://github.com/ycs77/eslint-config","commit_stats":{"total_commits":89,"total_committers":1,"mean_commits":89.0,"dds":0.0,"last_synced_commit":"d91e24742f4acdfab5e4d6ff4d9fe83c3a252dcb"},"previous_names":[],"tags_count":40,"template":false,"template_full_name":null,"purl":"pkg:github/ycs77/eslint-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ycs77%2Feslint-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ycs77%2Feslint-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ycs77%2Feslint-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ycs77%2Feslint-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ycs77","download_url":"https://codeload.github.com/ycs77/eslint-config/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ycs77%2Feslint-config/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281074244,"owners_count":26439422,"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","status":"online","status_checked_at":"2025-10-26T02:00:06.575Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-09-24T19:55:34.553Z","updated_at":"2025-10-26T07:31:49.550Z","avatar_url":"https://github.com/ycs77.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @ycs77/eslint-config\n\n\u003e Extended from [@antfu/eslint-config](https://github.com/antfu/eslint-config)\n\n[![NPM version][ico-version]][link-npm]\n[![Software License][ico-license]](LICENSE)\n[![GitHub Tests Action Status][ico-github-action]][link-github-action]\n[![Total Downloads][ico-downloads]][link-downloads]\n\n- Auto fix for formatting (aimed to be used standalone **without** Prettier)\n- Reasonable defaults, best practices, only one line of config\n- Designed to work with TypeScript, JSX, Vue, JSON, YAML, Toml, Markdown, etc. Out-of-box.\n- Opinionated, but [very customizable](#customization)\n- [ESLint Flat config](https://eslint.org/docs/latest/use/configure/configuration-files-new), compose easily!\n- Optional [React](#react), [Svelte](#svelte), [UnoCSS](#unocss), [Astro](#astro), [Solid](#solid) support\n- Optional [formatters](#formatters) support for formatting CSS, HTML, XML, etc.\n- **Style principle**: Minimal for reading, stable for diff, consistent\n  - Sorted imports, dangling commas\n  - Single quotes, no semi\n  - Using [ESLint Stylistic](https://github.com/eslint-stylistic/eslint-stylistic)\n- Respects `.gitignore` by default\n- Requires ESLint v9.5.0+\n\n## Differences from @antfu/eslint-config\n\n- Opinionated stylistic rules\n- Better Astro rules\n\n## Usage\n\n### Install\n\n```bash\nyarn add eslint @ycs77/eslint-config -D\n```\n\n### Create config file\n\nCreate `eslint.config.js` in your project root:\n\n```js\n// eslint.config.js\nimport ycs77 from '@ycs77/eslint-config'\n\nexport default ycs77()\n```\n\n### Add script for package.json\n\nFor example:\n\n```json\n{\n  \"scripts\": {\n    \"lint\": \"eslint .\",\n    \"lint:fix\": \"eslint . --fix\"\n  }\n}\n```\n\n## VS Code support (auto fix)\n\nInstall [VS Code ESLint extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)\n\nAdd the following settings to your `.vscode/settings.json`:\n\n```jsonc\n{\n  // Disable the default formatter, use eslint instead\n  \"prettier.enable\": false,\n  \"editor.formatOnSave\": false,\n  \"[astro]\": {\n    \"editor.defaultFormatter\": \"dbaeumer.vscode-eslint\"\n  },\n\n  // Auto fix\n  \"editor.codeActionsOnSave\": {\n    \"source.fixAll.eslint\": \"explicit\",\n    \"source.organizeImports\": \"never\"\n  },\n\n  // Silent the stylistic rules in you IDE, but still auto fix them\n  \"eslint.rules.customizations\": [\n    { \"rule\": \"style/*\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"format/*\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*-indent\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*-spacing\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*-spaces\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*-order\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*-dangle\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*-newline\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*quotes\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*semi\", \"severity\": \"off\", \"fixable\": true }\n  ],\n\n  // Enable eslint for all supported languages\n  \"eslint.validate\": [\n    \"javascript\",\n    \"javascriptreact\",\n    \"typescript\",\n    \"typescriptreact\",\n    \"vue\",\n    \"astro\",\n    \"html\",\n    \"markdown\",\n    \"json\",\n    \"jsonc\",\n    \"yaml\",\n    \"toml\"\n  ]\n}\n```\n\n## Customization\n\nSince v1.0, we migrated to [ESLint Flat config](https://eslint.org/docs/latest/use/configure/configuration-files-new). It provides much better organization and composition.\n\nNormally you only need to import the `ycs77` preset:\n\n```js\n// eslint.config.js\nimport ycs77 from '@ycs77/eslint-config'\n\nexport default ycs77()\n```\n\nAnd that's it! Or you can configure each integration individually, for example:\n\n```js\n// eslint.config.js\nimport ycs77 from '@ycs77/eslint-config'\n\nexport default ycs77({\n  // Enable stylistic formatting rules\n  // stylistic: true,\n\n  // Or customize the stylistic rules\n  stylistic: {\n    indent: 2, // 4, or 'tab'\n    quotes: 'single', // or 'double'\n  },\n\n  // TypeScript and Vue are auto-detected, you can also explicitly enable them:\n  typescript: true,\n  vue: true,\n\n  // Disable jsonc and yaml support\n  jsonc: false,\n  yaml: false,\n\n  // `.eslintignore` is no longer supported in Flat config, use `ignores` instead\n  ignores: [\n    './fixtures',\n    // ...globs\n  ],\n})\n```\n\nThe `ycs77` factory function also accepts any number of arbitrary custom config overrides:\n\n```js\n// eslint.config.js\nimport ycs77 from '@ycs77/eslint-config'\n\nexport default ycs77(\n  {\n    // Configures for ycs77's config\n  },\n\n  // From the second arguments they are ESLint Flat Configs\n  // you can have multiple configs\n  {\n    files: ['**/*.ts'],\n    rules: {},\n  },\n  {\n    rules: {},\n  },\n)\n```\n\nMore advanced you can see the [@antfu/eslint-config's customization](https://github.com/antfu/eslint-config#customization) for more details.\n\n## Credit\n\n- [@antfu/eslint-config](https://github.com/antfu/eslint-config)\n\n## License\n\nUnder the [MIT LICENSE](LICENSE)\n\n[ico-version]: https://img.shields.io/npm/v/@ycs77/eslint-config?style=flat-square\n[ico-license]: https://img.shields.io/badge/license-MIT-brightgreen?style=flat-square\n[ico-github-action]: https://img.shields.io/github/actions/workflow/status/ycs77/eslint-config/ci.yml?branch=main\u0026label=tests\u0026style=flat-square\n[ico-downloads]: https://img.shields.io/npm/dt/@ycs77/eslint-config?style=flat-square\n[link-npm]: https://www.npmjs.com/package/@ycs77/eslint-config\n[link-github-action]: https://github.com/ycs77/eslint-config/actions/workflows/ci.yml?query=branch%3Amain\n[link-downloads]: https://www.npmjs.com/package/@ycs77/eslint-config\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fycs77%2Feslint-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fycs77%2Feslint-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fycs77%2Feslint-config/lists"}