ts-library

$npx skills add onmax/nuxt-skills --skill ts-library
SKILL.md

Ts Library

Patterns for authoring high-quality TypeScript libraries, extracted from studying unocss, shiki, unplugin, vite, vitest, vueuse, zod, trpc, drizzle-orm, and more. - Starting a new TypeScript library (single or monorepo) - Setting up package.json exports for dual CJS/ESM

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
Package exports
tsconfig options
Build configuration
ESLint config
API design patterns
Type inference tricks
Testing setup
Release workflow
CI/CD setup

Loading Files

Consider loading these reference files based on your task:
DO NOT load all files at once. Load only what's relevant to your current task.

Key Principles

  • ESM-first: "type": "module" with .mjs outputs
  • 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