Ver Fonte

Move `Translator` into `@uppy/utils` package.

Available as `@uppy/utils/lib/Translator`.
The Translator tests were using `Core()` instead of `Translator()`, so I
changed it to using `Translator` instances directly. The functionality
being tested did not change.

Steps taken:

```bash
git mv src/core/Translator.* packages/@uppy/utils/src
sed -i 's/[./]*\/core\/Translator/@uppy\/utils\/lib\/Translator/' src/**/*.js
vim packages/@uppy/utils/src/Translator.test.js # Fix tests
```
Renée Kooi há 6 anos atrás
pai
commit
2c4e7eaa68

+ 0 - 0
src/core/Translator.js → packages/@uppy/utils/src/Translator.js


+ 55 - 0
packages/@uppy/utils/src/Translator.test.js

@@ -0,0 +1,55 @@
+const Translator = require('./Translator')
+// TODO use stubs instead
+const russian = require('../../../../src/locales/ru_RU')
+const english = require('../../../../src/locales/en_US')
+
+describe('Translator', () => {
+  describe('translate', () => {
+    it('should translate a string', () => {
+      const translator = new Translator({ locale: russian })
+      expect(translator.translate('chooseFile')).toEqual('Выберите файл')
+    })
+
+    it('should translate a string with non-string elements', () => {
+      const translator = new Translator({
+        locale: {
+          strings: {
+            test: 'Hello %{who}!',
+            test2: 'Hello %{who}'
+          }
+        }
+      })
+
+      const who = Symbol('who')
+      expect(translator.translateArray('test', { who: who })).toEqual(['Hello ', who, '!'])
+      // No empty string at the end.
+      expect(translator.translateArray('test2', { who: who })).toEqual(['Hello ', who])
+    })
+  })
+
+  describe('interpolation', () => {
+    it('should interpolate a string', () => {
+      const translator = new Translator({ locale: english })
+      expect(
+        translator.translate('youHaveChosen', { fileName: 'img.jpg' })
+      ).toEqual('You have chosen: img.jpg')
+    })
+  })
+
+  describe('pluralization', () => {
+    it('should translate a string', () => {
+      const translator = new Translator({ locale: russian })
+      expect(
+        translator.translate('filesChosen', { smart_count: 18 })
+      ).toEqual('Выбрано 18 файлов')
+
+      expect(
+        translator.translate('filesChosen', { smart_count: 1 })
+      ).toEqual('Выбран 1 файл')
+
+      expect(
+        translator.translate('filesChosen', { smart_count: 0 })
+      ).toEqual('Выбрано 0 файлов')
+    })
+  })
+})

+ 1 - 1
src/core/Core.js

@@ -1,4 +1,4 @@
-const Translator = require('../core/Translator')
+const Translator = require('@uppy/utils/lib/Translator')
 const ee = require('namespace-emitter')
 const cuid = require('cuid')
 // const throttle = require('lodash.throttle')

+ 0 - 54
src/core/Translator.test.js

@@ -1,54 +0,0 @@
-const Core = require('../../src/core/index.js')
-const russian = require('../../src/locales/ru_RU')
-const english = require('../../src/locales/en_US')
-
-describe('core/translator', () => {
-  describe('translate', () => {
-    it('should translate a string', () => {
-      const core = new Core({ locale: russian })
-      expect(core.translator.translate('chooseFile')).toEqual('Выберите файл')
-    })
-
-    it('should translate a string with non-string elements', () => {
-      const core = new Core({
-        locale: {
-          strings: {
-            test: 'Hello %{who}!',
-            test2: 'Hello %{who}'
-          }
-        }
-      })
-
-      const who = Symbol('who')
-      expect(core.translator.translateArray('test', { who: who })).toEqual(['Hello ', who, '!'])
-      // No empty string at the end.
-      expect(core.translator.translateArray('test2', { who: who })).toEqual(['Hello ', who])
-    })
-  })
-
-  describe('interpolation', () => {
-    it('should interpolate a string', () => {
-      const core = new Core({ locale: english })
-      expect(
-        core.translator.translate('youHaveChosen', { fileName: 'img.jpg' })
-      ).toEqual('You have chosen: img.jpg')
-    })
-  })
-
-  describe('pluralization', () => {
-    it('should translate a string', () => {
-      const core = new Core({ locale: russian })
-      expect(
-        core.translator.translate('filesChosen', { smart_count: 18 })
-      ).toEqual('Выбрано 18 файлов')
-
-      expect(
-        core.translator.translate('filesChosen', { smart_count: 1 })
-      ).toEqual('Выбран 1 файл')
-
-      expect(
-        core.translator.translate('filesChosen', { smart_count: 0 })
-      ).toEqual('Выбрано 0 файлов')
-    })
-  })
-})

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

