Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/skyleague/node-standards

Opinionated collection of best practices, bundled in a way to easily configure TypeScript projects.
https://github.com/skyleague/node-standards

eslint skyleague typescript

Last synced: about 1 month ago
JSON representation

Opinionated collection of best practices, bundled in a way to easily configure TypeScript projects.

Awesome Lists containing this project

README

        

# Node Standards _(@skyleague/node-standards)_


Lines of code
Version
LGTM Grade


License: MIT

> 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.

```sh
node-standards

Commands:
node-standards create create a new project
node-standards lint lint the project configuration

Options:
--version Show version number [boolean]
--help Show help [boolean]
```

## Install

Install Node Standards using [`npm`](https://www.npmjs.com/):

```console
$ npm install --save-dev @skyleague/node-standards
```

## Table of Contents

- [Install](#install)
- [Usage](#usage)
- [Create](#Create)
- [Lint](#Lint)
- [Alternative projects](#alternative-projects)
- [When not to use Node Standards?](#when-not-to-use-node-standards)
- [License](#license)

## Usage

### Configuration

Node Standards takes little time to set up.

1. Add Node Standards to the devDependencies
2. Configure the project linting in the package.json

The package.json should adhere to the following type:

```ts
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

Create a new project of the given type and name.

```console
node-standards create

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]
```

### Lint

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]
```

## Alternative projects

In no particular order, the following libraries try to solve similar problems (albeit very different):

- [`eslint-config-airbnb`](https://www.npmjs.com/package/eslint-config-airbnb); provides a default configuration for eslint

PR's are very welcome if you think your project is missing here.

## When not to use Node Standards?

- 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.

## Support

SkyLeague provides Enterprise Support on this open-source library package at clients across industries. Please get in touch via [`https://skyleague.io`](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!

## License & Copyright

This library is licensed under the MIT License (see [LICENSE.md](./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.