-
Notifications
You must be signed in to change notification settings - Fork 6
Fix ESM #17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Fix ESM #17
Conversation
WalkthroughThe changes update code formatting and dependency configurations. In build.js, import statements and arrow function declarations have been reformatted; the Changes
Sequence Diagram(s)sequenceDiagram
participant FW as File Watcher
participant CL as changeListener (build.js)
participant FS as FiveServer
FW->>CL: Trigger file change event
Note right of CL: 'change' event notifications are commented out
CL->>FS: Instantiate FiveServer and call start()
FS-->>CL: Return startup status
Poem
Tip ⚡🧪 Multi-step agentic review comment chat (experimental)
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🔭 Outside diff range comments (1)
build.js (1)
384-389
:⚠️ Potential issueESM Compatibility Issue: __dirname Usage
The call to
new FiveServer().start( { ... workspace: __dirname, ... } )
depends on__dirname
, which is not defined by default in ES modules. To maintain full ESM compatibility, consider defining it explicitly using a pattern like:import { fileURLToPath } from 'url'; import { dirname } from 'path'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename);This change will ensure that workspace resolution works as expected.
🧹 Nitpick comments (3)
svelte.config.js (1)
3-3
: Single-line Arrow Function SimplificationThe refactored
contentReplacer
is now a concise single-line arrow function that conditionally returns an object whenglobal.zPlaceholderReplacer
exists. For added safety against future automatic semicolon insertion issues, consider wrapping the returned object in parentheses.build.js (2)
61-62
: Arrow Function Formatting in zPlaceholderReplacerThe
zPlaceholderReplacer
function now uses an implicit return arrow function. However, the inserted blank line immediately after the arrow could risk unintended automatic semicolon insertion in future modifications. Consider removing the blank line or explicitly wrapping the returned expression in parentheses for clarity and safety.
331-336
: Commented Out Change Event NotificationThe block handling the
'change'
event in thechangeListener
function is entirely commented out. If this behavior is intentional (to disable change notifications), adding a clarifying comment would be beneficial to future maintainers.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
pnpm-lock.yaml
is excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (3)
build.js
(6 hunks)package.json
(2 hunks)svelte.config.js
(1 hunks)
🔇 Additional comments (4)
build.js (2)
1-1
: Inclusion of Svelte CompilerThe new import of
compile
from'svelte/compiler'
is a strategic addition to support Svelte file compilation in the build process. Please verify that the used Svelte version is fully compatible with this import and ESM expectations.
264-268
: Chained String Replacement via parse.serializeUsing
parse.serialize(tree)
with chained replace calls is a neat solution. Please verify that the use ofreplaceAll
is supported in your target Node version (as it is available in Node 15+). If compatibility with older Node versions is required, consider a polyfill or alternative approach.package.json (2)
14-24
: Updated devDependencies VersionsThe updated dependency versions (e.g.,
"chokidar": "^3.5.3"
, pinning"esbuild"
to"0.16.17"
, and"esbuild-svelte"
bumped to"^0.8.0"
) indicate efforts to align with ESM requirements. Please verify that these versions meet all your project’s integration and compatibility needs.
37-40
: Addition of Peer DependenciesThe introduction of the
peerDependencies
block for"esbuild"
and"esbuild-node-externals"
is a positive step to enforce version compatibility within the ecosystem. Verify that the specified ranges accurately reflect the versions actually used by your project.
"five-server": "^0.3.3", | ||
"lodash-es": "^4.17.21", | ||
"file-selector": "^0.2.4" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsistency in 'five-server' Versions
The package "five-server"
appears in both devDependencies
(version ^0.1.9
) and dependencies
(version ^0.3.3
). This discrepancy could lead to version conflicts at runtime. Please confirm if both entries are needed or consolidate them to ensure a consistent version across the project.
Summary by CodeRabbit
Refactor
Chores