create-ima-app
Version:
Create a IMA.js App easily.
103 lines (100 loc) • 2.4 kB
JavaScript
module.exports = {
root: true,
ignorePatterns: ['node_modules', 'build'],
extends: [
'eslint:recommended',
'plugin:react/recommended',
'plugin:react/jsx-runtime',
'plugin:jest/recommended',
'plugin:jest/style',
'plugin:prettier/recommended',
],
rules: {
'no-console': [
'error',
{
allow: ['warn', 'error'],
},
],
// Prettier
'prettier/prettier': [
'error',
{
singleQuote: true,
semi: true,
trailingComma: 'es5',
jsxSingleQuote: true,
bracketSameLine: false,
arrowParens: 'avoid',
},
],
// React plugin overrides
'react/prop-types': 'off',
},
settings: {
react: {
version: 'detect',
},
},
parser: '@babel/eslint-parser',
parserOptions: {
sourceType: 'module',
requireConfigFile: false,
babelOptions: {
presets: ['@babel/preset-react'],
},
},
env: {
browser: true,
node: true,
es2022: true,
},
globals: {
$Debug: true,
$IMA: true,
using: true,
extend: true,
spyOn: true,
},
overrides: [
{
files: ['**/*.{ts,tsx}'],
parser: '@typescript-eslint/parser',
parserOptions: {
tsconfigRootDir: __dirname,
project: ['./tsconfig.json'],
},
extends: [
'plugin:@typescript-eslint/recommended',
'plugin:@typescript-eslint/recommended-requiring-type-checking',
],
plugins: ['@typescript-eslint'],
rules: {
'@typescript-eslint/no-unsafe-call': 'off',
'@typescript-eslint/no-unsafe-assignment': 'off',
'@typescript-eslint/no-unsafe-member-access': 'off',
'@typescript-eslint/ban-types': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/ban-ts-comment': [
'error',
{ 'ts-expect-error': 'off' },
],
'@typescript-eslint/no-unused-vars': [
'error',
{
argsIgnorePattern: '^_',
varsIgnorePattern: '^_',
destructuredArrayIgnorePattern: '^_',
ignoreRestSiblings: true,
args: 'none',
},
],
'@typescript-eslint/no-namespace': [
'error',
{ allowDeclarations: true },
],
},
},
],
};