This package provides eslint rules used by Digital Bazaar as a set of extendable shared configs.
There are 6 rule sets:
eslint-config-digitalbazaar: Base rules for both node and the browser.eslint-config-digitalbazaar/import: Rules for es6 imports in the browser and node.eslint-config-digitalbazaar/jsdoc: Rules for JSDoc for both node and the browser.eslint-config-digitalbazaar/module: Rules for modules for both node and the browser.eslint-config-digitalbazaar/vue2: Rules for Vue 2 projects and browser only.eslint-config-digitalbazaar/vue3: Rules for Vue 3 projects and browser only.
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 ./eslint.config.js
All rules can be accessed via the shorthand digitalbazaar
or using the full module name eslint-config-digitalbazaar.
ESLint's documentation on shareable configs can be found here.
Example eslint.config.js root setup:
module.exports = {
root: true,
// using full module name
extends: ['eslint-config-digitalbazaar']
}To use the import rules you need to install eslint-plugin-import:
npm i -D eslint-plugin-import
Example eslint.config.js import setup:
module.exports = {
extends: ['digitalbazaar/import']
}To use the JSDoc rules you will need to install eslint-plugin-jsdoc:
npm i -D eslint-plugin-jsdoc
Example eslint.config.js JSDoc setup:
module.exports = {
// only the JSDoc rules and any rules in parent dirs
extends: ['digitalbazaar/jsdoc']
}To use ES module code rather than CommonJS, you will need to install eslint-plugin-unicorn:
npm i -D eslint-plugin-unicorn
Example eslint.config.js ESM setup:
module.exports = {
// only the module rules and any rules in parent dirs
extends: ['digitalbazaar/module']
}To use the Vue 2 rules you will need to install eslint-plugin-vue:
npm i -D eslint-plugin-vue
Example eslint.config.js Vue setup:
module.exports = {
// only the vue rules and any rules in parent dirs
extends: ['digitalbazaar/vue2']
}For command line use you may need to explicitly enable linting .vue
files.
To use the Vue 3 rules you will need to install eslint-plugin-vue:
npm i -D eslint-plugin-vue
Example eslint.config.js Vue setup:
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.
The rules do not depend on each other and are composable:
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.
Other rules that are not included above but can be useful:
Use node:module style for Node.js modules.
See unicorn/prefer-node-protocol.
Requires:
npm i -D eslint-plugin-unicorn
Rules:
rules: {
'unicorn/prefer-node-protocol': 'error'
}