- Home
- Skills
- Onmax
- Nuxt Skills
- Ts Library
ts-library_skill
- TypeScript
431
GitHub Stars
1
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill onmax/nuxt-skills --skill ts-library- SKILL.md2.4 KB
Overview
This skill helps authors build production-ready TypeScript libraries with practical patterns for project setup, exports, build tooling, API design, testing, and releases. It distills conventions used by 20+ high-quality ecosystem libraries so you can adopt ESM-first, dual-format, and type-safe workflows quickly. Use it to standardize tooling and avoid common pitfalls when publishing packages.
How this skill works
The skill inspects common library concerns: package exports, tsconfig and module resolution, build tool choice (tsdown or unbuild), output formats, and test configuration. It recommends concrete file layouts, export maps, and build pipelines, and provides API design patterns (builder, factory, plugin) plus advanced type inference techniques. It also outlines CI/release workflows and test setups for reliable releases.
When to use it
- Starting a new TypeScript library (single package or monorepo)
- Configuring package.json exports for both CJS and ESM consumers
- Choosing a build toolchain (tsdown for typical libraries, unbuild for complex needs)
- Designing type-safe public APIs and advanced type inference
- Setting up vitest-based testing and automated release CI
Best practices
- Prefer ESM-first sources with dual outputs (ESM and CJS) and clear export maps
- Use moduleResolution: "Bundler" and strict tsconfig options for predictable types
- Keep runtime abstractions minimal; expose tree-shakeable APIs and mark sideEffects: false
- Choose tsdown for most builds; switch to unbuild when rollups, polyfills, or multiple targets are required
- Provide smart defaults and runtime environment detection rather than forcing user config
Example use cases
- Create a library that publishes both .mjs and .cjs builds while keeping accurate type declarations
- Design a plugin API with a factory pattern to preserve inference and extensibility
- Set up CI to run vitest, type checks, and automated release on tags
- Migrate an older CJS package to ESM-first while maintaining compatibility for consumers
- Structure a monorepo with consistent tsconfigs and per-package export maps
FAQ
Prefer ESM-first sources but provide CJS builds if you need to support older tooling or Node versions. Use export maps to control conditional resolution.
When to choose tsdown vs unbuild?
Start with tsdown for straightforward libraries; choose unbuild when you need multiple targets, complex rollups, or extra bundler features.