@dataroadinc/setup-auth
Version:
CLI tool and programmatic API for automated OAuth setup across cloud platforms
125 lines (117 loc) • 3.29 kB
JavaScript
// eslint.config.mjs
import { dirname } from "path"
import { fileURLToPath } from "url"
import js from "@eslint/js"
import typescript from "@typescript-eslint/eslint-plugin"
import tsParser from "@typescript-eslint/parser"
import prettier from "eslint-config-prettier"
import globals from "globals"
const __filename = fileURLToPath(import.meta.url)
const __dirname = dirname(__filename)
export default [
// Base JavaScript configuration
js.configs.recommended,
// TypeScript configuration for source files
{
files: ["src/**/*.ts"],
ignores: [
"src/**/*.test.ts",
"src/**/*.int.test.ts",
"src/utils/vercel/**/*.ts",
],
plugins: {
"@typescript-eslint": typescript,
},
languageOptions: {
parser: tsParser,
globals: {
...globals.node,
},
parserOptions: {
project: ["./tsconfig.json"],
tsconfigRootDir: __dirname,
ecmaVersion: "latest",
sourceType: "module",
},
},
rules: {
...typescript.configs.recommended.rules,
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/explicit-function-return-type": "error",
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": "error",
"no-undef": "error",
"no-useless-escape": "error",
},
},
// TypeScript configuration for Vercel API files (temporarily allow any types)
{
files: ["src/utils/vercel/**/*.ts"],
plugins: {
"@typescript-eslint": typescript,
},
languageOptions: {
parser: tsParser,
globals: {
...globals.node,
},
parserOptions: {
project: ["./tsconfig.json"],
tsconfigRootDir: __dirname,
ecmaVersion: "latest",
sourceType: "module",
},
},
rules: {
...typescript.configs.recommended.rules,
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/explicit-function-return-type": "error",
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": "error",
"no-undef": "error",
"no-useless-escape": "error",
},
},
// TypeScript configuration for test files (Vitest)
{
files: ["src/**/*.test.ts", "src/**/*.int.test.ts"],
plugins: {
"@typescript-eslint": typescript,
},
languageOptions: {
parser: tsParser,
globals: {
...globals.node,
describe: "readonly",
it: "readonly",
test: "readonly",
expect: "readonly",
beforeEach: "readonly",
afterEach: "readonly",
beforeAll: "readonly",
afterAll: "readonly",
},
parserOptions: {
project: ["./tsconfig.json"],
tsconfigRootDir: __dirname,
ecmaVersion: "latest",
sourceType: "module",
},
},
rules: {
...typescript.configs.recommended.rules,
"@typescript-eslint/no-explicit-any": "warn",
"@typescript-eslint/explicit-function-return-type": "off",
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": "warn",
"no-undef": "error",
"no-useless-escape": "error",
},
},
// Ignore patterns
{
ignores: ["dist/", "build/", "node_modules/", ".idea/", ".tmp/"],
},
// Prettier configuration
prettier,
]