UNPKG

@julr/tooling-configs

Version:

Shared tooling configs: TSConfig, OXC (oxlint + oxfmt)

85 lines (84 loc) 2.01 kB
import { t as IGNORE_PATTERNS } from "../shared-CoSP_HvN.mjs"; import { defineConfig } from "oxlint"; //#region src/oxc/lint.ts function adonisjsPreset() { return defineConfig({ "jsPlugins": ["@adonisjs/eslint-plugin"], "rules": { "@adonisjs/prefer-lazy-controller-import": "error", "@adonisjs/prefer-lazy-listener-import": "error", "typescript/triple-slash-reference": "off", "@typescript-eslint/no-floating-promises": ["error", { allowForKnownSafePromises: [{ from: "package", package: "@adonisjs/lucid", name: [ "ExcutableQueryBuilderContract", "ModelQueryBuilderContract", "DatabaseQueryBuilderContract", "InsertQueryBuilderContract", "RawQueryBuilderContract", "ChainableContract", "RelationQueryBuilderContract", "RelationSubQueryBuilderContract", "HasManyQueryBuilderContract", "HasManyThroughQueryBuilderContract", "ManyToManyQueryBuilderContract", "ManyToManySubQueryBuilderContract" ] }, { from: "package", package: "knex", name: "QueryBuilder" }] }] } }); } function perfectionistPreset() { return defineConfig({ jsPlugins: ["eslint-plugin-perfectionist"], rules: { "perfectionist/sort-imports": ["error", { type: "line-length", order: "asc", internalPattern: ["^@/.*", "^~/.*"], groups: [ ["side-effect", "side-effect-style"], ["builtin", "external"], [ "internal", "subpath", "parent", "sibling", "index", "style", "unknown" ] ] }] } }); } function defaultPreset() { return defineConfig({ ignorePatterns: IGNORE_PATTERNS, plugins: [ "typescript", "node", "eslint", "oxc", "react", "react-perf" ], rules: {} }); } function julrPreset(config = {}) { return defineConfig({ extends: [ defaultPreset(), config.adonisjs ? adonisjsPreset() : null, config.perfectionist ? perfectionistPreset() : null ].filter(Boolean), rules: {} }); } //#endregion export { julrPreset };