TypeScript Library Development
Patterns for authoring high-quality TypeScript libraries, extracted from studying unocss, shiki, unplugin, vite, vitest, vueuse, zod, trpc, drizzle-orm, and more.
When to Use
- •Starting a new TypeScript library (single or monorepo)
- •Setting up package.json exports for dual CJS/ESM
- •Configuring tsconfig for library development
- •Choosing build tools (tsdown, unbuild)
- •Designing type-safe APIs (builder, factory, plugin patterns)
- •Writing advanced TypeScript types
- •Setting up vitest for library testing
- •Configuring release workflow and CI
For Nuxt module development: use nuxt-modules skill
Quick Reference
| Working on... | Load file |
|---|---|
| New project setup | references/project-setup.md |
| Package exports | references/package-exports.md |
| tsconfig options | references/typescript-config.md |
| Build configuration | references/build-tooling.md |
| API design patterns | references/api-design.md |
| Type inference tricks | references/type-patterns.md |
| Testing setup | references/testing.md |
| Release workflow | references/release.md |
| CI/CD setup | references/ci-workflows.md |
Key Principles
- •ESM-first:
"type": "module"with.mjsoutputs - •Dual format: always support both CJS and ESM consumers
- •
moduleResolution: "Bundler"for modern TypeScript - •tsdown for most builds, unbuild for complex cases
- •Smart defaults: detect environment, don't force config
- •Tree-shakeable: lazy getters, proper
sideEffects: false
Token efficiency: Main skill ~300 tokens, each reference ~800-1200 tokens