Files
outline/lint-staged.config.mjs
Tom Moor 8989287e8a perf: Add missing indexes on foreign keys referencing documents (#12473)
* perf: Add missing indexes on foreign keys referencing documents

Cascade deletes on the documents table were forced into sequential scans
on file_operations, share_subscriptions, and access_requests because
their documentId columns lacked a usable single-column index.

Also fixes lint-staged to skip oxlint when every staged file matches an
.oxlintrc.json ignore pattern, since oxlint exits 1 in that case.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Handle oxlint no-files exit instead of mirroring ignorePatterns

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 19:56:46 -04:00

20 lines
921 B
JavaScript

// oxlint exits 1 when every input matches .oxlintrc.json ignorePatterns
// (e.g. migration-only commits). Swallow that specific case so the hook
// passes, while still surfacing real lint failures.
const oxlint = (files) =>
`bash -c 'out=$(oxlint ${files.join(" ")} --fix --type-aware 2>&1); rc=$?; printf "%s\\n" "$out"; if [ $rc -ne 0 ] && ! printf "%s" "$out" | grep -q "No files found to lint"; then exit $rc; fi'`;
export default {
// Run prettier first for formatting, then oxlint for linting, and translation updates on changes to JS and
// TypeScript files
"**/*.[tj]s?(x)": [
(f) => `prettier --write ${f.join(" ")}`,
(f) => (f.length > 20 ? `yarn lint --fix` : oxlint(f)),
() => `yarn build:i18n`,
() => "git add shared/i18n/locales/en_US/translation.json",
],
// Automatically de-duplicate packages as yarn is terrible at it
"(yarn.lock|package.json)": () => `yarn dedupe`,
};