fix: backward-compat for ESM etherpad#94
Conversation
- Drop trailing slash on ep_etherpad-lite/node/eejs/ require Backward-compatible with current CJS etherpad release; also compatible with the upcoming ESM etherpad branch which has stricter exports map resolution.
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
Review Summary by QodoRemove trailing slash for ESM etherpad compatibility
WalkthroughsDescription• Remove trailing slash from eejs require path • Ensures compatibility with ESM etherpad exports • Maintains backward compatibility with current CJS • Bump version to 11.0.22 Diagramflowchart LR
A["require with trailing slash"] -- "breaks ESM exports" --> B["ESM etherpad incompatible"]
C["require without trailing slash"] -- "works with both" --> D["CJS and ESM compatible"]
File Changes1. eejs.js
|
Code Review by Qodo
1. No regression test for require
|
| 'use strict'; | ||
|
|
||
| const eejs = require('ep_etherpad-lite/node/eejs/'); | ||
| const eejs = require('ep_etherpad-lite/node/eejs'); |
There was a problem hiding this comment.
1. No regression test for require 📘 Rule violation ≡ Correctness
This PR changes the eejs import path to fix ESM exports-map resolution, but it does not add or update any automated test to prevent the bug from being reintroduced. Without a regression test, the compatibility break could recur unnoticed in future refactors/releases.
Agent Prompt
## Issue description
A bug fix was made (removing the trailing slash in `require('ep_etherpad-lite/node/eejs')`), but no regression test was added/updated in the same change set.
## Issue Context
Per the compliance checklist, every bug fix must include an automated regression test that would fail before the fix and pass after it. This PR only changes runtime code (and bumps the package version) without adding any test coverage for the import-path compatibility issue.
## Fix Focus Areas
- eejs.js[3-3]
- static/tests/backend/specs/esm-eejs-require.spec.js[1-120]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
This PR makes the plugin backward-compatible with the upcoming ESM etherpad branch (ether/etherpad#7605).
Change: Remove trailing slash from
require("ep_etherpad-lite/node/eejs/")→require("ep_etherpad-lite/node/eejs")The trailing-slash form breaks under Node's strict ESM exports map resolution. This change is backward-compatible with the current CJS etherpad release.