https://github.com/digitalbazaar/eslint-config-digitalbazaar
https://github.com/digitalbazaar/eslint-config-digitalbazaar
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/digitalbazaar/eslint-config-digitalbazaar
- Owner: digitalbazaar
- License: bsd-3-clause
- Created: 2019-01-30T14:37:17.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2024-05-02T19:56:42.000Z (about 2 years ago)
- Last Synced: 2025-04-19T11:08:37.379Z (about 1 year ago)
- Language: JavaScript
- Size: 84 KB
- Stars: 2
- Watchers: 10
- Forks: 1
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
## eslint-config-digitalbazaar
This package provides eslint rules used by Digital Bazaar as a set of extendable shared configs.
There are 6 rule sets:
1. `eslint-config-digitalbazaar`: Base rules for both node and the browser.
2. `eslint-config-digitalbazaar/import`: Rules for es6 imports in the browser and node.
3. `eslint-config-digitalbazaar/jsdoc`: Rules for JSDoc for both node and the browser.
4. `eslint-config-digitalbazaar/module`: Rules for modules for both node and the browser.
5. `eslint-config-digitalbazaar/vue`: Rules for Vue 2 projects and browser only.
6. `eslint-config-digitalbazaar/vue3`: Rules for Vue 3 projects and browser only.
## Installation
If you do not have eslint installed:
```
npm i -D eslint
npm i -D eslint-config-digitalbazaar
```
To start an eslint config file:
```
npx eslint --init
```
or rename a template from the templates dir
```
cp node_modules/eslint-config-digitalbazaar/templates/node.js ./.eslintrc.cjs
```
## Usage
All rules can be accessed via the shorthand `digitalbazaar`
or using the full module name `eslint-config-digitalbazaar`.
Eslint's documentation on [shareable configs](https://eslint.org/docs/developer-guide/shareable-configs) can be found here.
Example .eslintrc.cjs root setup:
```js
module.exports = {
root: true,
// using full module name
extends: ['eslint-config-digitalbazaar']
}
```
### Imports
To use the import rules you need to install [`eslint-plugin-import`](https://github.com/import-js/eslint-plugin-import):
```
npm i -D eslint-plugin-import
```
Example .eslintrc.cjs import setup:
```js
module.exports = {
extends: ['digitalbazaar/import']
}
```
### JSDoc
To use the JSDoc rules you will need to install [`eslint-plugin-jsdoc`](https://github.com/gajus/eslint-plugin-jsdoc):
```
npm i -D eslint-plugin-jsdoc
```
Example .eslintrc.cjs JSDoc setup:
```js
module.exports = {
// only the JSDoc rules and any rules in parent dirs
extends: ['digitalbazaar/jsdoc']
}
```
### Modules
To use ES module code rather than CommonJS, you will need to install [`eslint-plugin-unicorn`](https://github.com/sindresorhus/eslint-plugin-unicorn):
```
npm i -D eslint-plugin-unicorn
```
Example .eslintrc.cjs ESM setup:
```js
module.exports = {
// only the module rules and any rules in parent dirs
extends: ['digitalbazaar/module']
}
```
### Vue 2
To use the Vue 2 rules you will need to install [`eslint-plugin-vue`](https://eslint.vuejs.org/):
```
npm i -D eslint-plugin-vue
```
Example .eslintrc.cjs Vue setup:
```js
module.exports = {
// only the vue rules and any rules in parent dirs
extends: ['digitalbazaar/vue']
}
```
For command line use you may need to [explicitly enable linting `.vue`
files](https://eslint.vuejs.org/user-guide/#running-eslint-from-the-command-line).
### Vue 3
To use the Vue 3 rules you will need to install [`eslint-plugin-vue`](https://eslint.vuejs.org/):
```
npm i -D eslint-plugin-vue
```
Example .eslintrc.cjs Vue setup:
```js
module.exports = {
// only the vue3 rules and any rules in parent dirs
extends: ['digitalbazaar/vue3']
}
```
For command line use you may need to [explicitly enable linting `.vue`
files](https://eslint.vuejs.org/user-guide/#running-eslint-from-the-command-line).
### Composition
The rules do not depend on each other and are composable:
```js
module.exports = {
extends: [
'digitalbazaar',
'digitalbazaar/jsdoc',
'digitalbazaar/module'
'digitalbazaar/vue3'
] // 4 rule sets in one file using shorthand.
}
```
The rules can also be used together via [cascade configuration](https://eslint.org/docs/user-guide/configuring).
## Other Rules
Other rules that are not included above but can be useful:
### `unicorn/prefer-node-protocol`
Use `node:module` style for Node.js modules.
See [`unicorn/prefer-node-protocol`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-node-protocol.md).
Requires:
```
npm i -D eslint-plugin-unicorn
```
Rules:
```js
rules: {
'unicorn/prefer-node-protocol': 'error'
}
```