1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import path from 'path';
- import fs from 'fs';
- 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'),
- };
- });
- 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}'),
- };
- });
- const polyfills = [];
- if (process) {
- polyfills.push(path.resolve(__dirname, '../_virtual-process-polyfill_.js'));
- }
- if (buffer) {
- polyfills.push(path.resolve(__dirname, '../_buffer.js'));
- }
- if (initialOptions.inject) {
- initialOptions.inject.push(...polyfills);
- }
- else {
- initialOptions.inject = [...polyfills];
- }
- },
- };
- }
- export default NodeGlobalsPolyfillPlugin;
- //# sourceMappingURL=index.js.map
|