Skip to content

Commit 3775f22

Browse files
committed
Automatically convert esmodules to commonjs
1 parent 955fd50 commit 3775f22

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

package.json

+2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
"vega-lite": "^5.1.1"
1818
},
1919
"devDependencies": {
20+
"@babel/core": "^7.22.5",
21+
"@babel/plugin-transform-modules-commonjs": "^7.22.5",
2022
"browserify": "^16.5.2",
2123
"source-map-support": "^0.5.20",
2224
"ws": "^8.2.3"

src/portal/ui/load.cljs

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
(ns ^:no-doc portal.ui.load)
1+
(ns ^:no-doc portal.ui.load
2+
(:require ["@babel/core" :as babel]
3+
["@babel/plugin-transform-modules-commonjs" :as commonjs]))
24

35
(defn- module-wrapper
46
"https://nodejs.org/api/modules.html#the-module-wrapper"
@@ -41,6 +43,9 @@
4143
cache
4244
modules))))
4345

46+
(defn- ->common-js [source]
47+
(.-code (babel/transformSync source #js {:plugins #js [commonjs]})))
48+
4449
(defn node-require
4550
([module]
4651
(node-require nil module))
@@ -54,7 +59,7 @@
5459
(let [exports #js {}
5560
module-obj (Module. exports)]
5661
(swap! require-cache assoc file module-obj)
57-
((js/eval (module-wrapper value))
62+
((js/eval (module-wrapper (update value :source ->common-js)))
5863
exports #(node-require (:dir value) %) module-obj (:file value) (:dir value))
5964
(.-exports module-obj))))
6065
(catch :default e

0 commit comments

Comments
 (0)