diff options
| author | akiyamn | 2023-09-24 23:22:21 +1000 |
|---|---|---|
| committer | akiyamn | 2023-09-24 23:22:21 +1000 |
| commit | 4e87195739f2a5d9a05451b48773c8afdc680765 (patch) | |
| tree | 9cba501844a4a11dcbdffc4050ed8189561c55ed /node_modules/rollup-plugin-node-polyfills/dist/index.js | |
| download | price-tracker-worker-4e87195739f2a5d9a05451b48773c8afdc680765.tar.gz price-tracker-worker-4e87195739f2a5d9a05451b48773c8afdc680765.zip | |
Initial commit (by create-cloudflare CLI)
Diffstat (limited to 'node_modules/rollup-plugin-node-polyfills/dist/index.js')
| -rw-r--r-- | node_modules/rollup-plugin-node-polyfills/dist/index.js | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/node_modules/rollup-plugin-node-polyfills/dist/index.js b/node_modules/rollup-plugin-node-polyfills/dist/index.js new file mode 100644 index 0000000..9c66423 --- /dev/null +++ b/node_modules/rollup-plugin-node-polyfills/dist/index.js @@ -0,0 +1,117 @@ +'use strict'; + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +const inject = _interopDefault(require('rollup-plugin-inject')); +const path = require('path'); +const crypto = require('crypto'); + +const EMPTY_PATH = require.resolve('../polyfills/empty.js'); +function builtinsResolver(opts) { + const libs = new Map(); + libs.set('process', require.resolve('../polyfills/process-es6')); + libs.set('buffer', require.resolve('../polyfills/buffer-es6')); + libs.set('util', require.resolve('../polyfills/util')); + libs.set('sys', libs.get('util')); + libs.set('events', require.resolve('../polyfills/events')); + libs.set('stream', require.resolve('../polyfills/stream')); + libs.set('path', require.resolve('../polyfills/path')); + libs.set('querystring', require.resolve('../polyfills/qs')); + libs.set('punycode', require.resolve('../polyfills/punycode')); + libs.set('url', require.resolve('../polyfills/url')); + libs.set('string_decoder', require.resolve('../polyfills/string-decoder')); + libs.set('http', require.resolve('../polyfills/http')); + libs.set('https', require.resolve('../polyfills/http')); + libs.set('os', require.resolve('../polyfills/os')); + libs.set('assert', require.resolve('../polyfills/assert')); + libs.set('constants', require.resolve('../polyfills/constants')); + libs.set('_stream_duplex', require.resolve('../polyfills/readable-stream/duplex')); + libs.set('_stream_passthrough', require.resolve('../polyfills/readable-stream/passthrough')); + libs.set('_stream_readable', require.resolve('../polyfills/readable-stream/readable')); + libs.set('_stream_writable', require.resolve('../polyfills/readable-stream/writable')); + libs.set('_stream_transform', require.resolve('../polyfills/readable-stream/transform')); + libs.set('timers', require.resolve('../polyfills/timers')); + libs.set('console', require.resolve('../polyfills/console')); + libs.set('vm', require.resolve('../polyfills/vm')); + libs.set('zlib', require.resolve('../polyfills/zlib')); + libs.set('tty', require.resolve('../polyfills/tty')); + libs.set('domain', require.resolve('../polyfills/domain')); + // not shimmed + libs.set('dns', EMPTY_PATH); + libs.set('dgram', EMPTY_PATH); + libs.set('child_process', EMPTY_PATH); + libs.set('cluster', EMPTY_PATH); + libs.set('module', EMPTY_PATH); + libs.set('net', EMPTY_PATH); + libs.set('readline', EMPTY_PATH); + libs.set('repl', EMPTY_PATH); + libs.set('tls', EMPTY_PATH); + libs.set('fs', EMPTY_PATH); + libs.set('crypto', EMPTY_PATH); + if (opts.fs) { + libs.set('fs', require.resolve('../polyfills/browserify-fs')); + } + if (opts.crypto) { + libs.set('crypto', require.resolve('../polyfills/crypto-browserify')); + } + return (importee) => { + if (importee && importee.slice(-1) === '/') { + importee === importee.slice(0, -1); + } + if (libs.has(importee)) { + return { id: libs.get(importee), moduleSideEffects: false }; + } + return null; + }; +} + +// @ts-ignore +function index (opts = {}) { + const injectPlugin = inject({ + include: opts.include === undefined ? 'node_modules/**/*.js' : undefined, + exclude: opts.exclude, + sourceMap: opts.sourceMap, + modules: { + 'process': 'process', + 'Buffer': ['buffer', 'Buffer'], + 'global': GLOBAL_PATH, + '__filename': FILENAME_PATH, + '__dirname': DIRNAME_PATH, + } + }); + const basedir = opts.baseDir || '/'; + const dirs = new Map(); + const resolver = builtinsResolver(opts); + return { + name: 'node-polyfills', + resolveId(importee, importer) { + if (importee === DIRNAME_PATH) { + const id = getRandomId(); + dirs.set(id, path.dirname('/' + path.relative(basedir, importer))); + return { id, moduleSideEffects: false }; + } + if (importee === FILENAME_PATH) { + const id = getRandomId(); + dirs.set(id, path.dirname('/' + path.relative(basedir, importer))); + return { id, moduleSideEffects: false }; + } + return resolver(importee); + }, + load(id) { + if (dirs.has(id)) { + return `export default '${dirs.get(id)}'`; + } + }, + transform(code, id) { + return injectPlugin.transform.call(this, code, id); + } + }; +} +function getRandomId() { + return crypto.randomBytes(15).toString('hex'); +} +const GLOBAL_PATH = require.resolve('../polyfills/global.js'); +const DIRNAME_PATH = '\0node-polyfills:dirname'; +const FILENAME_PATH = '\0node-polyfills:filename'; + +module.exports = index; |
