diff --git a/apps/oxlint/test/fixtures/basic_custom_plugin/.oxlintrc.json b/apps/oxlint/test/fixtures/basic_custom_plugin/.oxlintrc.json index 609fce374189b..9d64fb3636b2d 100644 --- a/apps/oxlint/test/fixtures/basic_custom_plugin/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/basic_custom_plugin/.oxlintrc.json @@ -1,5 +1,5 @@ { - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "rules": { "basic-custom-plugin/no-debugger": "error" } diff --git a/apps/oxlint/test/fixtures/basic_custom_plugin/plugin.js b/apps/oxlint/test/fixtures/basic_custom_plugin/plugin.ts similarity index 77% rename from apps/oxlint/test/fixtures/basic_custom_plugin/plugin.js rename to apps/oxlint/test/fixtures/basic_custom_plugin/plugin.ts index d401a98de06ee..d8f0b772b32f1 100644 --- a/apps/oxlint/test/fixtures/basic_custom_plugin/plugin.js +++ b/apps/oxlint/test/fixtures/basic_custom_plugin/plugin.ts @@ -1,4 +1,6 @@ -export default { +import type { Plugin } from '../../../dist/index.js'; + +const plugin: Plugin = { meta: { name: 'basic-custom-plugin', }, @@ -17,3 +19,5 @@ export default { }, }, }; + +export default plugin; diff --git a/apps/oxlint/test/fixtures/basic_custom_plugin_many_files/.oxlintrc.json b/apps/oxlint/test/fixtures/basic_custom_plugin_many_files/.oxlintrc.json index 609fce374189b..9d64fb3636b2d 100644 --- a/apps/oxlint/test/fixtures/basic_custom_plugin_many_files/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/basic_custom_plugin_many_files/.oxlintrc.json @@ -1,5 +1,5 @@ { - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "rules": { "basic-custom-plugin/no-debugger": "error" } diff --git a/apps/oxlint/test/fixtures/basic_custom_plugin_many_files/plugin.js b/apps/oxlint/test/fixtures/basic_custom_plugin_many_files/plugin.ts similarity index 77% rename from apps/oxlint/test/fixtures/basic_custom_plugin_many_files/plugin.js rename to apps/oxlint/test/fixtures/basic_custom_plugin_many_files/plugin.ts index d401a98de06ee..d8f0b772b32f1 100644 --- a/apps/oxlint/test/fixtures/basic_custom_plugin_many_files/plugin.js +++ b/apps/oxlint/test/fixtures/basic_custom_plugin_many_files/plugin.ts @@ -1,4 +1,6 @@ -export default { +import type { Plugin } from '../../../dist/index.js'; + +const plugin: Plugin = { meta: { name: 'basic-custom-plugin', }, @@ -17,3 +19,5 @@ export default { }, }, }; + +export default plugin; diff --git a/apps/oxlint/test/fixtures/basic_custom_plugin_multiple_rules/.oxlintrc.json b/apps/oxlint/test/fixtures/basic_custom_plugin_multiple_rules/.oxlintrc.json index 2abdbca974ff5..50897d6f21757 100644 --- a/apps/oxlint/test/fixtures/basic_custom_plugin_multiple_rules/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/basic_custom_plugin_multiple_rules/.oxlintrc.json @@ -1,5 +1,5 @@ { - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "rules": { "basic-custom-plugin/no-debugger": "error", "basic-custom-plugin/no-debugger-2": "error", diff --git a/apps/oxlint/test/fixtures/basic_custom_plugin_multiple_rules/plugin.js b/apps/oxlint/test/fixtures/basic_custom_plugin_multiple_rules/plugin.ts similarity index 90% rename from apps/oxlint/test/fixtures/basic_custom_plugin_multiple_rules/plugin.js rename to apps/oxlint/test/fixtures/basic_custom_plugin_multiple_rules/plugin.ts index f01f07780343a..b09ba9139af5a 100644 --- a/apps/oxlint/test/fixtures/basic_custom_plugin_multiple_rules/plugin.js +++ b/apps/oxlint/test/fixtures/basic_custom_plugin_multiple_rules/plugin.ts @@ -1,4 +1,6 @@ -export default { +import type { Plugin } from '../../../dist/index.js'; + +const plugin: Plugin = { meta: { name: 'basic-custom-plugin', }, @@ -40,3 +42,5 @@ export default { }, }, }; + +export default plugin; diff --git a/apps/oxlint/test/fixtures/basic_custom_plugin_warn_severity/.oxlintrc.json b/apps/oxlint/test/fixtures/basic_custom_plugin_warn_severity/.oxlintrc.json index b42196762d223..7a92c43dcf652 100644 --- a/apps/oxlint/test/fixtures/basic_custom_plugin_warn_severity/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/basic_custom_plugin_warn_severity/.oxlintrc.json @@ -1,5 +1,5 @@ { - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "rules": { "basic-custom-plugin/no-debugger": "warn" } diff --git a/apps/oxlint/test/fixtures/custom_plugin_via_overrides/plugin.js b/apps/oxlint/test/fixtures/basic_custom_plugin_warn_severity/plugin.ts similarity index 77% rename from apps/oxlint/test/fixtures/custom_plugin_via_overrides/plugin.js rename to apps/oxlint/test/fixtures/basic_custom_plugin_warn_severity/plugin.ts index d401a98de06ee..d8f0b772b32f1 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_via_overrides/plugin.js +++ b/apps/oxlint/test/fixtures/basic_custom_plugin_warn_severity/plugin.ts @@ -1,4 +1,6 @@ -export default { +import type { Plugin } from '../../../dist/index.js'; + +const plugin: Plugin = { meta: { name: 'basic-custom-plugin', }, @@ -17,3 +19,5 @@ export default { }, }, }; + +export default plugin; diff --git a/apps/oxlint/test/fixtures/context_properties/.oxlintrc.json b/apps/oxlint/test/fixtures/context_properties/.oxlintrc.json index 0c767785ffa52..0f586788f5810 100644 --- a/apps/oxlint/test/fixtures/context_properties/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/context_properties/.oxlintrc.json @@ -1,5 +1,5 @@ { - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "categories": { "correctness": "off" }, "rules": { "context-plugin/log-context": "error" diff --git a/apps/oxlint/test/fixtures/context_properties/plugin.js b/apps/oxlint/test/fixtures/context_properties/plugin.ts similarity index 77% rename from apps/oxlint/test/fixtures/context_properties/plugin.js rename to apps/oxlint/test/fixtures/context_properties/plugin.ts index 2a0b74bbc3bd8..022584b4d2ab2 100644 --- a/apps/oxlint/test/fixtures/context_properties/plugin.js +++ b/apps/oxlint/test/fixtures/context_properties/plugin.ts @@ -1,14 +1,16 @@ import { sep } from 'node:path'; +import type { Plugin, Rule } from '../../../dist/index.js'; + const SPAN = { start: 0, end: 0 }; const DIR_PATH_LEN = import.meta.dirname.length + 1; const relativePath = sep === '/' - ? path => path.slice(DIR_PATH_LEN) - : path => path.slice(DIR_PATH_LEN).replace(/\\/g, '/'); + ? (path: string) => path.slice(DIR_PATH_LEN) + : (path: string) => path.slice(DIR_PATH_LEN).replace(/\\/g, '/'); -const rule = { +const rule: Rule = { create(context) { context.report({ message: `id: ${context.id}`, @@ -35,7 +37,7 @@ const rule = { }, }; -export default { +const plugin: Plugin = { meta: { name: 'context-plugin', }, @@ -43,3 +45,5 @@ export default { 'log-context': rule, }, }; + +export default plugin; diff --git a/apps/oxlint/test/fixtures/createOnce/.oxlintrc.json b/apps/oxlint/test/fixtures/createOnce/.oxlintrc.json index 5a73b5a80228e..3815e58a08cfc 100644 --- a/apps/oxlint/test/fixtures/createOnce/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/createOnce/.oxlintrc.json @@ -1,5 +1,5 @@ { - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "categories": { "correctness": "off" }, "rules": { "create-once-plugin/always-run": "error", diff --git a/apps/oxlint/test/fixtures/createOnce/plugin.js b/apps/oxlint/test/fixtures/createOnce/plugin.ts similarity index 88% rename from apps/oxlint/test/fixtures/createOnce/plugin.js rename to apps/oxlint/test/fixtures/createOnce/plugin.ts index 7eb7dbcfeac4e..376209afcc3a5 100644 --- a/apps/oxlint/test/fixtures/createOnce/plugin.js +++ b/apps/oxlint/test/fixtures/createOnce/plugin.ts @@ -1,18 +1,23 @@ import { sep } from 'node:path'; +import type { Plugin, Rule } from '../../../dist/index.js'; + const SPAN = { start: 0, end: 0 }; const DIR_PATH_LEN = import.meta.dirname.length + 1; const relativePath = sep === '/' - ? path => path.slice(DIR_PATH_LEN) - : path => path.slice(DIR_PATH_LEN).replace(/\\/g, '/'); + ? (path: string) => path.slice(DIR_PATH_LEN) + : (path: string) => path.slice(DIR_PATH_LEN).replace(/\\/g, '/'); let createOnceCallCount = 0; -const alwaysRunRule = { + +const alwaysRunRule: Rule = { createOnce(context) { createOnceCallCount++; + // `this` should be the rule object + // oxlint-disable-next-line typescript-eslint/no-this-alias const topLevelThis = this; // Check that these APIs throw here @@ -49,7 +54,7 @@ const alwaysRunRule = { }, }; -const skipRunRule = { +const skipRunRule: Rule = { createOnce(context) { return { before() { @@ -68,7 +73,7 @@ const skipRunRule = { }, }; -const beforeOnlyRule = { +const beforeOnlyRule: Rule = { createOnce(context) { return { before() { @@ -85,7 +90,7 @@ const beforeOnlyRule = { }, }; -const afterOnlyRule = { +const afterOnlyRule: Rule = { createOnce(context) { return { Identifier(node) { @@ -102,7 +107,7 @@ const afterOnlyRule = { }, }; -const noHooksRule = { +const noHooksRule: Rule = { createOnce(context) { return { Identifier(node) { @@ -115,7 +120,7 @@ const noHooksRule = { }, }; -export default { +const plugin: Plugin = { meta: { name: 'create-once-plugin', }, @@ -128,7 +133,9 @@ export default { }, }; -function tryCatch(fn) { +export default plugin; + +function tryCatch(fn: () => unknown) { try { fn(); } catch (err) { diff --git a/apps/oxlint/test/fixtures/custom_plugin_disable_directives/.oxlintrc.json b/apps/oxlint/test/fixtures/custom_plugin_disable_directives/.oxlintrc.json index bd342e8fa2f25..174ab0f1c62a2 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_disable_directives/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/custom_plugin_disable_directives/.oxlintrc.json @@ -1,5 +1,5 @@ { - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "categories": { "correctness": "off" }, "rules": { "test-plugin/no-var": "error", diff --git a/apps/oxlint/test/fixtures/custom_plugin_disable_directives/plugin.js b/apps/oxlint/test/fixtures/custom_plugin_disable_directives/plugin.ts similarity index 78% rename from apps/oxlint/test/fixtures/custom_plugin_disable_directives/plugin.js rename to apps/oxlint/test/fixtures/custom_plugin_disable_directives/plugin.ts index e562c874849d0..62ff992daa53d 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_disable_directives/plugin.js +++ b/apps/oxlint/test/fixtures/custom_plugin_disable_directives/plugin.ts @@ -1,4 +1,6 @@ -export default { +import type { Plugin } from '../../../dist/index.js'; + +const plugin: Plugin = { meta: { name: 'test-plugin', }, @@ -19,3 +21,5 @@ export default { }, }, }; + +export default plugin; diff --git a/apps/oxlint/test/fixtures/custom_plugin_import_error/.oxlintrc.json b/apps/oxlint/test/fixtures/custom_plugin_import_error/.oxlintrc.json index 81ab9e9a22252..c36bad1c7cf08 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_import_error/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/custom_plugin_import_error/.oxlintrc.json @@ -1,5 +1,5 @@ { - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "categories": { "correctness": "off" }, "rules": { "basic-custom-plugin/unknown-rule": "error" diff --git a/apps/oxlint/test/fixtures/custom_plugin_import_error/output.snap.md b/apps/oxlint/test/fixtures/custom_plugin_import_error/output.snap.md index 9297d670ca48e..bd8d5093281c2 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_import_error/output.snap.md +++ b/apps/oxlint/test/fixtures/custom_plugin_import_error/output.snap.md @@ -5,9 +5,9 @@ ``` Failed to parse configuration file. - x Failed to load JS plugin: ./plugin.js + x Failed to load JS plugin: ./plugin.ts | Error: whoops! - | at /apps/oxlint/test/fixtures/custom_plugin_import_error/plugin.js:1:7 + | at /apps/oxlint/test/fixtures/custom_plugin_import_error/plugin.ts:1:7 ``` # stderr diff --git a/apps/oxlint/test/fixtures/custom_plugin_import_error/plugin.js b/apps/oxlint/test/fixtures/custom_plugin_import_error/plugin.ts similarity index 100% rename from apps/oxlint/test/fixtures/custom_plugin_import_error/plugin.js rename to apps/oxlint/test/fixtures/custom_plugin_import_error/plugin.ts diff --git a/apps/oxlint/test/fixtures/custom_plugin_lint_after_hook_error/.oxlintrc.json b/apps/oxlint/test/fixtures/custom_plugin_lint_after_hook_error/.oxlintrc.json index eac0cd7034245..76b546efca906 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_lint_after_hook_error/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/custom_plugin_lint_after_hook_error/.oxlintrc.json @@ -1,5 +1,5 @@ { - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "categories": { "correctness": "off" }, "rules": { "error-plugin/error": "error" diff --git a/apps/oxlint/test/fixtures/custom_plugin_lint_after_hook_error/output.snap.md b/apps/oxlint/test/fixtures/custom_plugin_lint_after_hook_error/output.snap.md index 6bee5e2dd5256..53623b649dd94 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_lint_after_hook_error/output.snap.md +++ b/apps/oxlint/test/fixtures/custom_plugin_lint_after_hook_error/output.snap.md @@ -6,7 +6,7 @@ x Error running JS plugin. | File path: /apps/oxlint/test/fixtures/custom_plugin_lint_after_hook_error/files/index.js | Error: Whoops! - | at after (/apps/oxlint/test/fixtures/custom_plugin_lint_after_hook_error/plugin.js:10:19) + | at after (/apps/oxlint/test/fixtures/custom_plugin_lint_after_hook_error/plugin.ts:12:19) Found 0 warnings and 1 error. Finished in Xms on 1 file using X threads. diff --git a/apps/oxlint/test/fixtures/custom_plugin_lint_after_hook_error/plugin.js b/apps/oxlint/test/fixtures/custom_plugin_lint_after_hook_error/plugin.ts similarity index 67% rename from apps/oxlint/test/fixtures/custom_plugin_lint_after_hook_error/plugin.js rename to apps/oxlint/test/fixtures/custom_plugin_lint_after_hook_error/plugin.ts index 6b19fab66bd6b..29b965907147a 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_lint_after_hook_error/plugin.js +++ b/apps/oxlint/test/fixtures/custom_plugin_lint_after_hook_error/plugin.ts @@ -1,4 +1,6 @@ -export default { +import type { Plugin } from '../../../dist/index.js'; + +const plugin: Plugin = { meta: { name: 'error-plugin', }, @@ -14,3 +16,5 @@ export default { }, }, }; + +export default plugin; diff --git a/apps/oxlint/test/fixtures/custom_plugin_lint_before_hook_error/.oxlintrc.json b/apps/oxlint/test/fixtures/custom_plugin_lint_before_hook_error/.oxlintrc.json index eac0cd7034245..76b546efca906 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_lint_before_hook_error/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/custom_plugin_lint_before_hook_error/.oxlintrc.json @@ -1,5 +1,5 @@ { - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "categories": { "correctness": "off" }, "rules": { "error-plugin/error": "error" diff --git a/apps/oxlint/test/fixtures/custom_plugin_lint_before_hook_error/output.snap.md b/apps/oxlint/test/fixtures/custom_plugin_lint_before_hook_error/output.snap.md index 2beefd11f40a7..990a389d81b53 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_lint_before_hook_error/output.snap.md +++ b/apps/oxlint/test/fixtures/custom_plugin_lint_before_hook_error/output.snap.md @@ -6,7 +6,7 @@ x Error running JS plugin. | File path: /apps/oxlint/test/fixtures/custom_plugin_lint_before_hook_error/files/index.js | Error: Whoops! - | at before (/apps/oxlint/test/fixtures/custom_plugin_lint_before_hook_error/plugin.js:10:19) + | at before (/apps/oxlint/test/fixtures/custom_plugin_lint_before_hook_error/plugin.ts:12:19) Found 0 warnings and 1 error. Finished in Xms on 1 file using X threads. diff --git a/apps/oxlint/test/fixtures/custom_plugin_lint_before_hook_error/plugin.js b/apps/oxlint/test/fixtures/custom_plugin_lint_before_hook_error/plugin.ts similarity index 67% rename from apps/oxlint/test/fixtures/custom_plugin_lint_before_hook_error/plugin.js rename to apps/oxlint/test/fixtures/custom_plugin_lint_before_hook_error/plugin.ts index 643fca6ea8189..dc24ecff54784 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_lint_before_hook_error/plugin.js +++ b/apps/oxlint/test/fixtures/custom_plugin_lint_before_hook_error/plugin.ts @@ -1,4 +1,6 @@ -export default { +import type { Plugin } from '../../../dist/index.js'; + +const plugin: Plugin = { meta: { name: 'error-plugin', }, @@ -14,3 +16,5 @@ export default { }, }, }; + +export default plugin; diff --git a/apps/oxlint/test/fixtures/custom_plugin_lint_createOnce_error/.oxlintrc.json b/apps/oxlint/test/fixtures/custom_plugin_lint_createOnce_error/.oxlintrc.json index eac0cd7034245..76b546efca906 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_lint_createOnce_error/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/custom_plugin_lint_createOnce_error/.oxlintrc.json @@ -1,5 +1,5 @@ { - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "categories": { "correctness": "off" }, "rules": { "error-plugin/error": "error" diff --git a/apps/oxlint/test/fixtures/custom_plugin_lint_createOnce_error/output.snap.md b/apps/oxlint/test/fixtures/custom_plugin_lint_createOnce_error/output.snap.md index 8ebc8356c12a3..f67fbe33db122 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_lint_createOnce_error/output.snap.md +++ b/apps/oxlint/test/fixtures/custom_plugin_lint_createOnce_error/output.snap.md @@ -5,9 +5,9 @@ ``` Failed to parse configuration file. - x Failed to load JS plugin: ./plugin.js + x Failed to load JS plugin: ./plugin.ts | Error: Whoops! - | at Object.createOnce (/apps/oxlint/test/fixtures/custom_plugin_lint_createOnce_error/plugin.js:8:15) + | at Object.createOnce (/apps/oxlint/test/fixtures/custom_plugin_lint_createOnce_error/plugin.ts:10:15) ``` # stderr diff --git a/apps/oxlint/test/fixtures/custom_plugin_lint_createOnce_error/plugin.js b/apps/oxlint/test/fixtures/custom_plugin_lint_createOnce_error/plugin.ts similarity index 59% rename from apps/oxlint/test/fixtures/custom_plugin_lint_createOnce_error/plugin.js rename to apps/oxlint/test/fixtures/custom_plugin_lint_createOnce_error/plugin.ts index d804fe74862cc..eea86ab9fa8ce 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_lint_createOnce_error/plugin.js +++ b/apps/oxlint/test/fixtures/custom_plugin_lint_createOnce_error/plugin.ts @@ -1,4 +1,6 @@ -export default { +import type { Plugin } from '../../../dist/index.js'; + +const plugin: Plugin = { meta: { name: 'error-plugin', }, @@ -10,3 +12,5 @@ export default { }, }, }; + +export default plugin; diff --git a/apps/oxlint/test/fixtures/custom_plugin_lint_create_error/.oxlintrc.json b/apps/oxlint/test/fixtures/custom_plugin_lint_create_error/.oxlintrc.json index eac0cd7034245..76b546efca906 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_lint_create_error/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/custom_plugin_lint_create_error/.oxlintrc.json @@ -1,5 +1,5 @@ { - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "categories": { "correctness": "off" }, "rules": { "error-plugin/error": "error" diff --git a/apps/oxlint/test/fixtures/custom_plugin_lint_create_error/output.snap.md b/apps/oxlint/test/fixtures/custom_plugin_lint_create_error/output.snap.md index 6518746157b5c..af278bd6d5ccc 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_lint_create_error/output.snap.md +++ b/apps/oxlint/test/fixtures/custom_plugin_lint_create_error/output.snap.md @@ -6,7 +6,7 @@ x Error running JS plugin. | File path: /apps/oxlint/test/fixtures/custom_plugin_lint_create_error/files/index.js | Error: Whoops! - | at Object.create (/apps/oxlint/test/fixtures/custom_plugin_lint_create_error/plugin.js:8:15) + | at Object.create (/apps/oxlint/test/fixtures/custom_plugin_lint_create_error/plugin.ts:10:15) Found 0 warnings and 1 error. Finished in Xms on 1 file using X threads. diff --git a/apps/oxlint/test/fixtures/custom_plugin_lint_create_error/plugin.js b/apps/oxlint/test/fixtures/custom_plugin_lint_create_error/plugin.ts similarity index 59% rename from apps/oxlint/test/fixtures/custom_plugin_lint_create_error/plugin.js rename to apps/oxlint/test/fixtures/custom_plugin_lint_create_error/plugin.ts index 181f5eb1f1346..515db9ff2c699 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_lint_create_error/plugin.js +++ b/apps/oxlint/test/fixtures/custom_plugin_lint_create_error/plugin.ts @@ -1,4 +1,6 @@ -export default { +import type { Plugin } from '../../../dist/index.js'; + +const plugin: Plugin = { meta: { name: 'error-plugin', }, @@ -10,3 +12,5 @@ export default { }, }, }; + +export default plugin; diff --git a/apps/oxlint/test/fixtures/custom_plugin_lint_fix_error/.oxlintrc.json b/apps/oxlint/test/fixtures/custom_plugin_lint_fix_error/.oxlintrc.json index eac0cd7034245..76b546efca906 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_lint_fix_error/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/custom_plugin_lint_fix_error/.oxlintrc.json @@ -1,5 +1,5 @@ { - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "categories": { "correctness": "off" }, "rules": { "error-plugin/error": "error" diff --git a/apps/oxlint/test/fixtures/custom_plugin_lint_fix_error/output.snap.md b/apps/oxlint/test/fixtures/custom_plugin_lint_fix_error/output.snap.md index 77742e812a9d4..9e083dcf5055c 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_lint_fix_error/output.snap.md +++ b/apps/oxlint/test/fixtures/custom_plugin_lint_fix_error/output.snap.md @@ -6,8 +6,8 @@ x Error running JS plugin. | File path: /apps/oxlint/test/fixtures/custom_plugin_lint_fix_error/files/index.js | Error: Whoops! - | at Object.fix (/apps/oxlint/test/fixtures/custom_plugin_lint_fix_error/plugin.js:14:23) - | at Identifier (/apps/oxlint/test/fixtures/custom_plugin_lint_fix_error/plugin.js:10:21) + | at Object.fix (/apps/oxlint/test/fixtures/custom_plugin_lint_fix_error/plugin.ts:16:23) + | at Identifier (/apps/oxlint/test/fixtures/custom_plugin_lint_fix_error/plugin.ts:12:21) Found 0 warnings and 1 error. Finished in Xms on 1 file using X threads. diff --git a/apps/oxlint/test/fixtures/custom_plugin_lint_fix_error/plugin.js b/apps/oxlint/test/fixtures/custom_plugin_lint_fix_error/plugin.ts similarity index 78% rename from apps/oxlint/test/fixtures/custom_plugin_lint_fix_error/plugin.js rename to apps/oxlint/test/fixtures/custom_plugin_lint_fix_error/plugin.ts index 40903559dce79..6f87e5ff7e8fc 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_lint_fix_error/plugin.js +++ b/apps/oxlint/test/fixtures/custom_plugin_lint_fix_error/plugin.ts @@ -1,4 +1,6 @@ -export default { +import type { Plugin } from '../../../dist/index.js'; + +const plugin: Plugin = { meta: { name: 'error-plugin', }, @@ -20,3 +22,5 @@ export default { }, }, }; + +export default plugin; diff --git a/apps/oxlint/test/fixtures/custom_plugin_lint_visit_error/.oxlintrc.json b/apps/oxlint/test/fixtures/custom_plugin_lint_visit_error/.oxlintrc.json index eac0cd7034245..76b546efca906 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_lint_visit_error/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/custom_plugin_lint_visit_error/.oxlintrc.json @@ -1,5 +1,5 @@ { - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "categories": { "correctness": "off" }, "rules": { "error-plugin/error": "error" diff --git a/apps/oxlint/test/fixtures/custom_plugin_lint_visit_error/output.snap.md b/apps/oxlint/test/fixtures/custom_plugin_lint_visit_error/output.snap.md index 6c7b09b199064..2a209e3e5b759 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_lint_visit_error/output.snap.md +++ b/apps/oxlint/test/fixtures/custom_plugin_lint_visit_error/output.snap.md @@ -6,7 +6,7 @@ x Error running JS plugin. | File path: /apps/oxlint/test/fixtures/custom_plugin_lint_visit_error/files/index.js | Error: Whoops! - | at Identifier (/apps/oxlint/test/fixtures/custom_plugin_lint_visit_error/plugin.js:10:19) + | at Identifier (/apps/oxlint/test/fixtures/custom_plugin_lint_visit_error/plugin.ts:12:19) Found 0 warnings and 1 error. Finished in Xms on 1 file using X threads. diff --git a/apps/oxlint/test/fixtures/custom_plugin_lint_visit_error/plugin.js b/apps/oxlint/test/fixtures/custom_plugin_lint_visit_error/plugin.ts similarity index 68% rename from apps/oxlint/test/fixtures/custom_plugin_lint_visit_error/plugin.js rename to apps/oxlint/test/fixtures/custom_plugin_lint_visit_error/plugin.ts index c0dbde14d618f..b02de0fc59544 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_lint_visit_error/plugin.js +++ b/apps/oxlint/test/fixtures/custom_plugin_lint_visit_error/plugin.ts @@ -1,4 +1,6 @@ -export default { +import type { Plugin } from '../../../dist/index.js'; + +const plugin: Plugin = { meta: { name: 'error-plugin', }, @@ -14,3 +16,5 @@ export default { }, }, }; + +export default plugin; diff --git a/apps/oxlint/test/fixtures/custom_plugin_missing_rule/.oxlintrc.json b/apps/oxlint/test/fixtures/custom_plugin_missing_rule/.oxlintrc.json index 81ab9e9a22252..c36bad1c7cf08 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_missing_rule/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/custom_plugin_missing_rule/.oxlintrc.json @@ -1,5 +1,5 @@ { - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "categories": { "correctness": "off" }, "rules": { "basic-custom-plugin/unknown-rule": "error" diff --git a/apps/oxlint/test/fixtures/custom_plugin_missing_rule/plugin.js b/apps/oxlint/test/fixtures/custom_plugin_missing_rule/plugin.js deleted file mode 100644 index a2127eaac50f3..0000000000000 --- a/apps/oxlint/test/fixtures/custom_plugin_missing_rule/plugin.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - meta: { - name: 'basic-custom-plugin', - }, - rules: {}, -}; diff --git a/apps/oxlint/test/fixtures/custom_plugin_missing_rule/plugin.ts b/apps/oxlint/test/fixtures/custom_plugin_missing_rule/plugin.ts new file mode 100644 index 0000000000000..b7ce410eb57e2 --- /dev/null +++ b/apps/oxlint/test/fixtures/custom_plugin_missing_rule/plugin.ts @@ -0,0 +1,10 @@ +import type { Plugin } from '../../../dist/index.js'; + +const plugin: Plugin = { + meta: { + name: 'basic-custom-plugin', + }, + rules: {}, +}; + +export default plugin; diff --git a/apps/oxlint/test/fixtures/custom_plugin_via_overrides/.oxlintrc.json b/apps/oxlint/test/fixtures/custom_plugin_via_overrides/.oxlintrc.json index e29763afcb653..33ec7bf613860 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_via_overrides/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/custom_plugin_via_overrides/.oxlintrc.json @@ -2,7 +2,7 @@ "overrides": [ { "files": ["*.js"], - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "rules": { "basic-custom-plugin/no-debugger": "error" } diff --git a/apps/oxlint/test/fixtures/basic_custom_plugin_warn_severity/plugin.js b/apps/oxlint/test/fixtures/custom_plugin_via_overrides/plugin.ts similarity index 77% rename from apps/oxlint/test/fixtures/basic_custom_plugin_warn_severity/plugin.js rename to apps/oxlint/test/fixtures/custom_plugin_via_overrides/plugin.ts index d401a98de06ee..d8f0b772b32f1 100644 --- a/apps/oxlint/test/fixtures/basic_custom_plugin_warn_severity/plugin.js +++ b/apps/oxlint/test/fixtures/custom_plugin_via_overrides/plugin.ts @@ -1,4 +1,6 @@ -export default { +import type { Plugin } from '../../../dist/index.js'; + +const plugin: Plugin = { meta: { name: 'basic-custom-plugin', }, @@ -17,3 +19,5 @@ export default { }, }, }; + +export default plugin; diff --git a/apps/oxlint/test/fixtures/custom_plugin_via_overrides_missing_rule/.oxlintrc.json b/apps/oxlint/test/fixtures/custom_plugin_via_overrides_missing_rule/.oxlintrc.json index 05534ba871158..e04b920dd758b 100644 --- a/apps/oxlint/test/fixtures/custom_plugin_via_overrides_missing_rule/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/custom_plugin_via_overrides_missing_rule/.oxlintrc.json @@ -5,7 +5,7 @@ "overrides": [ { "files": ["*.js"], - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "rules": { "basic-custom-plugin/missing": "error" } diff --git a/apps/oxlint/test/fixtures/custom_plugin_via_overrides_missing_rule/plugin.js b/apps/oxlint/test/fixtures/custom_plugin_via_overrides_missing_rule/plugin.js deleted file mode 100644 index d401a98de06ee..0000000000000 --- a/apps/oxlint/test/fixtures/custom_plugin_via_overrides_missing_rule/plugin.js +++ /dev/null @@ -1,19 +0,0 @@ -export default { - meta: { - name: 'basic-custom-plugin', - }, - rules: { - 'no-debugger': { - create(context) { - return { - DebuggerStatement(debuggerStatement) { - context.report({ - message: 'Unexpected Debugger Statement', - node: debuggerStatement, - }); - }, - }; - }, - }, - }, -}; diff --git a/apps/oxlint/test/fixtures/custom_plugin_via_overrides_missing_rule/plugin.ts b/apps/oxlint/test/fixtures/custom_plugin_via_overrides_missing_rule/plugin.ts new file mode 100644 index 0000000000000..d8f0b772b32f1 --- /dev/null +++ b/apps/oxlint/test/fixtures/custom_plugin_via_overrides_missing_rule/plugin.ts @@ -0,0 +1,23 @@ +import type { Plugin } from '../../../dist/index.js'; + +const plugin: Plugin = { + meta: { + name: 'basic-custom-plugin', + }, + rules: { + 'no-debugger': { + create(context) { + return { + DebuggerStatement(debuggerStatement) { + context.report({ + message: 'Unexpected Debugger Statement', + node: debuggerStatement, + }); + }, + }; + }, + }, + }, +}; + +export default plugin; diff --git a/apps/oxlint/test/fixtures/estree/.oxlintrc.json b/apps/oxlint/test/fixtures/estree/.oxlintrc.json index 99e39e9337d56..1212ee660e647 100644 --- a/apps/oxlint/test/fixtures/estree/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/estree/.oxlintrc.json @@ -1,5 +1,5 @@ { - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "categories": { "correctness": "off" }, diff --git a/apps/oxlint/test/fixtures/estree/plugin.js b/apps/oxlint/test/fixtures/estree/plugin.ts similarity index 95% rename from apps/oxlint/test/fixtures/estree/plugin.js rename to apps/oxlint/test/fixtures/estree/plugin.ts index a17983811dc9a..f8c3281b75a93 100644 --- a/apps/oxlint/test/fixtures/estree/plugin.js +++ b/apps/oxlint/test/fixtures/estree/plugin.ts @@ -1,4 +1,6 @@ -export default { +import type { Plugin } from '../../../dist/index.js'; + +const plugin: Plugin = { meta: { name: 'estree-check', }, @@ -8,7 +10,7 @@ export default { // Note: Collect visits in an array instead of `context.report` in each visitor function, // to ensure visitation happens in right order. // Diagnostics may be output in different order from the order they're created in. - const visits = []; + const visits: string[] = []; return { Program(program) { visits.push(program.type); @@ -78,3 +80,5 @@ export default { }, }, }; + +export default plugin; diff --git a/apps/oxlint/test/fixtures/fixes/.oxlintrc.json b/apps/oxlint/test/fixtures/fixes/.oxlintrc.json index 942cdb6f10406..af50ce27d17c6 100644 --- a/apps/oxlint/test/fixtures/fixes/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/fixes/.oxlintrc.json @@ -1,5 +1,5 @@ { - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "categories": { "correctness": "off" }, diff --git a/apps/oxlint/test/fixtures/fixes/plugin.js b/apps/oxlint/test/fixtures/fixes/plugin.ts similarity index 93% rename from apps/oxlint/test/fixtures/fixes/plugin.js rename to apps/oxlint/test/fixtures/fixes/plugin.ts index 1353436b25a1f..07c7a4d9172f7 100644 --- a/apps/oxlint/test/fixtures/fixes/plugin.js +++ b/apps/oxlint/test/fixtures/fixes/plugin.ts @@ -1,4 +1,6 @@ -export default { +import type { Diagnostic, Plugin, Range } from '../../../dist/index.js'; + +const plugin: Plugin = { meta: { name: 'fixes-plugin', }, @@ -14,7 +16,7 @@ export default { debuggerCount++; let thisIsReport; - const report = { + const report: Diagnostic = { message: 'Remove debugger statement', node, fix(fixer) { @@ -96,7 +98,7 @@ export default { node, fix(fixer) { // Fixes can be in any order - const range = [node.start, node.end]; + const range: Range = [node.start, node.end]; return [ fixer.replaceTextRange(range, 'er'), fixer.insertTextAfterRange(range, 'mouse'), @@ -122,7 +124,7 @@ export default { // `fix` can be a generator function *fix(fixer) { // Fixes can be in any order - const range = [node.start, node.end]; + const range: Range = [node.start, node.end]; yield fixer.insertTextAfterRange(range, 'bunga'); yield fixer.replaceTextRange(range, 'a'); yield fixer.insertTextBeforeRange(range, 'cow'); @@ -135,3 +137,5 @@ export default { }, }, }; + +export default plugin; diff --git a/apps/oxlint/test/fixtures/utf16_offsets/.oxlintrc.json b/apps/oxlint/test/fixtures/utf16_offsets/.oxlintrc.json index d6d8cf1b9d86c..40346ec859190 100644 --- a/apps/oxlint/test/fixtures/utf16_offsets/.oxlintrc.json +++ b/apps/oxlint/test/fixtures/utf16_offsets/.oxlintrc.json @@ -1,5 +1,5 @@ { - "jsPlugins": ["./plugin.js"], + "jsPlugins": ["./plugin.ts"], "rules": { "utf16-plugin/no-debugger": "error" } diff --git a/apps/oxlint/test/fixtures/utf16_offsets/plugin.js b/apps/oxlint/test/fixtures/utf16_offsets/plugin.ts similarity index 78% rename from apps/oxlint/test/fixtures/utf16_offsets/plugin.js rename to apps/oxlint/test/fixtures/utf16_offsets/plugin.ts index 6527efeea66e8..c064988b3e7c1 100644 --- a/apps/oxlint/test/fixtures/utf16_offsets/plugin.js +++ b/apps/oxlint/test/fixtures/utf16_offsets/plugin.ts @@ -1,4 +1,6 @@ -export default { +import type { Plugin } from '../../../dist/index.js'; + +const plugin: Plugin = { meta: { name: 'utf16-plugin', }, @@ -17,3 +19,5 @@ export default { }, }, }; + +export default plugin;