{"_id":"@benjie/tsconfig","_rev":"4-d2b006b3789689da3b7b0deb4e1fc1b0","name":"@benjie/tsconfig","dist-tags":{"latest":"22.0.3"},"versions":{"22.0.0":{"name":"@benjie/tsconfig","version":"22.0.0","keywords":["tsconfig","benjie","strip-types","node","no-linting"],"author":{"name":"Benjie Gillam","email":"code@benjiegillam.com"},"license":"MIT","_id":"@benjie/tsconfig@22.0.0","maintainers":[{"name":"benjie","email":"npm@benjiegillam.com"}],"homepage":"https://github.com/benjie/tsconfig#readme","bugs":{"url":"https://github.com/benjie/tsconfig/issues"},"dist":{"shasum":"4216682c8cfe7bb86226d9d35fe9f787cf3282c6","tarball":"https://registry.npmjs.org/@benjie/tsconfig/-/tsconfig-22.0.0.tgz","fileCount":4,"integrity":"sha512-FSirgzEquNCcP3w2aC6kZb6QU+xxpbgpSRjeac+GinTsHPDmTg/r49QKbFzz2zw5GD4d8qhDYB4hYL3VSVXjNQ==","signatures":[{"sig":"MEYCIQCUfjeEaU8zI4WHYj0B4CwiMx2ICv3IesTFIuJ8sl9PgAIhAJZ3pUTQEtbyf64KHouxQIKZUSG7tCD0sJjDU7LoETXz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5873},"gitHead":"5f46d455859b8bd75f6f4fc3a9d66affe3b234c0","_npmUser":{"name":"benjie","email":"npm@benjiegillam.com"},"repository":{"url":"git+https://github.com/benjie/tsconfig.git","type":"git"},"_npmVersion":"10.9.2","description":"Benjie's preferred tsconfig options to avoid having to write them everywhere","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.5.3"},"_npmOperationalInternal":{"tmp":"tmp/tsconfig_22.0.0_1749292797408_0.5938781037968934","host":"s3://npm-registry-packages-npm-production"}},"22.0.1":{"name":"@benjie/tsconfig","version":"22.0.1","keywords":["tsconfig","benjie","strip-types","node","no-linting"],"author":{"name":"Benjie Gillam","email":"code@benjiegillam.com"},"license":"MIT","_id":"@benjie/tsconfig@22.0.1","maintainers":[{"name":"benjie","email":"npm@benjiegillam.com"}],"homepage":"https://github.com/benjie/tsconfig#readme","bugs":{"url":"https://github.com/benjie/tsconfig/issues"},"dist":{"shasum":"ca94c0d313a3e59b62a2044a28e37a0061c59367","tarball":"https://registry.npmjs.org/@benjie/tsconfig/-/tsconfig-22.0.1.tgz","fileCount":4,"integrity":"sha512-gx0jH2ayR7n3CGkYOcLzqilvxPWFvDKTtp+DFvJ3OikCbviucgE4ZWDE0sl1o5+g07S9nFt3DV/HIjyPUHQJPg==","signatures":[{"sig":"MEYCIQDh73sbXeg2fPM2FmeZl1upI2nNiwI18/0ZxmswkyFgOgIhALGaw6K72lrzYJfEBEJzJ6LQOO3sjr1BIFx/gKgIv8NW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6271},"gitHead":"82927e29dd8556c819575d9690b7488ab9e57ea3","_npmUser":{"name":"benjie","email":"npm@benjiegillam.com"},"repository":{"url":"git+https://github.com/benjie/tsconfig.git","type":"git"},"_npmVersion":"10.9.2","description":"Benjie's preferred tsconfig options to avoid having to write them everywhere","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.5.3"},"_npmOperationalInternal":{"tmp":"tmp/tsconfig_22.0.1_1749294622316_0.4060678077982389","host":"s3://npm-registry-packages-npm-production"}},"22.0.2":{"name":"@benjie/tsconfig","version":"22.0.2","keywords":["tsconfig","benjie","strip-types","node","no-linting"],"author":{"name":"Benjie Gillam","email":"code@benjiegillam.com"},"license":"MIT","_id":"@benjie/tsconfig@22.0.2","maintainers":[{"name":"benjie","email":"npm@benjiegillam.com"}],"homepage":"https://github.com/benjie/tsconfig#readme","bugs":{"url":"https://github.com/benjie/tsconfig/issues"},"dist":{"shasum":"65084f1bbd78e4cf557ede43d6efd745fcb76ae5","tarball":"https://registry.npmjs.org/@benjie/tsconfig/-/tsconfig-22.0.2.tgz","fileCount":4,"integrity":"sha512-qk0dAk9KZHiR5ir6hgXLq1RLk0eXlphC7ukhOMl+JULVFQSwnGKobEHL3xF6BYG6Uo2UwSgjHVSQ0IZRX25YOA==","signatures":[{"sig":"MEYCIQDY3wKO5D0fHfIt8rsauPD4NUqxmAKUTRlhlCm3xmqoagIhALjULjsDisqkLarRyp4g9G80G+Ui9FgG8jp7FpEBgiI0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6490},"gitHead":"c0909df8c4b2935a661dc8bc4e1f23f183c1e020","_npmUser":{"name":"benjie","email":"npm@benjiegillam.com"},"repository":{"url":"git+https://github.com/benjie/tsconfig.git","type":"git"},"_npmVersion":"10.9.2","description":"Benjie's preferred tsconfig options to avoid having to write them everywhere","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.5.3"},"_npmOperationalInternal":{"tmp":"tmp/tsconfig_22.0.2_1749294847905_0.09536417785612072","host":"s3://npm-registry-packages-npm-production"}},"22.0.3":{"name":"@benjie/tsconfig","version":"22.0.3","description":"Benjie's preferred tsconfig options to avoid having to write them everywhere","author":{"name":"Benjie Gillam","email":"code@benjiegillam.com"},"keywords":["tsconfig","benjie","strip-types","node","no-linting"],"repository":{"type":"git","url":"git+https://github.com/benjie/tsconfig.git"},"license":"MIT","devDependencies":{"prettier":"^3.5.3"},"_id":"@benjie/tsconfig@22.0.3","gitHead":"ec78e5072490b38cfcdd008a94df1e4e11ca463a","bugs":{"url":"https://github.com/benjie/tsconfig/issues"},"homepage":"https://github.com/benjie/tsconfig#readme","_nodeVersion":"22.15.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-lIAUgSWZ05s2UfWtX+IH0HLnRxgVkQBDT7cHPCyMUlI4yNA1zq4gmANksDD6R9kBvhiSSPZMl8Yr8czn+ES9uQ==","shasum":"e91f98f8d7a9b06a3d7a2fd992a1e212b3c52330","tarball":"https://registry.npmjs.org/@benjie/tsconfig/-/tsconfig-22.0.3.tgz","fileCount":4,"unpackedSize":6444,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIChETCtMYgCCVeIDmzSFPK1yeQO7ZmAk8q+EAc2Vk8tJAiEAuAogvdl5qTM61VMYwMk66pxxWBEcdPRwDTqOETxmeho="}]},"_npmUser":{"name":"benjie","email":"npm@benjiegillam.com"},"directories":{},"maintainers":[{"name":"benjie","email":"npm@benjiegillam.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tsconfig_22.0.3_1749295072916_0.634714329673916"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-07T10:39:57.310Z","modified":"2025-06-07T11:17:53.325Z","22.0.0":"2025-06-07T10:39:57.630Z","22.0.1":"2025-06-07T11:10:22.513Z","22.0.2":"2025-06-07T11:14:08.105Z","22.0.3":"2025-06-07T11:17:53.134Z"},"bugs":{"url":"https://github.com/benjie/tsconfig/issues"},"author":{"name":"Benjie Gillam","email":"code@benjiegillam.com"},"license":"MIT","homepage":"https://github.com/benjie/tsconfig#readme","keywords":["tsconfig","benjie","strip-types","node","no-linting"],"repository":{"type":"git","url":"git+https://github.com/benjie/tsconfig.git"},"description":"Benjie's preferred tsconfig options to avoid having to write them everywhere","maintainers":[{"name":"benjie","email":"npm@benjiegillam.com"}],"readme":"# Benjie's TSConfig\n\nThis is a bunch of TSConfig options I've grouped together to stop me having to\ncreate massive TSConfig files all over the place.\n\n**THIS MODULE DOES NOT FOLLOW SEMVER** (see below).\n\n## Usage\n\nAdd the package to your `\"devDependencies\"`:\n\n```sh\nnpm install --save-dev @benjie/tsconfig\nyarn add --dev @benjie/tsconfig\n```\n\nAdd to your `tsconfig.json` depending on your needs:\n\n### @benjie/tsconfig/quick.json\n\nAdd it to your tsconfig.json:\n\n```json\n\"extends\": \"@benjie/tsconfig/quick.json\"\n```\n\nThese are my generally preferred options for just bringing up a **modern**\nproject quickly, typically used when hacking out a proof of concept or a test\ncase.\n\n**IMPORTANT**: ensure your `package.json` contains `\"type\": \"module\"`, or\notherwise write your files as `.mts` extension files.\n\nOutline:\n\n- Everything in `@tsconfig/node22`\n- Support for `node --experimental-strip-types` as per [the Node.js docs](https://nodejs.org/docs/latest/api/typescript.html#type-stripping)\n- Disables \"lint-y\" checks, deferring these to ESLint\n- Enables and forces type checking of JavaScript\n- My general preferences\n\n<details>\n  <summary>The full configuration</summary>\n\n```jsonc\n{\n  \"$schema\": \"https://json.schemastore.org/tsconfig\",\n  \"_version\": \"22.0.0\",\n  \"compilerOptions\": {\n    // From @tsconfig/node22:\n    \"lib\": [\"es2024\", \"ESNext.Array\", \"ESNext.Collection\", \"ESNext.Iterator\"],\n    \"module\": \"nodenext\",\n    \"target\": \"es2022\",\n    \"strict\": true,\n    \"esModuleInterop\": true,\n    \"skipLibCheck\": true,\n    \"moduleResolution\": \"node16\",\n\n    // From https://nodejs.org/docs/latest/api/typescript.html#type-stripping\n    \"target\": \"esnext\",\n    \"rewriteRelativeImportExtensions\": true,\n    \"erasableSyntaxOnly\": true,\n    \"verbatimModuleSyntax\": true,\n\n    // Related:\n    \"allowImportingTsExtensions\": true,\n\n    // From Benjie's preferences\n\n    // I generally keep `tsc` running in parallel with other processes and\n    // don't want it clearing the screen unless I opt into that.\n    \"preserveWatchOutput\": true,\n\n    // This has runtime performance overhead! Specifically it means a lot of\n    // time is spent in 'instance_members_initializer' in V8. Disable.\n    \"useDefineForClassFields\": false,\n\n    // Use ESLint for these \"lint\"-y checks\n    \"noFallthroughCasesInSwitch\": false,\n    \"noUnusedParameters\": false,\n    \"noUnusedLocals\": false,\n\n    // Generally good stuff for authoring modules\n    \"pretty\": true,\n    \"sourceMap\": true,\n    \"importHelpers\": true,\n\n    // Generally good stuff for hacking out a project quickly\n    \"allowJs\": true,\n    \"checkJs\": true,\n  },\n}\n```\n\n</details>\n\n### Library\n\nThe options I commonly use for authoring libraries\n\n**TODO**\n\n## No semver\n\n**This package does not follow semver.** The major version number follows the\nNode.js version that it targets (ref: `@tsconfig/node22` for example), but\nactual updates follow Benjie's ever-changing preferences. Since TypeScript is a\ndevelopment-only concern this should only ever cause build-time failures (even\nwith production type stripping, all types are simply ignored).\n\n## Contributing\n\n**These are my personal preferences** and although input is welcome, do not\nexpect your PR to be merged if I don't think it will benefit my projects or is\nsimply not to my taste.\n\nIf you notice that I've added a flag which is implied by another flag, please do\nsend a PR to remove it. I do not want redundancy in these configs.\n","readmeFilename":"README.md"}