Nihil est sine ratione.
- Gottfried Wilhelm Leibniz
Node Standards is an opinionated collection of best practices, bundled in a way to easily configure new (and old) typescript projects.
Keeping up-to-date with project configuration is hard enough on a single repository, let alone if you have to manage a handful. With Node Standards you can centrally build your configuration, and define a project structure - and keep them up to date with a linter. Node Standards if flexible and extensible enough that you can make it work for any project.
node-standards <command>
Commands:
node-standards create <name> create a new project
node-standards lint lint the project configuration
Options:
--version Show version number [boolean]
--help Show help [boolean]
Install Node Standards using npm
:
$ npm install --save-dev @skyleague/node-standards
Node Standards takes little time to set up.
- Add Node Standards to the devDependencies
- Configure the project linting in the package.json
The package.json should adhere to the following type:
interface PackageJson {
...
"node-standards": {
type: "yargs-cli" | "library"
template?: {
// a list of files to exclude from linting
exclude?: string[]
// by default all the options are enabled
lint?: {
files?: boolean
dependencies?: boolean
devDependencies?: boolean
script?: boolean
definition?: boolean
}
}
},
...
}
Create a new project of the given type and name.
node-standards create <name>
create a new project
Positionals:
name the new package name [string] [required]
Options:
--type package type
[string] [required] [choices: "library", "yargs-cli"] [default: "library"]
--local create from local examples instead of Github artifact
[boolean] [default: true]
Ensure the project is up-to-date with the latest project structure and configuration. The --fix
setting can be used to automatically fix most issues found.
node-standards lint
lint the project configuration
Options:
--version Show version number [boolean]
--help Show help [boolean]
--fix try to fix the errors [boolean] [default: false]
In no particular order, the following libraries try to solve similar problems (albeit very different):
eslint-config-airbnb
; provides a default configuration for eslint
PR's are very welcome if you think your project is missing here.
- We aim to configure our settings to be as strict as possible. Not everyone might like this.
- Node Standards is an insanely opinionated implementation, and this may not fit your needs or vision.
SkyLeague provides Enterprise Support on this open-source library package at clients across industries. Please get in touch via https://skyleague.io
.
If you are not under Enterprise Support, feel free to raise an issue and we'll take a look at it on a best-effort basis!
This library is licensed under the MIT License (see LICENSE.md for details).
If you using this SDK without Enterprise Support, please note this (partial) MIT license clause:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND
Copyright (c) 2022, SkyLeague Technologies B.V.. 'SkyLeague' and the astronaut logo are trademarks of SkyLeague Technologies, registered at Chamber of Commerce in The Netherlands under number 86650564.
All product names, logos, brands, trademarks and registered trademarks are property of their respective owners. All company, product and service names used in this website are for identification purposes only. Use of these names, trademarks and brands does not imply endorsement.