tsconfig.json

This commit is contained in:
Chris Wanstrath 2026-02-04 09:51:58 -08:00
parent b2d7c72fee
commit a3f36a0c98

View File

@ -232,13 +232,46 @@ A tool is just an app that is displayed in a tab and an iframe on each app's pag
### Minimal Tool Structure ### Minimal Tool Structure
A tool needs three files at minimum: A tool needs four files at minimum:
**.npmrc** **.npmrc**
``` ```
registry=https://npm.nose.space registry=https://npm.nose.space
``` ```
**tsconfig.json**
```json
{
"compilerOptions": {
"lib": ["ESNext"],
"target": "ESNext",
"module": "Preserve",
"moduleDetection": "force",
"jsx": "react-jsx",
"jsxImportSource": "hono/jsx",
"allowJs": true,
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"verbatimModuleSyntax": true,
"noEmit": true,
"strict": true,
"skipLibCheck": true,
"noFallthroughCasesInSwitch": true,
"noUncheckedIndexedAccess": true,
"noImplicitOverride": true,
"noUnusedLocals": false,
"noUnusedParameters": false,
"noPropertyAccessFromIndexSignature": false,
"baseUrl": ".",
"paths": {
"$*": ["src/server/*"],
"#*": ["src/client/*"],
"@*": ["src/shared/*"]
}
}
}
```
**package.json** **package.json**
```json ```json
{ {
@ -516,12 +549,13 @@ watch(APPS_DIR, { recursive: true }, (_event, filename) => {
### Checklist for New Tools ### Checklist for New Tools
1. [ ] `.npmrc` contains `registry=https://npm.nose.space` 1. [ ] `.npmrc` contains `registry=https://npm.nose.space`
2. [ ] `package.json` has `toes.tool: true` and `toes.icon` 2. [ ] `tsconfig.json` matches the exact config shown above (do not improvise)
3. [ ] `scripts.toes` uses `bun run --watch index.tsx` 3. [ ] `package.json` has `toes.tool: true` and `toes.icon`
4. [ ] Dependencies include `@because/forge`, `@because/hype`, `@because/toes` 4. [ ] `scripts.toes` uses `bun run --watch index.tsx`
5. [ ] Import `baseStyles`, `ToolScript`, `theme` from `@because/toes/tools` 5. [ ] Dependencies include `@because/forge`, `@because/hype`, `@because/toes`
6. [ ] Layout body includes `<ToolScript />` 6. [ ] Import `baseStyles`, `ToolScript`, `theme` from `@because/toes/tools`
7. [ ] Styles served at `/styles.css` with `baseStyles + stylesToCSS()` 7. [ ] Layout body includes `<ToolScript />`
8. [ ] Main route handles missing `?app` parameter gracefully 8. [ ] Styles served at `/styles.css` with `baseStyles + stylesToCSS()`
9. [ ] Uses `APPS_DIR/<app>/current` for file paths 9. [ ] Main route handles missing `?app` parameter gracefully
10. [ ] Exports `app.defaults` as default export 10. [ ] Uses `APPS_DIR/<app>/current` for file paths
11. [ ] Exports `app.defaults` as default export