Browse Source

Revert "Revert "@uppy/companion-client: refactor to ESM"" (#3730)

This reverts commit 837bf04620f4a382a20764f170b5bfb529067068.
Antoine du Hamel 2 năm trước cách đây
mục cha
commit
888fc83ee2

+ 1 - 0
.eslintrc.js

@@ -200,6 +200,7 @@ module.exports = {
         'packages/@uppy/aws-s3/src/**/*.js',
         'packages/@uppy/aws-s3-multipart/src/**/*.js',
         'packages/@uppy/box/src/**/*.js',
+        'packages/@uppy/companion-client/src/**/*.js',
         'packages/@uppy/compressor/src/**/*.js',
         'packages/@uppy/dashboard/src/**/*.js',
         'packages/@uppy/drag-drop/src/**/*.js',

+ 4 - 0
packages/@uppy/companion-client/package.json

@@ -5,6 +5,7 @@
   "license": "MIT",
   "main": "lib/index.js",
   "types": "types/index.d.ts",
+  "type": "module",
   "keywords": [
     "file uploader",
     "uppy",
@@ -23,5 +24,8 @@
   "dependencies": {
     "@uppy/utils": "workspace:^",
     "namespace-emitter": "^2.0.1"
+  },
+  "devDependencies": {
+    "@jest/globals": "^27.4.2"
   }
 }

+ 1 - 1
packages/@uppy/companion-client/src/AuthError.js

@@ -8,4 +8,4 @@ class AuthError extends Error {
   }
 }
 
-module.exports = AuthError
+export default AuthError

+ 6 - 4
packages/@uppy/companion-client/src/Provider.js

@@ -1,13 +1,13 @@
 'use strict'
 
-const RequestClient = require('./RequestClient')
-const tokenStorage = require('./tokenStorage')
+import RequestClient from './RequestClient.js'
+import * as tokenStorage from './tokenStorage.js'
 
 const getName = (id) => {
   return id.split('-').map((s) => s.charAt(0).toUpperCase() + s.slice(1)).join(' ')
 }
 
-module.exports = class Provider extends RequestClient {
+export default class Provider extends RequestClient {
   constructor (uppy, opts) {
     super(uppy, opts)
     this.provider = opts.provider
@@ -37,7 +37,7 @@ module.exports = class Provider extends RequestClient {
   }
 
   onReceiveResponse (response) {
-    response = super.onReceiveResponse(response)
+    response = super.onReceiveResponse(response) // eslint-disable-line no-param-reassign
     const plugin = this.uppy.getPlugin(this.pluginId)
     const oldAuthenticated = plugin.getPluginState().authenticated
     const authenticated = oldAuthenticated ? response.status !== 401 : response.status < 400
@@ -106,6 +106,7 @@ module.exports = class Provider extends RequestClient {
   }
 
   static initPlugin (plugin, opts, defaultOpts) {
+    /* eslint-disable no-param-reassign */
     plugin.type = 'acquirer'
     plugin.files = []
     if (defaultOpts) {
@@ -131,5 +132,6 @@ module.exports = class Provider extends RequestClient {
     }
 
     plugin.storage = plugin.opts.storage || tokenStorage
+    /* eslint-enable no-param-reassign */
   }
 }

+ 7 - 6
packages/@uppy/companion-client/src/RequestClient.js

@@ -1,8 +1,10 @@
 'use strict'
 
-const fetchWithNetworkError = require('@uppy/utils/lib/fetchWithNetworkError')
-const ErrorWithCause = require('@uppy/utils/lib/ErrorWithCause')
-const AuthError = require('./AuthError')
+import fetchWithNetworkError from '@uppy/utils/lib/fetchWithNetworkError'
+import ErrorWithCause from '@uppy/utils/lib/ErrorWithCause'
+import AuthError from './AuthError.js'
+
+import packageJson from '../package.json'
 
 // Remove the trailing slash so we can always safely append /xyz.
 function stripSlash (url) {
@@ -30,9 +32,8 @@ async function handleJSONResponse (res) {
   return jsonPromise
 }
 
-module.exports = class RequestClient {
-  // eslint-disable-next-line global-require
-  static VERSION = require('../package.json').version
+export default class RequestClient {
+  static VERSION = packageJson.version
 
   #getPostResponseFunc = skip => response => (skip ? response : this.onReceiveResponse(response))
 

+ 2 - 1
packages/@uppy/companion-client/src/RequestClient.test.js

@@ -1,4 +1,5 @@
-const RequestClient = require('./RequestClient')
+import { describe, it, expect } from '@jest/globals'
+import RequestClient from './RequestClient.js'
 
 describe('RequestClient', () => {
   it('has a hostname without trailing slash', () => {

+ 3 - 4
packages/@uppy/companion-client/src/SearchProvider.js

@@ -1,12 +1,12 @@
 'use strict'
 
-const RequestClient = require('./RequestClient')
+import RequestClient from './RequestClient.js'
 
 const getName = (id) => {
   return id.split('-').map((s) => s.charAt(0).toUpperCase() + s.slice(1)).join(' ')
 }
 
-module.exports = class SearchProvider extends RequestClient {
+export default class SearchProvider extends RequestClient {
   constructor (uppy, opts) {
     super(uppy, opts)
     this.provider = opts.provider
@@ -20,7 +20,6 @@ module.exports = class SearchProvider extends RequestClient {
   }
 
   search (text, queries) {
-    queries = queries ? `&${queries}` : ''
-    return this.get(`search/${this.id}/list?q=${encodeURIComponent(text)}${queries}`)
+    return this.get(`search/${this.id}/list?q=${encodeURIComponent(text)}${queries ? `&${queries}` : ''}`)
   }
 }

+ 2 - 2
packages/@uppy/companion-client/src/Socket.js

@@ -1,6 +1,6 @@
-const ee = require('namespace-emitter')
+import ee from 'namespace-emitter'
 
-module.exports = class UppySocket {
+export default class UppySocket {
   #queued = []
 
   #emitter = ee()

+ 2 - 1
packages/@uppy/companion-client/src/Socket.test.js

@@ -1,4 +1,5 @@
-const UppySocket = require('./Socket')
+import { jest, describe, it, expect } from '@jest/globals'
+import UppySocket from './Socket.js'
 
 describe('Socket', () => {
   let webSocketConstructorSpy

+ 4 - 11
packages/@uppy/companion-client/src/index.js

@@ -4,14 +4,7 @@
  * Manages communications with Companion
  */
 
-const RequestClient = require('./RequestClient')
-const Provider = require('./Provider')
-const SearchProvider = require('./SearchProvider')
-const Socket = require('./Socket')
-
-module.exports = {
-  RequestClient,
-  Provider,
-  SearchProvider,
-  Socket,
-}
+export { default as RequestClient } from './RequestClient.js'
+export { default as Provider } from './Provider.js'
+export { default as SearchProvider } from './SearchProvider.js'
+export { default as Socket } from './Socket.js'

+ 3 - 3
packages/@uppy/companion-client/src/tokenStorage.js

@@ -3,18 +3,18 @@
 /**
  * This module serves as an Async wrapper for LocalStorage
  */
-module.exports.setItem = (key, value) => {
+export function setItem (key, value) {
   return new Promise((resolve) => {
     localStorage.setItem(key, value)
     resolve()
   })
 }
 
-module.exports.getItem = (key) => {
+export function getItem (key) {
   return Promise.resolve(localStorage.getItem(key))
 }
 
-module.exports.removeItem = (key) => {
+export function removeItem (key) {
   return new Promise((resolve) => {
     localStorage.removeItem(key)
     resolve()

+ 1 - 0
yarn.lock

@@ -9714,6 +9714,7 @@ __metadata:
   version: 0.0.0-use.local
   resolution: "@uppy/companion-client@workspace:packages/@uppy/companion-client"
   dependencies:
+    "@jest/globals": ^27.4.2
     "@uppy/utils": "workspace:^"
     namespace-emitter: ^2.0.1
   languageName: unknown