corsa-oxlint 0.37.0 → 0.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { mergeTypeAwareParserOptions } from "./context.js";
1
+ import { defaultCorsaExecutable, mergeTypeAwareParserOptions } from "./context.js";
2
2
  import { decorateRule } from "./plugin.js";
3
3
  import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
4
4
  import { dirname, join, resolve } from "node:path";
@@ -66,7 +66,7 @@ function prepareTestCase(workspace, test, config, group, index) {
66
66
  const testerConfig = config;
67
67
  const baseSettings = testerConfig?.settings?.corsaOxlint;
68
68
  const caseSettings = test.settings?.corsaOxlint;
69
- const parserOptions = mergeTypeAwareParserOptions(mergeTypeAwareParserOptions(mergeTypeAwareParserOptions(mergeTypeAwareParserOptions(baseSettings, baseSettings?.parserOptions), mergeTypeAwareParserOptions(caseSettings, caseSettings?.parserOptions)), {
69
+ const parserOptionsWithRuntime = applyRuleTesterRuntimeDefaults(mergeTypeAwareParserOptions(mergeTypeAwareParserOptions(mergeTypeAwareParserOptions(mergeTypeAwareParserOptions(baseSettings, baseSettings?.parserOptions), mergeTypeAwareParserOptions(caseSettings, caseSettings?.parserOptions)), {
70
70
  tsconfigRootDir: workspace,
71
71
  projectService: { allowDefaultProject: [
72
72
  "*.ts",
@@ -74,7 +74,7 @@ function prepareTestCase(workspace, test, config, group, index) {
74
74
  "*.js",
75
75
  "*.jsx"
76
76
  ] }
77
- }), mergeTypeAwareParserOptions(config?.languageOptions?.parserOptions, test.languageOptions?.parserOptions));
77
+ }), mergeTypeAwareParserOptions(config?.languageOptions?.parserOptions, test.languageOptions?.parserOptions)), test, config);
78
78
  return {
79
79
  ...test,
80
80
  filename,
@@ -84,16 +84,21 @@ function prepareTestCase(workspace, test, config, group, index) {
84
84
  corsaOxlint: {
85
85
  ...testerConfig?.settings?.corsaOxlint,
86
86
  ...test.settings?.corsaOxlint,
87
- parserOptions
87
+ parserOptions: parserOptionsWithRuntime
88
88
  }
89
89
  },
90
90
  languageOptions: {
91
91
  ...config?.languageOptions,
92
92
  ...test.languageOptions,
93
- parserOptions: { ...parserOptions }
93
+ parserOptions: { ...parserOptionsWithRuntime }
94
94
  }
95
95
  };
96
96
  }
97
+ function applyRuleTesterRuntimeDefaults(parserOptions, test, config) {
98
+ if (parserOptions.corsa?.executable !== void 0) return parserOptions;
99
+ const rootDir = resolve(test.cwd ?? config?.cwd ?? process.cwd());
100
+ return mergeTypeAwareParserOptions(parserOptions, { corsa: { executable: process.env.CORSA_EXECUTABLE ?? defaultCorsaExecutable(rootDir) } });
101
+ }
97
102
  function writeFixture(filename, code) {
98
103
  mkdirSync(dirname(filename), { recursive: true });
99
104
  writeFileSync(filename, code);
@@ -1 +1 @@
1
- {"version":3,"file":"rule_tester.js","names":["OxlintRuleTester","#inner","#config"],"sources":["../ts/rule_tester.ts"],"sourcesContent":["import { mkdtempSync, mkdirSync, rmSync, writeFileSync } from \"node:fs\";\nimport { tmpdir } from \"node:os\";\nimport { dirname, join, resolve } from \"node:path\";\n\nimport { RuleTester as OxlintRuleTester } from \"oxlint/plugins-dev\";\n\nimport { mergeTypeAwareParserOptions } from \"./context\";\nimport { decorateRule } from \"./plugin\";\nimport type { CorsaOxlintSettings, TypeAwareParserOptions } from \"./types\";\n\ntype TesterConfig = import(\"oxlint/plugins-dev\").RuleTester.Config;\ntype TestCase = import(\"oxlint/plugins-dev\").RuleTester.ValidTestCase &\n Partial<import(\"oxlint/plugins-dev\").RuleTester.InvalidTestCase>;\ntype TestCases = import(\"oxlint/plugins-dev\").RuleTester.TestCases;\nexport type RuleTesterConfig = TesterConfig & {\n readonly settings?: {\n readonly corsaOxlint?: CorsaOxlintSettings;\n readonly [key: string]: unknown;\n };\n};\n\nconst cleanupDirs = new Set<string>();\nlet cleanupInstalled = false;\n\nexport class RuleTester {\n /**\n * A thin Oxlint `RuleTester` wrapper that injects\n * `settings.corsaOxlint`\n * settings, temporary fixtures, and a default project service.\n *\n * @example\n * ```ts\n * const tester = new RuleTester();\n * tester.run(\"demo\", rule, {\n * valid: [{ code: \"const answer = 42;\" }],\n * invalid: [],\n * });\n * ```\n */\n static get describe() {\n return OxlintRuleTester.describe;\n }\n\n static set describe(value) {\n OxlintRuleTester.describe = value;\n }\n\n static get it() {\n return OxlintRuleTester.it;\n }\n\n static set it(value) {\n OxlintRuleTester.it = value;\n }\n\n static only(item: string | TestCase): TestCase {\n return OxlintRuleTester.only(item);\n }\n\n readonly #inner: OxlintRuleTester;\n readonly #config?: RuleTesterConfig;\n\n constructor(config?: RuleTesterConfig) {\n this.#config = config;\n this.#inner = new OxlintRuleTester(config);\n }\n\n run(ruleName: string, rule: Record<string, unknown>, tests: TestCases): void {\n const transformed = {\n valid: tests.valid.map((test, index) =>\n prepareTestCase(createWorkspace(), test, this.#config, \"valid\", index),\n ),\n invalid: tests.invalid.map((test, index) =>\n prepareTestCase(createWorkspace(), test, this.#config, \"invalid\", index),\n ),\n };\n this.#inner.run(ruleName, decorateRule(rule as never) as never, transformed as TestCases);\n }\n}\n\nfunction createWorkspace(): string {\n const workspace = mkdtempSync(join(tmpdir(), \"corsa-oxlint-\"));\n registerCleanup(workspace);\n return workspace;\n}\n\nfunction prepareTestCase(\n workspace: string,\n test: string | TestCase,\n config: RuleTesterConfig | undefined,\n group: \"valid\" | \"invalid\",\n index: number,\n): string | TestCase {\n if (typeof test === \"string\") {\n const filename = resolve(workspace, `${group}-${index}.ts`);\n writeFixture(filename, test);\n return test;\n }\n const filename = resolve(workspace, test.filename ?? `${group}-${index}.ts`);\n writeFixture(filename, test.code);\n const testerConfig = config;\n const baseSettings = testerConfig?.settings?.corsaOxlint;\n const caseSettings = (\n test.settings as {\n corsaOxlint?: CorsaOxlintSettings;\n }\n )?.corsaOxlint;\n const parserOptions = mergeTypeAwareParserOptions(\n mergeTypeAwareParserOptions(\n mergeTypeAwareParserOptions(\n mergeTypeAwareParserOptions(baseSettings, baseSettings?.parserOptions),\n mergeTypeAwareParserOptions(caseSettings, caseSettings?.parserOptions),\n ),\n {\n tsconfigRootDir: workspace,\n projectService: {\n allowDefaultProject: [\"*.ts\", \"*.tsx\", \"*.js\", \"*.jsx\"],\n },\n },\n ),\n mergeTypeAwareParserOptions(\n config?.languageOptions?.parserOptions as TypeAwareParserOptions | undefined,\n test.languageOptions?.parserOptions as TypeAwareParserOptions | undefined,\n ),\n );\n return {\n ...test,\n filename,\n settings: {\n ...testerConfig?.settings,\n ...test.settings,\n corsaOxlint: {\n ...testerConfig?.settings?.corsaOxlint,\n ...(test.settings as { corsaOxlint?: CorsaOxlintSettings })?.corsaOxlint,\n parserOptions,\n },\n } as never,\n languageOptions: {\n ...config?.languageOptions,\n ...test.languageOptions,\n parserOptions: {\n ...parserOptions,\n } as never,\n },\n };\n}\n\nfunction writeFixture(filename: string, code: string): void {\n mkdirSync(dirname(filename), { recursive: true });\n writeFileSync(filename, code);\n const configPath = resolve(dirname(filename), \"tsconfig.json\");\n writeFileSync(\n configPath,\n JSON.stringify(\n {\n compilerOptions: {\n module: \"esnext\",\n target: \"es2022\",\n strict: true,\n },\n include: [\"**/*\"],\n },\n null,\n 2,\n ),\n );\n}\n\nfunction registerCleanup(workspace: string): void {\n cleanupDirs.add(workspace);\n if (cleanupInstalled) {\n return;\n }\n cleanupInstalled = true;\n process.on(\"exit\", () => {\n for (const dir of cleanupDirs) {\n rmSync(dir, { force: true, recursive: true });\n }\n });\n}\n"],"mappings":";;;;;;;AAqBA,MAAM,8BAAc,IAAI,KAAa;AACrC,IAAI,mBAAmB;AAEvB,IAAa,aAAb,MAAwB;;;;;;;;;;;;;;;CAetB,WAAW,WAAW;EACpB,OAAOA,aAAiB;;CAG1B,WAAW,SAAS,OAAO;EACzB,aAAiB,WAAW;;CAG9B,WAAW,KAAK;EACd,OAAOA,aAAiB;;CAG1B,WAAW,GAAG,OAAO;EACnB,aAAiB,KAAK;;CAGxB,OAAO,KAAK,MAAmC;EAC7C,OAAOA,aAAiB,KAAK,KAAK;;CAGpC;CACA;CAEA,YAAY,QAA2B;EACrC,KAAKE,UAAU;EACf,KAAKD,SAAS,IAAID,aAAiB,OAAO;;CAG5C,IAAI,UAAkB,MAA+B,OAAwB;EAC3E,MAAM,cAAc;GAClB,OAAO,MAAM,MAAM,KAAK,MAAM,UAC5B,gBAAgB,iBAAiB,EAAE,MAAM,KAAKE,SAAS,SAAS,MAAM,CACvE;GACD,SAAS,MAAM,QAAQ,KAAK,MAAM,UAChC,gBAAgB,iBAAiB,EAAE,MAAM,KAAKA,SAAS,WAAW,MAAM,CACzE;GACF;EACD,KAAKD,OAAO,IAAI,UAAU,aAAa,KAAc,EAAW,YAAyB;;;AAI7F,SAAS,kBAA0B;CACjC,MAAM,YAAY,YAAY,KAAK,QAAQ,EAAE,gBAAgB,CAAC;CAC9D,gBAAgB,UAAU;CAC1B,OAAO;;AAGT,SAAS,gBACP,WACA,MACA,QACA,OACA,OACmB;CACnB,IAAI,OAAO,SAAS,UAAU;EAE5B,aADiB,QAAQ,WAAW,GAAG,MAAM,GAAG,MAAM,KACjC,EAAE,KAAK;EAC5B,OAAO;;CAET,MAAM,WAAW,QAAQ,WAAW,KAAK,YAAY,GAAG,MAAM,GAAG,MAAM,KAAK;CAC5E,aAAa,UAAU,KAAK,KAAK;CACjC,MAAM,eAAe;CACrB,MAAM,eAAe,cAAc,UAAU;CAC7C,MAAM,eACJ,KAAK,UAGJ;CACH,MAAM,gBAAgB,4BACpB,4BACE,4BACE,4BAA4B,cAAc,cAAc,cAAc,EACtE,4BAA4B,cAAc,cAAc,cAAc,CACvE,EACD;EACE,iBAAiB;EACjB,gBAAgB,EACd,qBAAqB;GAAC;GAAQ;GAAS;GAAQ;GAAQ,EACxD;EACF,CACF,EACD,4BACE,QAAQ,iBAAiB,eACzB,KAAK,iBAAiB,cACvB,CACF;CACD,OAAO;EACL,GAAG;EACH;EACA,UAAU;GACR,GAAG,cAAc;GACjB,GAAG,KAAK;GACR,aAAa;IACX,GAAG,cAAc,UAAU;IAC3B,GAAI,KAAK,UAAoD;IAC7D;IACD;GACF;EACD,iBAAiB;GACf,GAAG,QAAQ;GACX,GAAG,KAAK;GACR,eAAe,EACb,GAAG,eACJ;GACF;EACF;;AAGH,SAAS,aAAa,UAAkB,MAAoB;CAC1D,UAAU,QAAQ,SAAS,EAAE,EAAE,WAAW,MAAM,CAAC;CACjD,cAAc,UAAU,KAAK;CAE7B,cADmB,QAAQ,QAAQ,SAAS,EAAE,gBAElC,EACV,KAAK,UACH;EACE,iBAAiB;GACf,QAAQ;GACR,QAAQ;GACR,QAAQ;GACT;EACD,SAAS,CAAC,OAAO;EAClB,EACD,MACA,EACD,CACF;;AAGH,SAAS,gBAAgB,WAAyB;CAChD,YAAY,IAAI,UAAU;CAC1B,IAAI,kBACF;CAEF,mBAAmB;CACnB,QAAQ,GAAG,cAAc;EACvB,KAAK,MAAM,OAAO,aAChB,OAAO,KAAK;GAAE,OAAO;GAAM,WAAW;GAAM,CAAC;GAE/C"}
1
+ {"version":3,"file":"rule_tester.js","names":["OxlintRuleTester","#inner","#config"],"sources":["../ts/rule_tester.ts"],"sourcesContent":["import { mkdtempSync, mkdirSync, rmSync, writeFileSync } from \"node:fs\";\nimport { tmpdir } from \"node:os\";\nimport { dirname, join, resolve } from \"node:path\";\n\nimport { RuleTester as OxlintRuleTester } from \"oxlint/plugins-dev\";\n\nimport { defaultCorsaExecutable, mergeTypeAwareParserOptions } from \"./context\";\nimport { decorateRule } from \"./plugin\";\nimport type { CorsaOxlintSettings, TypeAwareParserOptions } from \"./types\";\n\ntype TesterConfig = import(\"oxlint/plugins-dev\").RuleTester.Config;\ntype TestCase = import(\"oxlint/plugins-dev\").RuleTester.ValidTestCase &\n Partial<import(\"oxlint/plugins-dev\").RuleTester.InvalidTestCase>;\ntype TestCases = import(\"oxlint/plugins-dev\").RuleTester.TestCases;\nexport type RuleTesterConfig = TesterConfig & {\n readonly settings?: {\n readonly corsaOxlint?: CorsaOxlintSettings;\n readonly [key: string]: unknown;\n };\n};\n\nconst cleanupDirs = new Set<string>();\nlet cleanupInstalled = false;\n\nexport class RuleTester {\n /**\n * A thin Oxlint `RuleTester` wrapper that injects\n * `settings.corsaOxlint`\n * settings, temporary fixtures, and a default project service.\n *\n * @example\n * ```ts\n * const tester = new RuleTester();\n * tester.run(\"demo\", rule, {\n * valid: [{ code: \"const answer = 42;\" }],\n * invalid: [],\n * });\n * ```\n */\n static get describe() {\n return OxlintRuleTester.describe;\n }\n\n static set describe(value) {\n OxlintRuleTester.describe = value;\n }\n\n static get it() {\n return OxlintRuleTester.it;\n }\n\n static set it(value) {\n OxlintRuleTester.it = value;\n }\n\n static only(item: string | TestCase): TestCase {\n return OxlintRuleTester.only(item);\n }\n\n readonly #inner: OxlintRuleTester;\n readonly #config?: RuleTesterConfig;\n\n constructor(config?: RuleTesterConfig) {\n this.#config = config;\n this.#inner = new OxlintRuleTester(config);\n }\n\n run(ruleName: string, rule: Record<string, unknown>, tests: TestCases): void {\n const transformed = {\n valid: tests.valid.map((test, index) =>\n prepareTestCase(createWorkspace(), test, this.#config, \"valid\", index),\n ),\n invalid: tests.invalid.map((test, index) =>\n prepareTestCase(createWorkspace(), test, this.#config, \"invalid\", index),\n ),\n };\n this.#inner.run(ruleName, decorateRule(rule as never) as never, transformed as TestCases);\n }\n}\n\nfunction createWorkspace(): string {\n const workspace = mkdtempSync(join(tmpdir(), \"corsa-oxlint-\"));\n registerCleanup(workspace);\n return workspace;\n}\n\nfunction prepareTestCase(\n workspace: string,\n test: string | TestCase,\n config: RuleTesterConfig | undefined,\n group: \"valid\" | \"invalid\",\n index: number,\n): string | TestCase {\n if (typeof test === \"string\") {\n const filename = resolve(workspace, `${group}-${index}.ts`);\n writeFixture(filename, test);\n return test;\n }\n const filename = resolve(workspace, test.filename ?? `${group}-${index}.ts`);\n writeFixture(filename, test.code);\n const testerConfig = config;\n const baseSettings = testerConfig?.settings?.corsaOxlint;\n const caseSettings = (\n test.settings as {\n corsaOxlint?: CorsaOxlintSettings;\n }\n )?.corsaOxlint;\n const parserOptions = mergeTypeAwareParserOptions(\n mergeTypeAwareParserOptions(\n mergeTypeAwareParserOptions(\n mergeTypeAwareParserOptions(baseSettings, baseSettings?.parserOptions),\n mergeTypeAwareParserOptions(caseSettings, caseSettings?.parserOptions),\n ),\n {\n tsconfigRootDir: workspace,\n projectService: {\n allowDefaultProject: [\"*.ts\", \"*.tsx\", \"*.js\", \"*.jsx\"],\n },\n },\n ),\n mergeTypeAwareParserOptions(\n config?.languageOptions?.parserOptions as TypeAwareParserOptions | undefined,\n test.languageOptions?.parserOptions as TypeAwareParserOptions | undefined,\n ),\n );\n const parserOptionsWithRuntime = applyRuleTesterRuntimeDefaults(parserOptions, test, config);\n return {\n ...test,\n filename,\n settings: {\n ...testerConfig?.settings,\n ...test.settings,\n corsaOxlint: {\n ...testerConfig?.settings?.corsaOxlint,\n ...(test.settings as { corsaOxlint?: CorsaOxlintSettings })?.corsaOxlint,\n parserOptions: parserOptionsWithRuntime,\n },\n } as never,\n languageOptions: {\n ...config?.languageOptions,\n ...test.languageOptions,\n parserOptions: {\n ...parserOptionsWithRuntime,\n } as never,\n },\n };\n}\n\nfunction applyRuleTesterRuntimeDefaults(\n parserOptions: TypeAwareParserOptions,\n test: TestCase,\n config: RuleTesterConfig | undefined,\n): TypeAwareParserOptions {\n if (parserOptions.corsa?.executable !== undefined) {\n return parserOptions;\n }\n const rootDir = resolve(test.cwd ?? config?.cwd ?? process.cwd());\n return mergeTypeAwareParserOptions(parserOptions, {\n corsa: {\n executable: process.env.CORSA_EXECUTABLE ?? defaultCorsaExecutable(rootDir),\n },\n });\n}\n\nfunction writeFixture(filename: string, code: string): void {\n mkdirSync(dirname(filename), { recursive: true });\n writeFileSync(filename, code);\n const configPath = resolve(dirname(filename), \"tsconfig.json\");\n writeFileSync(\n configPath,\n JSON.stringify(\n {\n compilerOptions: {\n module: \"esnext\",\n target: \"es2022\",\n strict: true,\n },\n include: [\"**/*\"],\n },\n null,\n 2,\n ),\n );\n}\n\nfunction registerCleanup(workspace: string): void {\n cleanupDirs.add(workspace);\n if (cleanupInstalled) {\n return;\n }\n cleanupInstalled = true;\n process.on(\"exit\", () => {\n for (const dir of cleanupDirs) {\n rmSync(dir, { force: true, recursive: true });\n }\n });\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "corsa-oxlint",
3
- "version": "0.37.0",
3
+ "version": "0.38.0",
4
4
  "description": "Type-aware Oxlint helpers powered by Corsa",
5
5
  "homepage": "https://github.com/ubugeeei-prod/corsa-bind/tree/main/src/bindings/nodejs/corsa_oxlint",
6
6
  "bugs": {
@@ -103,7 +103,7 @@
103
103
  "dependencies": {
104
104
  "@oxlint/plugins": "1.66.0",
105
105
  "oxlint": "1.66.0",
106
- "@corsa-bind/napi": "0.37.0"
106
+ "@corsa-bind/napi": "0.38.0"
107
107
  },
108
108
  "devDependencies": {
109
109
  "@typescript-eslint/utils": "8.59.3"