From d0bcdf3dd92afba858fca2871535faf4594c81de Mon Sep 17 00:00:00 2001
From: BrennanConroy <brecon@microsoft.com>
Date: Mon, 19 Nov 2018 09:29:28 -0800
Subject: [PATCH] Fix dynamic require for Webpack (#3306)

---
 clients/ts/signalr/src/DefaultHttpClient.ts | 6 ++++--
 clients/ts/signalr/src/HttpConnection.ts    | 9 +++++----
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/clients/ts/signalr/src/DefaultHttpClient.ts b/clients/ts/signalr/src/DefaultHttpClient.ts
index 0fac925a1ec..b1f19d401f2 100644
--- a/clients/ts/signalr/src/DefaultHttpClient.ts
+++ b/clients/ts/signalr/src/DefaultHttpClient.ts
@@ -8,8 +8,10 @@ import { XhrHttpClient } from "./XhrHttpClient";
 
 let nodeHttpClientModule: any;
 if (typeof XMLHttpRequest === "undefined") {
-    // tslint:disable-next-line:no-var-requires
-    nodeHttpClientModule = require("./NodeHttpClient");
+    // In order to ignore the dynamic require in webpack builds we need to do this magic
+    // @ts-ignore: TS doesn't know about these names
+    const requireFunc = typeof __webpack_require__ === "function" ? __non_webpack_require__ : require;
+    nodeHttpClientModule = requireFunc("./NodeHttpClient");
 }
 
 /** Default implementation of {@link @aspnet/signalr.HttpClient}. */
diff --git a/clients/ts/signalr/src/HttpConnection.ts b/clients/ts/signalr/src/HttpConnection.ts
index 664a625b7b1..470c33e3397 100644
--- a/clients/ts/signalr/src/HttpConnection.ts
+++ b/clients/ts/signalr/src/HttpConnection.ts
@@ -39,10 +39,11 @@ const MAX_REDIRECTS = 100;
 let WebSocketModule: any = null;
 let EventSourceModule: any = null;
 if (typeof window === "undefined" && typeof require !== "undefined") {
-    // tslint:disable-next-line:no-var-requires
-    WebSocketModule = require("ws");
-    // tslint:disable-next-line:no-var-requires
-    EventSourceModule = require("eventsource");
+    // In order to ignore the dynamic require in webpack builds we need to do this magic
+    // @ts-ignore: TS doesn't know about these names
+    const requireFunc = typeof __webpack_require__ === "function" ? __non_webpack_require__ : require;
+    WebSocketModule = requireFunc("ws");
+    EventSourceModule = requireFunc("eventsource");
 }
 
 /** @private */
-- 
GitLab