shinkansen-transmission
Version:
Shinkansen Transmission
113 lines (110 loc) • 2.2 kB
Plain Text
import globals from 'globals'
import jsdoc from 'eslint-plugin-jsdoc'
import merge from '@sequencemedia/eslint-merge'
import standard from '@sequencemedia/eslint-config-standard/configs/recommended/merge'
import typescript from '@sequencemedia/eslint-config-typescript/configs/recommended/merge'
export default [
{
ignores: [
'coverage'
]
},
merge(
jsdoc.configs['flat/recommended'],
{
languageOptions: {
globals: {
TransmissionTypes: 'readonly',
PropertyKey: 'readonly'
}
},
rules: {
'jsdoc/require-param-description': 'off',
'jsdoc/require-returns-description': 'off',
'jsdoc/check-tag-names': ['error', { definedTags: ['link'] }],
'jsdoc/tag-lines': [
'error',
'never',
{
tags: {
description: {
lines: 'always'
},
link: {
lines: 'always'
}
},
applyToEndTag: false,
startLines: 1
}
],
'jsdoc/lines-before-block': ['error', { lines: 1 }]
}
}
),
/**
* Standard config
*/
standard({
files: [
'**/*.{mjs,cjs,mts,cts}'
],
languageOptions: {
globals: {
...globals.node
}
},
rules: {
'@stylistic/object-curly-newline': [
'error',
{
ImportDeclaration: 'always',
ExportDeclaration: {
multiline: true,
minProperties: 2
}
}
]
}
}),
standard({
files: [
'test/**/*.{mjs,cjs,mts,cts}'
],
languageOptions: {
globals: {
...globals.mocha
}
}
}),
/**
* TypeScript config
*/
typescript({
files: [
'**/*.{mts,cts}'
],
languageOptions: {
globals: {
...globals.node,
TransmissionTypes: 'readonly'
}
},
rules: {
'@typescript-eslint/max-params': [
'error',
{
max: 5
}
]
}
}),
{
files: [
'src/**/*.d.{mts,cts}'
],
rules: {
'no-redeclare': 'off'
}
}
]