Skip to content

Commit f04c046

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

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-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

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

36
(defn- module-wrapper
47
"https://nodejs.org/api/modules.html#the-module-wrapper"
@@ -41,6 +44,9 @@
4144
cache
4245
modules))))
4346

47+
(defn- ->common-js [source]
48+
(.-code (babel/transformSync source #js {:plugins #js [commonjs]})))
49+
4450
(defn node-require
4551
([module]
4652
(node-require nil module))
@@ -54,7 +60,7 @@
5460
(let [exports #js {}
5561
module-obj (Module. exports)]
5662
(swap! require-cache assoc file module-obj)
57-
((js/eval (module-wrapper value))
63+
((js/eval (module-wrapper (update value :source ->common-js)))
5864
exports #(node-require (:dir value) %) module-obj (:file value) (:dir value))
5965
(.-exports module-obj))))
6066
(catch :default e

0 commit comments

Comments
 (0)