aboutsummaryrefslogtreecommitdiff
path: root/src/runtime.js
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-09-23 19:20:33 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-09-23 19:20:33 -0700
commit638b204d1ee38003e7ae1c8d1e3571003964ed30 (patch)
tree6a391752d015cd8fbee658f3c806493e4e934763 /src/runtime.js
parent58e88c4aed433c0570947d51a7525e69e44f0247 (diff)
downloadbun-638b204d1ee38003e7ae1c8d1e3571003964ed30.tar.gz
bun-638b204d1ee38003e7ae1c8d1e3571003964ed30.tar.zst
bun-638b204d1ee38003e7ae1c8d1e3571003964ed30.zip
Add __exportValue and __exportDefault to runtime
Diffstat (limited to 'src/runtime.js')
-rw-r--r--src/runtime.js29
1 files changed, 27 insertions, 2 deletions
diff --git a/src/runtime.js b/src/runtime.js
index 98a716527..6e8822767 100644
--- a/src/runtime.js
+++ b/src/runtime.js
@@ -155,10 +155,35 @@ export var __name = (target, name) => {
return target;
};
-// Used to implement ES6 exports to CommonJS
+// ESM export -> CJS export
+// except, writable incase something re-exports
export var __export = (target, all) => {
for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
+ __defProp(target, name, {
+ get: all[name],
+ enumerable: true,
+ configurable: true,
+ set: (newValue) => (all[name] = () => newValue),
+ });
+};
+
+export var __exportValue = (target, all) => {
+ for (var name in all)
+ __defProp(target, name, {
+ get: () => all[name],
+ set: (newValue) => (all[name] = newValue),
+ enumerable: true,
+ configurable: true,
+ });
+};
+
+export var __exportDefault = (target, value) => {
+ __defProp(target, "default", {
+ get: () => value,
+ set: (newValue) => (value = newValue),
+ enumerable: true,
+ configurable: true,
+ });
};
export var __reExport = (target, module, desc) => {