1import { definePlugin } from "@oxlint/plugins";
2
3import maxSettingsDescriptionLength from "./rules/max-settings-description-length.ts";
4import namespaceNodeImports from "./rules/namespace-node-imports.ts";
5import noDomTestEnvironment from "./rules/no-dom-test-environment.ts";
6import noEmDashCopy from "./rules/no-em-dash-copy.ts";
7import noFrameWaitsInBrowserTests from "./rules/no-frame-waits-in-browser-tests.ts";
8import noGlobalProcessRuntime from "./rules/no-global-process-runtime.ts";
9import noHermesUnsupportedApis from "./rules/no-hermes-unsupported-apis.ts";
10import noHooklessUseFunction from "./rules/no-hookless-use-function.ts";
11import noInlineSchemaCompile from "./rules/no-inline-schema-compile.ts";
12import noLowValueComments from "./rules/no-low-value-comments.ts";
13import noManualMemo from "./rules/no-manual-memo.ts";
14import noManualEffectRuntimeInTests from "./rules/no-manual-effect-runtime-in-tests.ts";
15import noMobileUniwindThemeEscapeHatches from "./rules/no-mobile-uniwind-theme-escape-hatches.ts";
16import noAmbiguousDetailNavigation from "./rules/no-ambiguous-detail-navigation.ts";
17import noMobilePullRequestGlyphLiterals from "./rules/no-mobile-pull-request-glyph-literals.ts";
18import noNativeTitleTooltip from "./rules/no-native-title-tooltip.ts";
19import noSparklesIcon from "./rules/no-sparkles-icon.ts";
20import noUnreasonedStateSync from "./rules/no-unreasoned-state-sync.ts";
21import requireRegisteredListScroll from "./rules/require-registered-list-scroll.ts";
22import noOutsetStateIndicators from "./rules/no-outset-state-indicators.ts";
23import noPollingLoopInTests from "./rules/no-polling-loop-in-tests.ts";
24import noRawMcpRegistration from "./rules/no-raw-mcp-registration.ts";
25import noRawResizeObserver from "./rules/no-raw-resize-observer.ts";
26import noRealTimeWaitInTests from "./rules/no-real-time-wait-in-tests.ts";
27import noTestInLoop from "./rules/no-test-in-loop.ts";
28import noTestTimeoutOrUnreasonedSkip from "./rules/no-test-timeout-or-unreasoned-skip.ts";
29import noRpcPermissionBypass from "./rules/no-rpc-permission-bypass.ts";
30import noUnscopedHas from "./rules/no-unscoped-has.ts";
31import noWallClockInTests from "./rules/no-wall-clock-in-tests.ts";
32import preferCatchTags from "./rules/prefer-catch-tags.ts";
33import preferEffectFn from "./rules/prefer-effect-fn.ts";
34import requireCenteredScrollGutter from "./rules/require-centered-scroll-gutter.ts";
35import requireDisposableRender from "./rules/require-disposable-render.ts";
36import requireSuppressionReason from "./rules/require-suppression-reason.ts";
37
38export default definePlugin({
39 meta: {
40 name: "t3code",
41 },
42 rules: {
43 "max-settings-description-length": maxSettingsDescriptionLength,
44 "namespace-node-imports": namespaceNodeImports,
45 "no-dom-test-environment": noDomTestEnvironment,
46 "no-em-dash-copy": noEmDashCopy,
47 "no-frame-waits-in-browser-tests": noFrameWaitsInBrowserTests,
48 "no-global-process-runtime": noGlobalProcessRuntime,
49 "no-hermes-unsupported-apis": noHermesUnsupportedApis,
50 "no-hookless-use-function": noHooklessUseFunction,
51 "no-inline-schema-compile": noInlineSchemaCompile,
52 "no-low-value-comments": noLowValueComments,
53 "no-manual-effect-runtime-in-tests": noManualEffectRuntimeInTests,
54 "no-manual-memo": noManualMemo,
55 "no-mobile-uniwind-theme-escape-hatches": noMobileUniwindThemeEscapeHatches,
56 "no-ambiguous-detail-navigation": noAmbiguousDetailNavigation,
57 "no-mobile-pull-request-glyph-literals": noMobilePullRequestGlyphLiterals,
58 "no-native-title-tooltip": noNativeTitleTooltip,
59 "no-sparkles-icon": noSparklesIcon,
60 "no-unreasoned-state-sync": noUnreasonedStateSync,
61 "require-registered-list-scroll": requireRegisteredListScroll,
62 "no-outset-state-indicators": noOutsetStateIndicators,
63 "no-polling-loop-in-tests": noPollingLoopInTests,
64 "no-raw-mcp-registration": noRawMcpRegistration,
65 "no-raw-resize-observer": noRawResizeObserver,
66 "no-real-time-wait-in-tests": noRealTimeWaitInTests,
67 "no-test-in-loop": noTestInLoop,
68 "no-test-timeout-or-unreasoned-skip": noTestTimeoutOrUnreasonedSkip,
69 "no-rpc-permission-bypass": noRpcPermissionBypass,
70 "no-unscoped-has": noUnscopedHas,
71 "no-wall-clock-in-tests": noWallClockInTests,
72 "prefer-catch-tags": preferCatchTags,
73 "prefer-effect-fn": preferEffectFn,
74 "require-centered-scroll-gutter": requireCenteredScrollGutter,
75 "require-disposable-render": requireDisposableRender,
76 "require-suppression-reason": requireSuppressionReason,
77 },
78});