openpencil/oxlint.structure.json
Danila Poyarkov 4d3e16c0a2 chore(lint): ban broad function types
- Add structural lint rules for broad Function usage and globalThis deletion outside tests
- Type design JSX component factories with an explicit callable signature
- Replace remaining broad Kiwi serialization test records with unknown values
2026-05-06 00:48:57 +03:00

66 lines
2.7 KiB
JSON

{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"jsPlugins": ["./lint/plugin.js"],
"env": {
"browser": true,
"es2024": true
},
"overrides": [
{
"files": ["tests/**/*.ts"],
"rules": {
"no-unused-vars": "off"
}
},
{
"files": ["packages/core/src/kiwi/kiwi-schema/**"],
"rules": {
"typescript/no-explicit-any": "off"
}
}
],
"rules": {
"open-pencil/no-legacy-app-imports": "error",
"open-pencil/no-vue-self-package-imports": "error",
"open-pencil/no-cross-package-source-imports": "error",
"open-pencil/no-core-parent-relative-imports": "error",
"open-pencil/no-mcp-parent-relative-imports": "error",
"open-pencil/no-vue-parent-relative-imports": "error",
"open-pencil/no-stale-vite-app-paths": "error",
"open-pencil/no-cli-parent-relative-imports": "error",
"open-pencil/no-root-demo-module": "error",
"open-pencil/no-mcp-core-barrel-imports": "error",
"open-pencil/no-cli-core-barrel-imports": "error",
"open-pencil/no-script-core-barrel-imports": "error",
"open-pencil/no-core-self-package-imports": "error",
"open-pencil/no-inline-prompt-constants": "error",
"open-pencil/no-legacy-app-support-imports": "error",
"open-pencil/no-app-vue-core-barrel-imports": "error",
"open-pencil/no-app-imports-in-packages": "error",
"open-pencil/no-core-framework-imports": "error",
"open-pencil/no-direct-storage-access": "error",
"open-pencil/no-legacy-shim-files": "error",
"open-pencil/no-legacy-test-app-imports": "error",
"open-pencil/no-test-core-source-imports": "error",
"open-pencil/no-broad-double-cast": "error",
"open-pencil/no-unknown-record-double-cast": "error",
"open-pencil/no-ts-suppression-comments": "error",
"open-pencil/no-function-type": "error",
"open-pencil/no-reflect-delete-global-this-outside-tests": "error",
"typescript/no-explicit-any": "error",
"open-pencil/no-core-browser-globals": "error",
"open-pencil/no-direct-graph-emitter-subscriptions": "error",
"open-pencil/no-on-unmounted-in-composition-roots": "error",
"open-pencil/no-composable-state-wrappers": "error",
"open-pencil/prefer-vueuse-intervals": "error",
"open-pencil/prefer-vueuse-timeouts": "error",
"open-pencil/max-composition-root-lines": ["error", { "max": 260 }],
"open-pencil/vue-component-file-pascal-case": "error",
"open-pencil/component-namespace-pascal-case": "error",
"open-pencil/non-component-source-directories-kebab-case": "error",
"open-pencil/no-component-root-sibling-folder": "error",
"open-pencil/no-flat-kiwi-modules": "error"
},
"ignorePatterns": ["node_modules", "dist", "desktop"]
}