@rsbuild/plugin-node-polyfill 0.3.6 → 0.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,20 @@
1
1
  import { RsbuildPlugin } from '@rsbuild/core';
2
2
 
3
- declare function pluginNodePolyfill(): RsbuildPlugin;
3
+ type Globals = {
4
+ process?: boolean;
5
+ Buffer?: boolean;
6
+ };
7
+ type PluginNodePolyfillOptions = {
8
+ /**
9
+ * Whether to provide polyfill of globals.
10
+ * @default
11
+ * {
12
+ * Buffer: true,
13
+ * process: true,
14
+ * }
15
+ */
16
+ globals?: Globals;
17
+ };
18
+ declare function pluginNodePolyfill(options?: PluginNodePolyfillOptions): RsbuildPlugin;
4
19
 
5
- export { pluginNodePolyfill };
20
+ export { type PluginNodePolyfillOptions, pluginNodePolyfill };
package/dist/index.js CHANGED
@@ -33,6 +33,89 @@ __export(src_exports, {
33
33
  pluginNodePolyfill: () => pluginNodePolyfill
34
34
  });
35
35
  module.exports = __toCommonJS(src_exports);
36
+
37
+ // src/libs.ts
38
+ var libs_exports = {};
39
+ __export(libs_exports, {
40
+ _stream_duplex: () => _stream_duplex,
41
+ _stream_passthrough: () => _stream_passthrough,
42
+ _stream_readable: () => _stream_readable,
43
+ _stream_transform: () => _stream_transform,
44
+ _stream_writable: () => _stream_writable,
45
+ assert: () => assert,
46
+ buffer: () => buffer,
47
+ child_process: () => child_process,
48
+ cluster: () => cluster,
49
+ console: () => console,
50
+ constants: () => constants,
51
+ crypto: () => crypto,
52
+ dgram: () => dgram,
53
+ dns: () => dns,
54
+ domain: () => domain,
55
+ events: () => events,
56
+ fs: () => fs,
57
+ http: () => http,
58
+ https: () => https,
59
+ module: () => module2,
60
+ net: () => net,
61
+ os: () => os,
62
+ path: () => path,
63
+ process: () => process,
64
+ punycode: () => punycode,
65
+ querystring: () => querystring,
66
+ readline: () => readline,
67
+ repl: () => repl,
68
+ stream: () => stream,
69
+ string_decoder: () => string_decoder,
70
+ sys: () => sys,
71
+ timers: () => timers,
72
+ tls: () => tls,
73
+ tty: () => tty,
74
+ url: () => url,
75
+ util: () => util,
76
+ vm: () => vm,
77
+ zlib: () => zlib
78
+ });
79
+ var assert = require.resolve("assert/");
80
+ var buffer = require.resolve("buffer/");
81
+ var child_process = null;
82
+ var cluster = null;
83
+ var console = require.resolve("console-browserify");
84
+ var constants = require.resolve("constants-browserify");
85
+ var crypto = require.resolve("crypto-browserify");
86
+ var dgram = null;
87
+ var dns = null;
88
+ var domain = require.resolve("domain-browser");
89
+ var events = require.resolve("events/");
90
+ var fs = null;
91
+ var http = require.resolve("stream-http");
92
+ var https = require.resolve("https-browserify");
93
+ var module2 = null;
94
+ var net = null;
95
+ var os = require.resolve("os-browserify/browser.js");
96
+ var path = require.resolve("path-browserify");
97
+ var punycode = require.resolve("punycode/");
98
+ var process = require.resolve("process/browser.js");
99
+ var querystring = require.resolve("querystring-es3/");
100
+ var readline = null;
101
+ var repl = null;
102
+ var stream = require.resolve("stream-browserify");
103
+ var _stream_duplex = require.resolve("readable-stream/lib/_stream_duplex.js");
104
+ var _stream_passthrough = require.resolve("readable-stream/lib/_stream_passthrough.js");
105
+ var _stream_readable = require.resolve("readable-stream/lib/_stream_readable.js");
106
+ var _stream_transform = require.resolve("readable-stream/lib/_stream_transform.js");
107
+ var _stream_writable = require.resolve("readable-stream/lib/_stream_writable.js");
108
+ var string_decoder = require.resolve("string_decoder/");
109
+ var sys = require.resolve("util/util.js");
110
+ var timers = require.resolve("timers-browserify");
111
+ var tls = null;
112
+ var tty = require.resolve("tty-browserify");
113
+ var url = require.resolve("url/");
114
+ var util = require.resolve("util/util.js");
115
+ var vm = require.resolve("vm-browserify");
116
+ var zlib = require.resolve("browserify-zlib");
117
+
118
+ // src/index.ts
36
119
  var getResolveFallback = (nodeLibs) => Object.keys(nodeLibs).reduce(
37
120
  (previous, name) => {
38
121
  if (nodeLibs[name]) {
@@ -44,17 +127,17 @@ var getResolveFallback = (nodeLibs) => Object.keys(nodeLibs).reduce(
44
127
  },
45
128
  {}
46
129
  );
47
- var getProvideLibs = async () => {
48
- const { default: nodeLibs } = await import(
49
- // @ts-expect-error
50
- "node-libs-browser"
51
- );
52
- return {
53
- Buffer: [nodeLibs.buffer, "Buffer"],
54
- process: [nodeLibs.process]
55
- };
130
+ var getProvideGlobals = async (globals) => {
131
+ const result = {};
132
+ if (globals?.Buffer !== false) {
133
+ result.Buffer = [buffer, "Buffer"];
134
+ }
135
+ if (globals?.process !== false) {
136
+ result.process = [process];
137
+ }
138
+ return result;
56
139
  };
57
- function pluginNodePolyfill() {
140
+ function pluginNodePolyfill(options = {}) {
58
141
  return {
59
142
  name: "rsbuild:node-polyfill",
60
143
  setup(api) {
@@ -62,12 +145,11 @@ function pluginNodePolyfill() {
62
145
  if (isServer) {
63
146
  return;
64
147
  }
65
- const { default: nodeLibs } = await import(
66
- // @ts-expect-error
67
- "node-libs-browser"
68
- );
69
- chain.resolve.fallback.merge(getResolveFallback(nodeLibs));
70
- chain.plugin(CHAIN_ID.PLUGIN.NODE_POLYFILL_PROVIDE).use(bundler.ProvidePlugin, [await getProvideLibs()]);
148
+ chain.resolve.fallback.merge(getResolveFallback(libs_exports));
149
+ const provideGlobals = await getProvideGlobals(options.globals);
150
+ if (Object.keys(provideGlobals).length) {
151
+ chain.plugin(CHAIN_ID.PLUGIN.NODE_POLYFILL_PROVIDE).use(bundler.ProvidePlugin, [provideGlobals]);
152
+ }
71
153
  });
72
154
  }
73
155
  };
package/dist/index.mjs CHANGED
@@ -1,11 +1,114 @@
1
1
  import { createRequire } from 'module';
2
2
  var require = createRequire(import.meta['url']);
3
3
 
4
+ var __defProp = Object.defineProperty;
5
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
6
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
7
+ }) : x)(function(x) {
8
+ if (typeof require !== "undefined")
9
+ return require.apply(this, arguments);
10
+ throw Error('Dynamic require of "' + x + '" is not supported');
11
+ });
12
+ var __export = (target, all) => {
13
+ for (var name in all)
14
+ __defProp(target, name, { get: all[name], enumerable: true });
15
+ };
4
16
 
5
17
  // ../../node_modules/.pnpm/@modern-js+module-tools@2.46.1_typescript@5.3.2/node_modules/@modern-js/module-tools/shims/esm.js
6
18
  import { fileURLToPath } from "url";
7
19
  import path from "path";
8
20
 
21
+ // src/libs.ts
22
+ var libs_exports = {};
23
+ __export(libs_exports, {
24
+ _stream_duplex: () => _stream_duplex,
25
+ _stream_passthrough: () => _stream_passthrough,
26
+ _stream_readable: () => _stream_readable,
27
+ _stream_transform: () => _stream_transform,
28
+ _stream_writable: () => _stream_writable,
29
+ assert: () => assert,
30
+ buffer: () => buffer,
31
+ child_process: () => child_process,
32
+ cluster: () => cluster,
33
+ console: () => console,
34
+ constants: () => constants,
35
+ crypto: () => crypto,
36
+ dgram: () => dgram,
37
+ dns: () => dns,
38
+ domain: () => domain,
39
+ events: () => events,
40
+ fs: () => fs,
41
+ http: () => http,
42
+ https: () => https,
43
+ module: () => module,
44
+ net: () => net,
45
+ os: () => os,
46
+ path: () => path2,
47
+ process: () => process,
48
+ punycode: () => punycode,
49
+ querystring: () => querystring,
50
+ readline: () => readline,
51
+ repl: () => repl,
52
+ stream: () => stream,
53
+ string_decoder: () => string_decoder,
54
+ sys: () => sys,
55
+ timers: () => timers,
56
+ tls: () => tls,
57
+ tty: () => tty,
58
+ url: () => url,
59
+ util: () => util,
60
+ vm: () => vm,
61
+ zlib: () => zlib
62
+ });
63
+ var assert = __require.resolve("assert/");
64
+ var buffer = __require.resolve("buffer/");
65
+ var child_process = null;
66
+ var cluster = null;
67
+ var console = __require.resolve("console-browserify");
68
+ var constants = __require.resolve("constants-browserify");
69
+ var crypto = __require.resolve("crypto-browserify");
70
+ var dgram = null;
71
+ var dns = null;
72
+ var domain = __require.resolve("domain-browser");
73
+ var events = __require.resolve("events/");
74
+ var fs = null;
75
+ var http = __require.resolve("stream-http");
76
+ var https = __require.resolve("https-browserify");
77
+ var module = null;
78
+ var net = null;
79
+ var os = __require.resolve("os-browserify/browser.js");
80
+ var path2 = __require.resolve("path-browserify");
81
+ var punycode = __require.resolve("punycode/");
82
+ var process = __require.resolve("process/browser.js");
83
+ var querystring = __require.resolve("querystring-es3/");
84
+ var readline = null;
85
+ var repl = null;
86
+ var stream = __require.resolve("stream-browserify");
87
+ var _stream_duplex = __require.resolve(
88
+ "readable-stream/lib/_stream_duplex.js"
89
+ );
90
+ var _stream_passthrough = __require.resolve(
91
+ "readable-stream/lib/_stream_passthrough.js"
92
+ );
93
+ var _stream_readable = __require.resolve(
94
+ "readable-stream/lib/_stream_readable.js"
95
+ );
96
+ var _stream_transform = __require.resolve(
97
+ "readable-stream/lib/_stream_transform.js"
98
+ );
99
+ var _stream_writable = __require.resolve(
100
+ "readable-stream/lib/_stream_writable.js"
101
+ );
102
+ var string_decoder = __require.resolve("string_decoder/");
103
+ var sys = __require.resolve("util/util.js");
104
+ var timers = __require.resolve("timers-browserify");
105
+ var tls = null;
106
+ var tty = __require.resolve("tty-browserify");
107
+ var url = __require.resolve("url/");
108
+ var util = __require.resolve("util/util.js");
109
+ var vm = __require.resolve("vm-browserify");
110
+ var zlib = __require.resolve("browserify-zlib");
111
+
9
112
  // src/index.ts
10
113
  var getResolveFallback = (nodeLibs) => Object.keys(nodeLibs).reduce(
11
114
  (previous, name) => {
@@ -18,17 +121,17 @@ var getResolveFallback = (nodeLibs) => Object.keys(nodeLibs).reduce(
18
121
  },
19
122
  {}
20
123
  );
21
- var getProvideLibs = async () => {
22
- const { default: nodeLibs } = await import(
23
- // @ts-expect-error
24
- "node-libs-browser"
25
- );
26
- return {
27
- Buffer: [nodeLibs.buffer, "Buffer"],
28
- process: [nodeLibs.process]
29
- };
124
+ var getProvideGlobals = async (globals) => {
125
+ const result = {};
126
+ if (globals?.Buffer !== false) {
127
+ result.Buffer = [buffer, "Buffer"];
128
+ }
129
+ if (globals?.process !== false) {
130
+ result.process = [process];
131
+ }
132
+ return result;
30
133
  };
31
- function pluginNodePolyfill() {
134
+ function pluginNodePolyfill(options = {}) {
32
135
  return {
33
136
  name: "rsbuild:node-polyfill",
34
137
  setup(api) {
@@ -36,12 +139,11 @@ function pluginNodePolyfill() {
36
139
  if (isServer) {
37
140
  return;
38
141
  }
39
- const { default: nodeLibs } = await import(
40
- // @ts-expect-error
41
- "node-libs-browser"
42
- );
43
- chain.resolve.fallback.merge(getResolveFallback(nodeLibs));
44
- chain.plugin(CHAIN_ID.PLUGIN.NODE_POLYFILL_PROVIDE).use(bundler.ProvidePlugin, [await getProvideLibs()]);
142
+ chain.resolve.fallback.merge(getResolveFallback(libs_exports));
143
+ const provideGlobals = await getProvideGlobals(options.globals);
144
+ if (Object.keys(provideGlobals).length) {
145
+ chain.plugin(CHAIN_ID.PLUGIN.NODE_POLYFILL_PROVIDE).use(bundler.ProvidePlugin, [provideGlobals]);
146
+ }
45
147
  });
46
148
  }
47
149
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsbuild/plugin-node-polyfill",
3
- "version": "0.3.6",
3
+ "version": "0.3.8",
4
4
  "description": "Node polyfill plugin for Rsbuild",
5
5
  "homepage": "https://rsbuild.dev",
6
6
  "repository": {
@@ -23,15 +23,37 @@
23
23
  "dist"
24
24
  ],
25
25
  "dependencies": {
26
- "node-libs-browser": "2.2.1",
27
- "@rsbuild/shared": "0.3.6"
26
+ "assert": "^2.1.0",
27
+ "browserify-zlib": "^0.2.0",
28
+ "buffer": "^5.7.1",
29
+ "console-browserify": "^1.2.0",
30
+ "constants-browserify": "^1.0.0",
31
+ "crypto-browserify": "^3.12.0",
32
+ "domain-browser": "^5.7.0",
33
+ "events": "^3.3.0",
34
+ "https-browserify": "^1.0.0",
35
+ "os-browserify": "^0.3.0",
36
+ "path-browserify": "^1.0.1",
37
+ "process": "^0.11.10",
38
+ "punycode": "^2.3.1",
39
+ "querystring-es3": "^0.2.1",
40
+ "readable-stream": "^4.5.2",
41
+ "stream-browserify": "^3.0.0",
42
+ "stream-http": "^3.2.0",
43
+ "string_decoder": "^1.3.0",
44
+ "timers-browserify": "^2.0.12",
45
+ "tty-browserify": "^0.0.1",
46
+ "url": "^0.11.3",
47
+ "util": "^0.12.5",
48
+ "vm-browserify": "^1.1.2",
49
+ "@rsbuild/shared": "0.3.8"
28
50
  },
29
51
  "devDependencies": {
30
52
  "typescript": "^5.3.0",
31
- "@rsbuild/core": "0.3.6"
53
+ "@rsbuild/core": "0.3.8"
32
54
  },
33
55
  "peerDependencies": {
34
- "@rsbuild/core": "^0.3.6"
56
+ "@rsbuild/core": "^0.3.8"
35
57
  },
36
58
  "publishConfig": {
37
59
  "access": "public",