What is Tosin?
Tosin is an opinionated way to start the creation of an npm package. It comes with everything included, from CI to a documentation website. Below is a list of its features.
Continuous integration is useful to keep an eye of the status of your repository. Do your branch build and pass all of the tests? You can do all of that manually of course but with external contributors and pull requests, you want a way to automate the process.
Tosin comes with a simple configuration for circleci and one for Travis-ci.
- CircleCi will build the package with npm install, lint to make sure there is no code that is error-prone, and run the test. Take a look at the
Next Stepssection on how to add code coverage on the master branch.
- Travis configuration will only test your package with another version of Nodejs. You can see it as a backup in case CircleCI as a problem preventing it from building your package. You can also easily understand if your build failed the test by looking at the Travis status. Since CircleCI is doing more, it can fail even though your tests pass with success.
You want to replace all of that with GitHub Actions? Take a look at the section
GitHub Actions below.
Linter + Prettier
Eslint is used for linting.
Prettier is used to format the code.
Prettier is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary.
Testing Framework Jest
GitHub files for the community
Be prepared to receive help and issues from the community. A standard Pull Request template is included as well as three issue template:
- A bug report template
- A feature request template
- A standard issue template for everything else
A code of conduct is present to make sure everyone feels welcome to contribute.
Build system with Rollup
Rollup is used to compile your code. You can use ES modules and compile your code in es and commonjs format.
Ready for autocompletion
Do you want to provide autocompletion when someone installed your package? If you do, the
types/index.d.ts is ready to be completed. It is set in
package.json as the file containing your types. Most of the IDE and code editor will use this file to provide auto-completion. It is a great way to improve developer experience.
Documentation website ready to be deployed
GitHub offers the possibility of hosting a website per repository since a long time now. You can take advantage of that to create a documentation website for your package and hosting it directly on GitHub.
Tosin comes with vuepress and a script to deploy the website to GitHub Pages. The script will deploy the files to the gh-pages branch of your repository.
Use it the same way you would use
npx tosin init
Once done, take a look at the documentation to do the next steps.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Tosin use SemVer for versioning.
This project is licensed under the MIT License - see the LICENSE file for details.