소스 검색

transloadit: Lazy load socket.io-client. (#1019)

Renée Kooi 6 년 전
부모
커밋
a4c43abd8b
1개의 변경된 파일15개의 추가작업 그리고 2개의 파일을 삭제
  1. 15 2
      packages/@uppy/transloadit/src/Assembly.js

+ 15 - 2
packages/@uppy/transloadit/src/Assembly.js

@@ -1,7 +1,20 @@
-const io = require('socket.io-client')
+const io = requireSocketIo
 const Emitter = require('component-emitter')
 const parseUrl = require('./parseUrl')
 
+// Lazy load socket.io to avoid a console error
+// in IE 10 when the Transloadit plugin is not used.
+// (The console.error call comes from `buffer`. I
+// think we actually don't use that part of socket.io
+// at all…)
+let socketIo
+function requireSocketIo () {
+  if (!socketIo) {
+    socketIo = require('socket.io-client')
+  }
+  return socketIo
+}
+
 const ASSEMBLY_UPLOADING = 'ASSEMBLY_UPLOADING'
 const ASSEMBLY_EXECUTING = 'ASSEMBLY_EXECUTING'
 const ASSEMBLY_COMPLETED = 'ASSEMBLY_COMPLETED'
@@ -52,7 +65,7 @@ class TransloaditAssembly extends Emitter {
 
   _connectSocket () {
     const parsed = parseUrl(this.status.websocket_url)
-    const socket = io.connect(parsed.origin, {
+    const socket = io().connect(parsed.origin, {
       path: parsed.pathname
     })