eslint-config-amex
Version:
American Express' ESLint config
39 lines (34 loc) • 1.66 kB
JavaScript
/*
* Copyright (c) 2026 American Express Travel Related Services Company, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
import { defineConfig } from "eslint/config";
import testConfig from "./test-config.js";
import tsConfig from "./ts-config.js";
import { JS_AND_TS_FILES_IN_TEST_DIR } from "./constants/index.js";
const amexTsTestConfig = (overrides = {}) => defineConfig([
{
name: "eslint-config-amex/ts-test-config",
files: overrides.files ?? [JS_AND_TS_FILES_IN_TEST_DIR],
...(overrides.ignores ? { ignores: overrides.ignores } : []),
extends: [testConfig({ files: overrides.files ?? [JS_AND_TS_FILES_IN_TEST_DIR] }), tsConfig({ files: overrides.files ?? [JS_AND_TS_FILES_IN_TEST_DIR]})],
rules: {
// this rule is turned off in `testConfig`
// but needs to be turned off again because `tsConfig` extends `baseConfig` which has the rule turned on
"react/jsx-props-no-spreading": 0,
// allow the use of the `any` type in tests, as its often required to type mocks simply
"@typescript-eslint/no-explicit-any": "off",
...overrides.rules,
},
},
]);
export default amexTsTestConfig;