Ver Fonte

Move `UppySocket`, `RequestClient`, `Provider` to `@uppy/server-utils`.

Steps taken:

```bash
cp -R package-template packages/@uppy/server-utils
git mv src/server/* packages/@uppy/server-utils/src
git mv src/core/UppySocket.js packages/@uppy/server-utils/src/Socket.js
git mv src/core/UppySocket.test.js packages/@uppy/server-utils/src/Socket.test.js
vim packages/@uppy/server-utils/src/index.js # add Socket export
vim packages/@uppy/server-utils/{package.json,README.md}
grep 'require.*server' -l -r src # Find `src/server/*` requires
grep UppySocket -r src # Find `src/core/UppySocket` requires
vim ... # update all those
```
Renée Kooi há 6 anos atrás
pai
commit
50be5119fa

+ 21 - 0
packages/@uppy/server-utils/LICENSE

@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2018 Transloadit
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 47 - 0
packages/@uppy/server-utils/README.md

@@ -0,0 +1,47 @@
+# @uppy/server-utils
+
+<img src="https://uppy.io/images/logos/uppy-dog-head-arrow.svg" width="120" alt="Uppy logo: a superman puppy in a pink suit" align="right">
+
+<a href="https://www.npmjs.com/package/@uppy/server-utils"><img src="https://img.shields.io/npm/v/@uppy/server-utils.svg?style=flat-square"></a>
+<a href="https://travis-ci.org/transloadit/uppy"><img src="https://img.shields.io/travis/transloadit/uppy/master.svg?style=flat-square" alt="Build Status"></a>
+
+Client library for communication with Uppy Server. Intended for use in Uppy plugins.
+
+Uppy is being developed by the folks at [Transloadit](https://transloadit.com), a versatile file encoding service.
+
+## Example
+
+```js
+const Uppy = require('@uppy/core')
+const { Provider, RequestClient, Socket } = require('@uppy/server-utils')
+
+const uppy = Uppy()
+
+const client = new RequestClient(uppy, { serverUrl: 'https://uppy.mywebsite.com/' })
+client.get('/drive/list').then(() => {})
+
+const provider = new Provider(uppy, {
+  serverUrl: 'https://uppy.mywebsite.com/',
+  provider: providerPluginInstance
+})
+provider.checkAuth().then(() => {})
+
+const socket = new Socket({ target: 'wss://uppy.mywebsite.com/' })
+socket.on('progress', () => {})
+```
+
+## Installation
+
+> Unless you are writing a custom provider plugin, you do not need to install this.
+
+```bash
+$ npm install @uppy/server-utils --save
+```
+
+## Documentation
+
+Documentation for this plugin can be found on the [Uppy website](https://uppy.io/docs/DOC_PAGE_HERE).
+
+## License
+
+[The MIT License](./LICENSE).

+ 28 - 0
packages/@uppy/server-utils/package.json

@@ -0,0 +1,28 @@
+{
+  "name": "@uppy/server-utils",
+  "description": "Client library for communication with Uppy Server. Intended for use in Uppy plugins.",
+  "version": "0.25.5",
+  "license": "MIT",
+  "main": "lib/index.js",
+  "jsnext:main": "src/index.js",
+  "types": "types/index.d.ts",
+  "keywords": [
+    "file uploader",
+    "uppy",
+    "uppy-plugin",
+    "uppy-server",
+    "provider"
+  ],
+  "homepage": "https://uppy.io",
+  "bugs": {
+    "url": "https://github.com/transloadit/uppy/issues"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/transloadit/uppy.git"
+  },
+  "dependencies": {
+    "namespace-emitter": "^2.0.1",
+    "whatwg-fetch": "^2.0.4"
+  }
+}

+ 0 - 0
src/server/Provider.js → packages/@uppy/server-utils/src/Provider.js


+ 0 - 0
src/server/RequestClient.js → packages/@uppy/server-utils/src/RequestClient.js


+ 0 - 0
src/server/RequestClient.test.js → packages/@uppy/server-utils/src/RequestClient.test.js


+ 0 - 0
src/core/UppySocket.js → packages/@uppy/server-utils/src/Socket.js


+ 2 - 2
src/core/UppySocket.test.js → packages/@uppy/server-utils/src/Socket.test.js

@@ -1,6 +1,6 @@
-const UppySocket = require('./UppySocket')
+const UppySocket = require('./Socket')
 
-describe('core/uppySocket', () => {
+describe('Socket', () => {
   let webSocketConstructorSpy
   let webSocketCloseSpy
   let webSocketSendSpy

+ 4 - 1
src/server/index.js → packages/@uppy/server-utils/src/index.js

@@ -5,7 +5,10 @@
 
 const RequestClient = require('./RequestClient')
 const Provider = require('./Provider')
+const Socket = require('./Socket')
 
 module.exports = {
-  RequestClient, Provider
+  RequestClient,
+  Provider,
+  Socket
 }

+ 0 - 0
packages/@uppy/server-utils/types/index.d.ts


+ 1 - 1
src/index.js

@@ -1,7 +1,7 @@
 const Core = require('@uppy/core')
 
 // Communication with Uppy Server
-const server = require('./server')
+const server = require('@uppy/server-utils')
 
 // Reusable views
 const views = require('./views')

+ 2 - 3
src/plugins/AwsS3/Multipart.js

@@ -1,6 +1,5 @@
 const Plugin = require('@uppy/core/lib/Plugin')
-const RequestClient = require('../../server/RequestClient')
-const UppySocket = require('../../core/UppySocket')
+const { Socket, RequestClient } = require('@uppy/server-utils')
 const emitSocketProgress = require('@uppy/utils/lib/emitSocketProgress')
 const getSocketHost = require('@uppy/utils/lib/getSocketHost')
 const limitPromises = require('@uppy/utils/lib/limitPromises')
@@ -286,7 +285,7 @@ module.exports = class AwsS3Multipart extends Plugin {
     return new Promise((resolve, reject) => {
       const token = file.serverToken
       const host = getSocketHost(file.remote.serverUrl)
-      const socket = new UppySocket({ target: `${host}/api/${token}` })
+      const socket = new Socket({ target: `${host}/api/${token}` })
       this.uploaderSockets[socket] = socket
       this.uploaderEvents[file.id] = createEventTracker(this.uppy)
 

+ 1 - 1
src/plugins/Dropbox/index.js

@@ -1,5 +1,5 @@
 const Plugin = require('@uppy/core/lib/Plugin')
-const { Provider } = require('../../server')
+const { Provider } = require('@uppy/server-utils')
 const { ProviderView } = require('../../views')
 const icons = require('./icons')
 const { h } = require('preact')

+ 1 - 1
src/plugins/GoogleDrive/index.js

@@ -1,5 +1,5 @@
 const Plugin = require('@uppy/core/lib/Plugin')
-const { Provider } = require('../../server')
+const { Provider } = require('@uppy/server-utils')
 const { ProviderView } = require('../../views')
 const { h } = require('preact')
 

+ 1 - 1
src/plugins/Instagram/index.js

@@ -1,5 +1,5 @@
 const Plugin = require('@uppy/core/lib/Plugin')
-const { Provider } = require('../../server')
+const { Provider } = require('@uppy/server-utils')
 const { ProviderView } = require('../../views')
 const { h } = require('preact')
 

+ 2 - 3
src/plugins/Tus.js

@@ -1,7 +1,6 @@
 const Plugin = require('@uppy/core/lib/Plugin')
 const tus = require('tus-js-client')
-const UppySocket = require('../core/UppySocket')
-const { Provider, RequestClient } = require('../server')
+const { Provider, RequestClient, Socket } = require('@uppy/server-utils')
 const emitSocketProgress = require('@uppy/utils/lib/emitSocketProgress')
 const getSocketHost = require('@uppy/utils/lib/getSocketHost')
 const settle = require('@uppy/utils/lib/settle')
@@ -270,7 +269,7 @@ module.exports = class Tus extends Plugin {
     return new Promise((resolve, reject) => {
       const token = file.serverToken
       const host = getSocketHost(file.remote.serverUrl)
-      const socket = new UppySocket({ target: `${host}/api/${token}` })
+      const socket = new Socket({ target: `${host}/api/${token}` })
       this.uploaderSockets[file.id] = socket
       this.uploaderEvents[file.id] = createEventTracker(this.uppy)
 

+ 1 - 1
src/plugins/Url/index.js

@@ -1,7 +1,7 @@
 const Plugin = require('@uppy/core/lib/Plugin')
 const Translator = require('@uppy/utils/lib/Translator')
 const { h } = require('preact')
-const { RequestClient } = require('../../server')
+const { RequestClient } = require('@uppy/server-utils')
 const UrlUI = require('./UrlUI.js')
 const toArray = require('@uppy/utils/lib/toArray')
 

+ 2 - 3
src/plugins/XHRUpload.js

@@ -1,8 +1,7 @@
 const Plugin = require('@uppy/core/lib/Plugin')
 const cuid = require('cuid')
 const Translator = require('@uppy/utils/lib/Translator')
-const UppySocket = require('../core/UppySocket')
-const Provider = require('../server/Provider')
+const { Provider, Socket } = require('@uppy/server-utils')
 const emitSocketProgress = require('@uppy/utils/lib/emitSocketProgress')
 const getSocketHost = require('@uppy/utils/lib/getSocketHost')
 const settle = require('@uppy/utils/lib/settle')
@@ -326,7 +325,7 @@ module.exports = class XHRUpload extends Plugin {
       .then((res) => {
         const token = res.token
         const host = getSocketHost(file.remote.serverUrl)
-        const socket = new UppySocket({ target: `${host}/api/${token}` })
+        const socket = new Socket({ target: `${host}/api/${token}` })
 
         socket.on('progress', (progressData) => emitSocketProgress(this, progressData, file))