Skip to content

Commit

Permalink
Proxy process with additional exports
Browse files Browse the repository at this point in the history
Closes #33.
  • Loading branch information
niksy committed Nov 20, 2024
1 parent cfc2f22 commit 3471747
Show file tree
Hide file tree
Showing 6 changed files with 134 additions and 3 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@ const b = browserify(
| `net` | | [net](mock/net.js) |
| `os` | [os-browserify](https://github.com/CoderPuppy/os-browserify) | |
| `path` | [path-browserify](https://github.com/browserify/path-browserify) | |
| `process` | [process](https://github.com/defunctzombie/node-process) | [process](mock/process.js) |
| `process` | [process](https://github.com/defunctzombie/node-process) | [process](mock/process.js) | Contains additional exports from newer Node |
| `punycode` | [punycode](https://github.com/bestiejs/punycode.js) | | `punycode@1` for browser support |
| `querystring` | [querystring-es3](https://github.com/mike-spainhower/querystring) | | Contains additional exports from newer Node versions |
| `readline` | | |
Expand Down
2 changes: 1 addition & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ const net = resolvePath('./mock/empty.js');
const os = resolvePath('os-browserify/browser.js');
const path = resolvePath('path-browserify');
const punycode = resolvePath('punycode/');
const _process = resolvePath('process/browser.js');
const _process = resolvePath('./proxy/process.js');
const querystring = resolvePath('./proxy/querystring.js');
const readline = resolvePath('./mock/empty.js');
const repl = resolvePath('./mock/empty.js');
Expand Down
114 changes: 114 additions & 0 deletions proxy/process.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
import _process from 'process/browser.js';

function noop() {}

const nextTick = _process.nextTick;
const title = _process.title;
const browser = _process.browser;
const environment = _process.env;
const argv = _process.argv;
const version = _process.version;
const versions = _process.versions;
const on = _process.on;
const addListener = _process.addListener;
const once = _process.once;
const off = _process.off;
const removeListener = _process.removeListener;
const removeAllListeners = _process.removeAllListeners;
const emit = _process.emit;
const emitWarning = noop;
const prependListener = _process.prependListener;
const prependOnceListener = _process.prependOnceListener;
const listeners = _process.listeners;
const binding = _process.binding;
const cwd = _process.cwd;
const chdir = _process.chdir;
const umask = _process.umask;
const exit = noop;
const pid = 1;
const features = {};
const kill = noop;
const dlopen = noop;
const uptime = noop;
const memoryUsage = noop;
const uvCounters = noop;
const platform = 'browser';
const arch = 'browser';
const execPath = 'browser';
const execArgv = /** @type {string[]} */ ([]);

const api = {
nextTick,
title,
browser,
env: environment,
argv,
version,
versions,
on,
addListener,
once,
off,
removeListener,
removeAllListeners,
emit,
emitWarning,
prependListener,
prependOnceListener,
listeners,
binding,
cwd,
chdir,
umask,
exit,
pid,
features,
kill,
dlopen,
uptime,
memoryUsage,
uvCounters,
platform,
arch,
execPath,
execArgv
};

export default api;

export {
nextTick,
title,
browser,
environment as env,
argv,
version,
versions,
on,
addListener,
once,
off,
removeListener,
removeAllListeners,
emit,
emitWarning,
prependListener,
prependOnceListener,
listeners,
binding,
cwd,
chdir,
umask,
exit,
pid,
features,
kill,
dlopen,
uptime,
memoryUsage,
uvCounters,
platform,
arch,
execPath,
execArgv
};
4 changes: 4 additions & 0 deletions rollup.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,10 @@ module.exports = [
[
'proxy/querystring.js',
{ cjsOutro: 'exports = module.exports = api;', cjsExports: 'named' }
],
[
'proxy/process.js',
{ cjsOutro: 'exports = module.exports = api;', cjsExports: 'named' }
]
].map((entry) => {
const [filename, options = {}] = [].concat(entry);
Expand Down
4 changes: 3 additions & 1 deletion test/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ const packages = {
net: 'mock/empty.js',
os: 'node_modules/os-browserify',
path: 'node_modules/path-browserify',
process: 'node_modules/process',
process: 'proxy/process.js',
punycode: 'node_modules/punycode',
querystring: 'proxy/querystring.js',
readline: 'mock/empty.js',
Expand Down Expand Up @@ -415,6 +415,8 @@ describe('`querystring` additional exports', function () {
});
});

describe('`process` additional exports', function () {});

const nodeVersion = parseNodeVersion(process.version);
const shouldBundle = nodeVersion.major >= 12;
const shouldBundleESM = nodeVersion.major >= 16;
Expand Down
11 changes: 11 additions & 0 deletions types/lib.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,14 @@ declare module 'querystring-es3' {
import { decode, encode, parse, stringify } from 'querystring';
export { decode, encode, parse, stringify };
};

declare module 'process/browser.js' {
global {
interface BrowserProcess extends NodeJS.Process {
browser: string
binding: Function
}
}
const process: BrowserProcess;
export = process;
};

0 comments on commit 3471747

Please sign in to comment.