Photo by Iñaki del Olmo on Unsplash
How to create and publish a TypeScript library with ease
3 min read
For the reasons mentioned above, I created a TypeScript library template you can use as a starting point for your library. It is based on my experience and best practices from the TypeScript community (this is usually subjective), and it includes everything you need for developing, testing, documenting, and publishing your library. This article will explain what this template offers, how to use it, and how to customize it for your needs.
What is typescript-library-template?
The typescript-library-template is a GitHub repository that you can use as a template for creating your own TypeScript library. It has the following features:
TypeScript: as the primary language for writing your library code. It also includes some recommended settings for the
AVA: as the testing framework for writing and running unit tests for your library. It also supports code coverage reports with Istanbul (NYC).
Typedoc: as the documentation generator for creating API documentation for your library from your TypeScript comments.
Prettier: as the code formatter for keeping your code style consistent and readable.
ESLint (typescript-eslint): for static code analysis.
Husky and Lint-staged: The template uses Husky and Lint-staged to run pre-commit hooks that ensure your code is formatted, linted, tested, and documented before committing.
How to use typescript-library-template?
I will mention just a couple of commands below. You can find more information in the README.md file.
Using typescript-library-template is very easy. You need to follow these steps:
Click the "Use this template" button on the GitHub repository page. This will create a new repository based on this template under your account.
Clone or download your new repository to your local machine.
yarn installto install all the dependencies.
Start developing your library by editing the
src/index.tsfile (or adding more files under
src). Using AVA syntax, you can write unit tests using .spec.ts or .test.ts suffixes.
npm run buildor
yarn buildto build your library. This will generate multiple output files under the
npm run testor
yarn testto run all unit tests using AVA.
To generate a code coverage report under the
npm run cov.
npm run docor
yarn docto generate API documentation using Typedoc. This will create an HTML file under
npm run fixor
yarn fixto format all source files using Prettier.
Commit your changes (it will activate a pre-commit hook that will perform test and linting/formatting)
Push your changes to GitHub.
How to customize typescript-library-template?
You can customize the typescript-library-template according to your preferences. Add files, change configurations, and remove whatever you find unimportant to your liking.