Our ESLint configuration
To use this version, ensure you have eslint
version 9 or above installed. This will install all the plugins required for you. To make use of it, define an eslint.config.js
file in your repository with the following contents:
const {base, testsWithFiles} = require("@mft/eslint-config-momentumft")
module.exports = [
...base,
testsWithFiles,
]
The example above is a good starting point for JavaScript based configurations with tests defined in src/**/__tests__
and test/
directories.
If you have tests in different directories you can define the config as follows:
const {base, tests} = require("@mft/eslint-config-momentumft")
module.exports = [
...base,
{
files: ["unit-tests/**/*.js"],
...tests
}
]
This library is to help get you setup with ESLint config without having to manipulate the rules yourself manually. Keeping ESLint config files on your services small.
Below are examples when using our other helper configurations.
const {base, testsWithFiles} = require("@mft/eslint-config-momentumft")
const reactConfig = require("@mft/eslint-config-momentumft/react")
module.exports = [
...base,
...testsWithFiles,
...reactConfig
]
const {base, testsWithFiles} = require("@mft/eslint-config-momentumft")
const jsonConfig = require("@mft/eslint-config-momentumft/json")
module.exports = [
...base,
...testsWithFiles,
...jsonConfig
]
We now hav introduced a common TypeScript configuration which allows you to get started quicker than before. Simply define the config below and you are on your way:
const {baseConfigWithFiles} = require("@mft/eslint-config-momentumft/typescript")
const {base, testsWithFiles} = require("@mft/eslint-config-momentumft")
module.exports = [
...base,
...baseConfigWithFiles,
testsWithFiles,
]
If you have TypeScript files that aren't in the src
directory, then you can use the configurations baseConfig
and declarationConfig
that are defined within the same file, and specify the files you wish to have these applied to, as seen in the example below:
const {base} = require("@mft/eslint-config-momentumft")
const react = require("@mft/eslint-config-momentumft/react")
const {baseConfig, declarationConfig} = require("@mft/eslint-config-momentumft/typescript")
module.exports = [
...base,
...react,
{
files: ["modules/**/*.{ts,tsx}"],
...baseConfig
},
{
files: ["modules/**/*.d.ts}"],
...declarationConfig
},
{
rules: {
"react/react-in-jsx-scope": "off",
}
}
]
NB: The main plugin we use for this config hasn't been updated to use the new ESLint configuration, therefore the certainty of it being correct is unknown. This plugin only seems to be used by one service so may not be an issue for most.
const {base, testsWithFiles} = require("@mft/eslint-config-momentumft")
const fpConfig = require("@mft/eslint-config-momentumft/fp")
module.exports = [
...base,
...testsWithFiles,
...fpConfig
]