{"id":15837704,"url":"https://github.com/sambacha/prettier-config-conformance","last_synced_at":"2025-08-22T15:06:16.805Z","repository":{"id":53169072,"uuid":"342863465","full_name":"sambacha/prettier-config-conformance","owner":"sambacha","description":"Prettier configuration targeting reduced diff churn and enhanced AST ","archived":false,"fork":false,"pushed_at":"2025-07-16T10:29:23.000Z","size":45,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-15T06:53:39.643Z","etag":null,"topics":["airbnb","ast","churn","config","diff","eslint","lint","prettier","super-lint"],"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/sambacha.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-27T13:30:39.000Z","updated_at":"2025-07-16T10:29:27.000Z","dependencies_parsed_at":"2022-09-26T17:01:45.778Z","dependency_job_id":null,"html_url":"https://github.com/sambacha/prettier-config-conformance","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/sambacha/prettier-config-conformance","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sambacha%2Fprettier-config-conformance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sambacha%2Fprettier-config-conformance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sambacha%2Fprettier-config-conformance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sambacha%2Fprettier-config-conformance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sambacha","download_url":"https://codeload.github.com/sambacha/prettier-config-conformance/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sambacha%2Fprettier-config-conformance/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271657552,"owners_count":24797935,"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-08-22T02:00:08.480Z","response_time":65,"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":["airbnb","ast","churn","config","diff","eslint","lint","prettier","super-lint"],"created_at":"2024-10-05T15:41:31.162Z","updated_at":"2025-08-22T15:06:16.767Z","avatar_url":"https://github.com/sambacha.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [prettier-config-conformance](#)\n\n\u003e prettier configuration for optimizing diff/AST's\n\n## Quickstart\n\n```sh\nwget https://raw.githubusercontent.com/sambacha/prettier-config-conformance/master/.prettierrc.js\n```\n\n```bash\nwget https://raw.githubusercontent.com/sambacha/prettier-config-conformance/master/.prettierrc.json\n```\n\n```bash\ncurl -O https://raw.githubusercontent.com/sambacha/prettier-config-conformance/master/.prettierrc.json\n```\n\n### whitespace\n\n[source@airbnb/javascript#whitespace--in-braces](https://github.com/airbnb/javascript#whitespace--in-braces)\n\n- 19.12 Add spaces inside curly braces. eslint: object-curly-spacing\n\n```jsx\n// bad\nconst foo = { clark: 'kent' };\n\n// good\nconst foo = { clark: 'kent' };\n```\n\n#### arrow-parens\n\n- 8.4 Always include parentheses around arguments for clarity and consistency.\n  eslint: arrow-parens\n\n[source@airbnb/javascript#arrows--one-arg-parens](https://github.com/airbnb/javascript#arrows--one-arg-parens)\n\n\u003e Why? Minimizes diff churn when adding or removing arguments.\n\n```jsx\n// bad\n[1, 2, 3].map((x) =\u003e x * x);\n\n// good\n[1, 2, 3].map((x) =\u003e x * x);\n\n// bad\n[1, 2, 3].map(\n  (number) =\u003e\n    `A long string with the ${number}. It’s so long that we don’t want it to take up space on the .map line!`,\n);\n\n// good\n[1, 2, 3].map(\n  (number) =\u003e\n    `A long string with the ${number}. It’s so long that we don’t want it to take up space on the .map line!`,\n);\n\n// bad\n[1, 2, 3].map((x) =\u003e {\n  const y = x + 1;\n  return x * y;\n});\n\n// good\n[1, 2, 3].map((x) =\u003e {\n  const y = x + 1;\n  return x * y;\n});\n```\n\n##### one var\n\n- 13.2 Use one const or let declaration per variable or assignment. eslint:\n  one-var\n\n\u003e Why? It’s easier to add new variable declarations this way, and you never have\n\u003e to worry about swapping out a ; for a , or introducing punctuation-only diffs.\n\u003e You can also step through each declaration with the debugger, instead of\n\u003e jumping through all of them at once.\n\n##### [ref:eslint/rules/one-var](https://eslint.org/docs/rules/one-var)\n\n```jsx\n// bad\nconst items = getItems(),\n  goSportsTeam = true,\n  dragonball = 'z';\n\n// bad\n// (compare to above, and try to spot the mistake)\nconst items = getItems(),\n  goSportsTeam = true;\ndragonball = 'z';\n\n// good\nconst items = getItems();\nconst goSportsTeam = true;\nconst dragonball = 'z';\n```\n\n#### 20.2 Additional trailing comma: Yup. eslint: comma-dangle\n\n    Why? This leads to cleaner git diffs. Also, transpilers like Babel will remove the additional trailing comma in the transpiled code which means you don’t have to worry about the trailing comma problem in legacy browsers.\n\n```diff\n// bad - git diff without trailing comma\nconst hero = {\n     firstName: 'Florence',\n-    lastName: 'Nightingale'\n+    lastName: 'Nightingale',\n+    inventorOf: ['coxcomb chart', 'modern nursing']\n};\n\n// good - git diff with trailing comma\nconst hero = {\n     firstName: 'Florence',\n     lastName: 'Nightingale',\n+    inventorOf: ['coxcomb chart', 'modern nursing'],\n};\n```\n\n#### 8.6 Enforce the location of arrow function bodies with implicit returns. eslint: implicit-arrow-linebreak\n\n```js\n// bad\n(foo) =\u003e bar;\n\n(foo) =\u003e bar;\n\n// good\n(foo) =\u003e bar;\n(foo) =\u003e bar;\n(foo) =\u003e bar;\n```\n\n## Parser Differences\n\n[see prettier playground](https://prettier.io/playground/#N4Igxg9gdgLgprEAuEB6AVOgOlABO3AAQAcBDMAa1IHM5dTiBLAOgCc4BnY6DuHfIgDMArlDAxG0egBNpAUQBuCGABlGHeFDit+6VDlKzFytRoTaAFFhCC4MMAAtrAGlxwlsXAF4AfLmD8uJBQGrjSpDCk3v6BuLioqERQEPBhcGCMALakADa4AIwAzIUA7EHQSqwwHLgwELgOcAAeuAq5wnQArIUAnLFBDqSMAJLSSLjWAAxN3X0ggQC+OIHBoQBWHFJeuABSAMoA8gByzBqsjFDUjIIAnhbhka5Qwjk5rgBMAJTLeLjsMMJWHh3Mo2JxuFBpAB1RgwBxWX5xLQAd1wACVwTw4BYNtBXAFEXEGnBDNoOOMCUSqRNwNBNDAALQwG7EPjIGkMYg5RhgCKSKCoXFQADcjlIrF4MC8AFUACoAMQZAA5rP04ktCQtvr9tVqQM4QBBiBIeMhQOLWBBkQAFcUIDjIEC5ZGkG4Og0AI1Y5Aodj2pEycDUWmQMFYHU93sofrIGUuyEEuV4BrgmQ9cFkGZUpEuwhocHlEFY2RgEnjKFIwjq+pADhgmRyUIcsPB5Dge3tsMYClhN0dZx5MBrF14VWt3uo2QTSbgBo2TT2F2oOTgAEVhCk4NOcsmQGQJdpHR7SOmcjXiOdYDDpHDkErJgaLxBeFDvcRHc7Xe6QABHDfwccjQdFBVnUeka3YP9GHYccaCnJBEx3WcQF4TJGFDcNkI4JcV3XTcMIjEBIg9a9byQd4DTDIZuUuABhCBMngp1XhrYReFlE9gMQ3cFA6YZIWUPYwHOY0AEFIT2ZkV23XgFgWIA)\n\n### Example Typescript file\n\n\n```typescript\n/**\n * @package api.response\n * @function addEventListener\n */\n addEventListener(\"fetch\", event =\u003e {\n    const data = {\n      // @note decimal 1337 converts to hex value 539\n      chaiId: \"0x539\"\n    }\n  \n    const json = JSON.stringify(data, null, 2)\n  \n    return event.respondWith(\n      new Response(json, {\n        headers: {\n          \"content-type\": \"application/json;charset=UTF-8\"\n        }\n      })\n    )\n  })\n```\n\nTypescript Compiler\n\n```json\n\n[\n    {\n      \"type\": \"Block\",\n      \"value\": \"*\\n * @package api.response\\n * @function addEventListener\\n \",\n      \"range\": [0, 62],\n      \"loc\": {\n        \"start\": { \"line\": 1, \"column\": 0 },\n        \"end\": { \"line\": 4, \"column\": 3 }\n      },\n      \"placement\": \"endOfLine\",\n      \"leading\": true,\n      \"trailing\": false,\n      \"nodeDescription\": \"ExpressionStatement\"\n    },\n    {\n      \"type\": \"Line\",\n      \"value\": \" @note decimal 1337 converts to hex value 539\",\n      \"range\": [121, 168],\n      \"loc\": {\n        \"start\": { \"line\": 7, \"column\": 4 },\n        \"end\": { \"line\": 7, \"column\": 51 }\n      },\n      \"placement\": \"ownLine\",\n      \"leading\": true,\n      \"trailing\": false,\n      \"nodeDescription\": \"Property chaiId\"\n    }\n  ]\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsambacha%2Fprettier-config-conformance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsambacha%2Fprettier-config-conformance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsambacha%2Fprettier-config-conformance/lists"}