Backend esm vitest#7879
Conversation
Review Summary by Qodo(Agentic_describe updated until commit ef58b53)Port backend to ESM and Vitest with simplified business logic
WalkthroughsDescription• **Comprehensive ESM migration**: Converts entire backend codebase from CommonJS (require/exports) to ES modules (import/export) with .js file extensions throughout • **Vitest adoption**: Migrates backend tests from Mocha to Vitest with updated syntax (arrow functions, describe.skipIf()/it.skipIf() for conditional skipping, removal of this.timeout()) • **Simplified business logic**: Removes author attribution tracking, maintenance window scheduling, Node version checks, email notifications, and complex filtering pipelines across multiple modules • **Enhanced type safety**: Adds TypeScript type annotations, improves function signatures with nullable/optional parameters, and adds type assertions for complex scenarios • **Module bridging**: Implements createRequire bridges and dynamic imports for lazy-loading optional dependencies and handling circular dependencies • **ESM polyfills**: Adds __filename and __dirname polyfills using import.meta.url for test utilities • **Backward compatibility**: Maintains compatibility through default exports, re-export aliases, and namespace imports where needed • **Updater refactoring**: Simplifies version checking to focus on vulnerability detection, removes maintenance window logic, and updates comparison functions (isMajorBehind, isVulnerable) • **Test cleanup**: Removes obsolete test suites (CJS compatibility tests, email notification tests) and refactors remaining tests for Vitest patterns Diagramflowchart LR
CJS["CommonJS<br/>require/exports"] -->|"ESM conversion<br/>with .js extensions"| ESM["ES Modules<br/>import/export"]
Mocha["Mocha Tests<br/>function syntax"] -->|"Vitest migration<br/>arrow functions"| Vitest["Vitest Tests<br/>skipIf patterns"]
Complex["Complex Logic<br/>authors, maintenance,<br/>email, filters"] -->|"Simplification<br/>removal"| Simple["Simplified Logic<br/>vulnerability focus"]
ESM --> TypeScript["Enhanced<br/>Type Safety"]
ESM --> Bridging["Module Bridging<br/>createRequire"]
Vitest --> Polyfills["ESM Polyfills<br/>__filename/__dirname"]
File Changes1. src/node/db/API.ts
|
Port of upstream ether#7605 Converts backend tests from mocha to vitest and migrates to ESM.
ef58b53 to
d5732a8
Compare
|
You read 328 files? |

Port of #7605
Converts backend tests from mocha to vitest and migrates to ESM.
Rebased onto latest develop (resolved conflicts: backend-tests.yml, DB.ts, server.ts, package.json, pnpm-lock.yaml).