summaryrefslogtreecommitdiff
path: root/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.js')
-rw-r--r--node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.js73
1 files changed, 73 insertions, 0 deletions
diff --git a/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.js b/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.js
new file mode 100644
index 0000000..aa0bceb
--- /dev/null
+++ b/node_modules/@esbuild-plugins/node-globals-polyfill/esm/index.js
@@ -0,0 +1,73 @@
+import path from 'path';
+export function NodeGlobalsPolyfillPlugin({ buffer = false,
+// define = {},
+process = true, } = {}) {
+ return {
+ name: 'node-globals-polyfill',
+ setup({ initialOptions, onResolve, onLoad }) {
+ onResolve({ filter: /_node-buffer-polyfill_\.js/ }, (arg) => {
+ return {
+ path: path.resolve(__dirname, '../Buffer.js'),
+ };
+ });
+ onResolve({ filter: /_node-process-polyfill_\.js/ }, (arg) => {
+ return {
+ path: path.resolve(__dirname, '../process.js'),
+ };
+ });
+ // TODO esbuild cannot use virtual modules for inject: https://github.com/evanw/esbuild/issues/2762
+ // onLoad({ filter: /_virtual-process-polyfill_\.js/ }, (arg) => {
+ // const data = fs
+ // .readFileSync(path.resolve(__dirname, '../process.js'))
+ // .toString()
+ // const keys = Object.keys(define)
+ // return {
+ // loader: 'js',
+ // contents: data.replace(
+ // `const defines = {}`,
+ // 'const defines = {\n' +
+ // keys
+ // .filter((x) => x.startsWith('process.'))
+ // .sort((a, b) => a.length - b.length)
+ // .map(
+ // (k) =>
+ // ` ${JSON.stringify(k).replace(
+ // 'process.',
+ // '',
+ // )}: ${define[k]},`,
+ // )
+ // .join('\n') +
+ // '\n}',
+ // ),
+ // }
+ // })
+ onResolve({ filter: /_virtual-process-polyfill_\.js/ }, () => {
+ return {
+ path: path.resolve(__dirname, '../process.js'),
+ };
+ });
+ onResolve({ filter: /_virtual-buffer-polyfill_\.js/ }, () => {
+ return {
+ path: path.resolve(__dirname, '../_buffer.js'),
+ };
+ });
+ const polyfills = [];
+ if (process) {
+ polyfills.push(path.resolve(__dirname, '../_virtual-process-polyfill_.js'));
+ }
+ if (buffer) {
+ polyfills.push(path.resolve(__dirname, '../_virtual-buffer-polyfill_.js'));
+ }
+ if (initialOptions.inject) {
+ initialOptions.inject.push(...polyfills);
+ // handle duplicate plugin
+ initialOptions.inject = [...new Set(initialOptions.inject)];
+ }
+ else {
+ initialOptions.inject = [...polyfills];
+ }
+ },
+ };
+}
+export default NodeGlobalsPolyfillPlugin;
+//# sourceMappingURL=index.js.map \ No newline at end of file