summaryrefslogtreecommitdiff
path: root/preact/config/node-13-exports.js
diff options
context:
space:
mode:
Diffstat (limited to 'preact/config/node-13-exports.js')
-rw-r--r--preact/config/node-13-exports.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/preact/config/node-13-exports.js b/preact/config/node-13-exports.js
new file mode 100644
index 0000000..9528d2a
--- /dev/null
+++ b/preact/config/node-13-exports.js
@@ -0,0 +1,32 @@
+const fs = require('fs');
+
+const subRepositories = [
+ 'compat',
+ 'debug',
+ 'devtools',
+ 'hooks',
+ 'jsx-runtime',
+ 'test-utils'
+];
+const snakeCaseToCamelCase = str =>
+ str.replace(/([-_][a-z])/g, group => group.toUpperCase().replace('-', ''));
+
+const copyPreact = () => {
+ // Copy .module.js --> .mjs for Node 13 compat.
+ fs.writeFileSync(
+ `${process.cwd()}/dist/preact.mjs`,
+ fs.readFileSync(`${process.cwd()}/dist/preact.module.js`)
+ );
+};
+
+const copy = name => {
+ // Copy .module.js --> .mjs for Node 13 compat.
+ const filename = name.includes('-') ? snakeCaseToCamelCase(name) : name;
+ fs.writeFileSync(
+ `${process.cwd()}/${name}/dist/${filename}.mjs`,
+ fs.readFileSync(`${process.cwd()}/${name}/dist/${filename}.module.js`)
+ );
+};
+
+copyPreact();
+subRepositories.forEach(copy);