@@ -1,6 +1,6 @@
 const resolveUrl = require('resolve-url')
 const Plugin = require('../../core/Plugin')
-const Translator = require('../../core/Translator')
+const Translator = require('@uppy/utils/lib/Translator')
 const limitPromises = require('@uppy/utils/lib/limitPromises')
 const XHRUpload = require('../XHRUpload')
 

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

@@ -1,5 +1,5 @@
 const Plugin = require('../../core/Plugin')
-const Translator = require('../../core/Translator')
+const Translator = require('@uppy/utils/lib/Translator')
 const dragDrop = require('drag-drop')
 const DashboardUI = require('./Dashboard')
 const StatusBar = require('../StatusBar')

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

@@ -1,5 +1,5 @@
 const Plugin = require('../../core/Plugin')
-const Translator = require('../../core/Translator')
+const Translator = require('@uppy/utils/lib/Translator')
 const toArray = require('@uppy/utils/lib/toArray')
 const dragDrop = require('drag-drop')
 const { h } = require('preact')

+ 1 - 1
src/plugins/FileInput.js

@@ -1,6 +1,6 @@
 const Plugin = require('../core/Plugin')
 const toArray = require('@uppy/utils/lib/toArray')
-const Translator = require('../core/Translator')
+const Translator = require('@uppy/utils/lib/Translator')
 const { h } = require('preact')
 
 module.exports = class FileInput extends Plugin {

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

@@ -1,5 +1,5 @@
 const Plugin = require('../../core/Plugin')
-const Translator = require('../../core/Translator')
+const Translator = require('@uppy/utils/lib/Translator')
 const StatusBarUI = require('./StatusBar')
 const statusBarStates = require('./StatusBarStates')
 const getSpeed = require('@uppy/utils/lib/getSpeed')

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

@@ -1,4 +1,4 @@
-const Translator = require('../../core/Translator')
+const Translator = require('@uppy/utils/lib/Translator')
 const Plugin = require('../../core/Plugin')
 const Tus = require('../Tus')
 const Client = require('./Client')

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

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

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

@@ -1,6 +1,6 @@
 const { h } = require('preact')
 const Plugin = require('../../core/Plugin')
-const Translator = require('../../core/Translator')
+const Translator = require('@uppy/utils/lib/Translator')
 const getFileTypeExtension = require('@uppy/utils/lib/getFileTypeExtension')
 const canvasToBlob = require('@uppy/utils/lib/canvasToBlob')
 const supportsMediaRecorder = require('./supportsMediaRecorder')

+ 1 - 1
src/plugins/XHRUpload.js

@@ -1,6 +1,6 @@
 const Plugin = require('../core/Plugin')
 const cuid = require('cuid')
-const Translator = require('../core/Translator')
+const Translator = require('@uppy/utils/lib/Translator')
 const UppySocket = require('../core/UppySocket')
 const Provider = require('../server/Provider')
 const emitSocketProgress = require('@uppy/utils/lib/emitSocketProgress')