@samitouri / QOS-React / commits / e5c59359c4

Prevent bundling of Node polyfills when importing TestUtils/TestRenderer (#15305)

Dan Abramov committed Apr 3, 2019 at 16:12 UTC e5c59359c4ccbae31756db4c6f45f2a56cbe2a47
1 file changed +6 -3
packages/shared/enqueueTask.js
+6 -3
@@ -12,10 +12,13 @@ import warningWithoutStack from './warningWithoutStack';
12 let didWarnAboutMessageChannel = false;
13 let enqueueTask;
14 try {
15 + // read require off the module object to get around the bundlers.
16 + // we don't want them to detect a require and bundle a Node polyfill.
17 + let requireString = ('require' + Math.random()).slice(0, 7);
18 + let nodeRequire = module && module[requireString];
19 // assuming we're in node, let's try to get node's
16 - // version of setImmediate, bypassing fake timers if any
17 - let r = require; // trick packagers not to bundle this stuff.
18 - enqueueTask = r('timers').setImmediate;
20 + // version of setImmediate, bypassing fake timers if any.
21 + enqueueTask = nodeRequire('timers').setImmediate;
22 } catch (_err) {
23 // we're in a browser
24 // we can't use regular timers because they may still be faked