fix: backward-compat for ESM etherpad#88
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 upcoming ESM etherpad • Maintains backward compatibility with current CJS • Bump version to 0.0.61 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"]
A -- "fix applied" --> C
File Changes1. eejs.js
|
Code Review by Qodo
1. eejs require change untested
|
| '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. eejs require change untested 📘 Rule violation ☼ Reliability
This PR changes the module resolution path in eejs.js as a bug fix for ESM compatibility, but no regression test was added or updated to cover the behavior. Without an automated test, the trailing-slash import can be reintroduced unnoticed and break under strict ESM exports resolution.
Agent Prompt
## Issue description
A bug fix was made to remove the trailing slash from `require('ep_etherpad-lite/node/eejs/')`, but there is no regression test to prevent reintroducing the trailing-slash form.
## Issue Context
The change in `eejs.js` is intended to maintain backward compatibility while working with Node's strict ESM exports map resolution.
## 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.