bump package version to 2.1.1
[squeep-api-dingus] / eslint.config.js
1 'use strict';
2 const globals = require('globals');
3 const js = require('@eslint/js');
4 const jsdoc = require('eslint-plugin-jsdoc');
5 const node = require('eslint-plugin-n');
6 const security = require('eslint-plugin-security');
7 const sonarjs = require('eslint-plugin-sonarjs');
8
9 const { FlatCompat } = require('@eslint/eslintrc');
10 const compat = new FlatCompat();
11
12 module.exports = [
13 js.configs.recommended,
14 ...compat.config(node.configs.recommended),
15 security.configs.recommended,
16 ...compat.config(sonarjs.configs.recommended),
17 jsdoc.configs['flat/recommended'],
18 {
19 files: [ '**/*.js' ],
20 plugins: {
21 node,
22 security,
23 sonarjs,
24 jsdoc,
25 },
26 languageOptions: {
27 ecmaVersion: 2023,
28 sourceType: 'script',
29 },
30 rules: {
31 'array-element-newline': [
32 'error',
33 'consistent',
34 ],
35 'arrow-parens': [
36 'error',
37 'always',
38 ],
39 'arrow-spacing': [
40 'error',
41 {
42 'after': true,
43 'before': true,
44 },
45 ],
46 'block-scoped-var': 'error',
47 'block-spacing': 'error',
48 'brace-style': 'error',
49 'callback-return': 'error',
50 'camelcase': 'error',
51 'capitalized-comments': 'warn',
52 'class-methods-use-this': 'error',
53 'comma-dangle': [
54 'error',
55 'always-multiline',
56 ],
57 'comma-spacing': [
58 'error',
59 {
60 'after': true,
61 'before': false,
62 },
63 ],
64 'comma-style': [
65 'error',
66 'last',
67 ],
68 'indent': [
69 'warn',
70 2,
71 {
72 'SwitchCase': 1,
73 },
74 ],
75 'sonarjs/cognitive-complexity': 'warn',
76 'keyword-spacing': 'error',
77 'linebreak-style': [
78 'error',
79 'unix',
80 ],
81 'no-unused-vars': [
82 'error', {
83 'varsIgnorePattern': '^_',
84 },
85 ],
86 'object-curly-spacing': [
87 'error',
88 'always',
89 ],
90 'prefer-const': 'error',
91 'quotes': [
92 'error',
93 'single',
94 ],
95 'semi': [
96 'error',
97 'always',
98 ],
99 'strict': 'error',
100 'vars-on-top': 'error',
101 },
102 },
103 {
104 files: ['test/**'],
105 languageOptions: {
106 globals: {
107 ...globals.mocha,
108 },
109 },
110 rules: {
111 "n/no-unpublished-require": "off",
112 },
113 },
114 ];