@factorn/ts-config
v0.2.0
Published
Shared TypeScript compiler presets for Factorn projects
Readme
@factorn/ts-config
Shared TypeScript compiler presets for Factorn projects.
Presets
All presets inherit from base.json unless noted.
base.json
Strict ES2025 settings with bundler module resolution, declaration output, and verbatimModuleSyntax. Suitable as a foundation or for packages that define their own include/compilerOptions on top.
tsdown.json
Extends base.json with noEmit: true. Use for packages built by tsdown where the bundler emits output.
node-library.json
Extends tsdown.json with types: ["node"]. For Node-targeted libraries.
ts-library.json
Extends tsdown.json with types: [] (explicit, though this is the TypeScript 7 default). For libraries that should not pull in ambient Node or DOM types.
react.json
Extends base.json with the DOM lib (which includes DOM.Iterable since TypeScript 6), react-jsx, noEmit, and the typescript-plugin-css-modules plugin for typed CSS module imports.
Note: the TypeScript 7 language server does not support language service plugins yet, so typed CSS modules only work in editors falling back to the TypeScript 6 language server.
tscbuilds are unaffected.
react-app.json / react-library.json
Aliases of react.json.
Usage
{
"extends": "@factorn/ts-config/node-library.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "dist"
},
"include": ["src"]
}TypeScript 7 notes
These presets target TypeScript 7 and rely on its new defaults:
typesdefaults to[], so ambient type packages must be listed explicitly (asnode-library.jsondoes for@types/node).rootDirdefaults to the directory containing yourtsconfig.json. If your sources live insrc/and you emit withtsc, setrootDir: "src"in your own config (path options are resolved relative to the file that defines them, so presets cannot set it for you).esModuleInterop,allowSyntheticDefaultImports,alwaysStrict, andforceConsistentCasingInFileNamesare always on and no longer set here.
Choosing a preset
| Project type | Preset |
| --------------------------- | ---------------------------------------- |
| Node library (tsdown) | node-library.json |
| Generic TS library (tsdown) | ts-library.json |
| React app or component lib | react-app.json or react-library.json |
| Custom / non-standard build | base.json or tsdown.json |
