eslint-config-brightspace
Common Brightspace eslint configs.
Installation
npm install eslint-config-brightspace
Usage
To use a shared configuration without any customizations, export it from a eslint.config.js
file at the project root:
export { nodeConfig as default } from 'eslint-config-brightspace';
Shared configurations can also be included in a custom configuration:
import { nodeConfig } from 'eslint-config-brightspace';
export default [
...nodeConfig,
];
Additional File Extensions
Include extensions beyond .js
files using the addExtenstion
helper function:
import { addExtensions, nodeConfig } from 'eslint-config-brightspace';
export default addExtensions(nodeConfig, ['.js','.html']);
Different Configurations for Different Directories
To include different configurations for specific directories, use the setDirectoryConfigs
helper function. This replaces the configuration hierarchy from eslint8
.
Include the global configuration and specify the directory configurations. These will apply to all files inside the directory and recursively to any of its subdirectories.
import { litConfig, nodeConfig, setDirectoryConfigs, testingConfig } from 'eslint-config-brightspace';
export default setDirectoryConfigs(
litConfig,
{
'test': testingConfig,
'test/cli': nodeConfig
}
);
Note that each set configuration will force all prior configurations to ignore it. For example, for the above configuration, litConfig
will ignore any files in the test
directory; and testingConfig
will ignore any files in the test/cli
directory.
Environment Specific Configs
Environment | Description |
---|
browserConfig | use with code that runs in a browser |
litConfig | use with Lit projects |
testingConfig | use with @brightspace-ui/testing test code |
nodeConfig | use with Node.js projects |
reactConfig | use with React projects |
Example:
export { nodeConfig as default } from 'eslint-config-brightspace';
See the eslint rules for more details on rule configuration. See the eslint shareable configs for more details on creating configs.
Developing and Contributing
After cloning the repo, run npm install
to install dependencies.
Versioning and Releasing
This repo is configured to use semantic-release
. Commits prefixed with fix:
and feat:
will trigger patch and minor releases when merged to main
.
To learn how to create major releases and release from maintenance branches, refer to the semantic-release GitHub Action documentation.