@julr/tooling-configs
Version:
Shared tooling configs: TSConfig, OXC (oxlint + oxfmt)
85 lines (84 loc) • 2.01 kB
JavaScript
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 };