|
@@ -5,31 +5,31 @@ author: arturi
|
|
|
published: false
|
|
|
---
|
|
|
|
|
|
-Exciting stories about `babel-plugin-yo-yoify`, progress event throttling and new friends await you in this post about Uppy 0.15.
|
|
|
+Spring is in the air and Uppy is feeling particularly full of life. In this post about Uppy 0.15, we have some exciting stories about `babel-plugin-yo-yoify` and progress event throttling. And we'd also like you to meet our new friend, Renée!
|
|
|
|
|
|
<!-- more -->
|
|
|
|
|
|
-## Yo-yoify For NPM-installed Uppy
|
|
|
+## Yo-yoify for NPM-installed Uppy
|
|
|
|
|
|
-In [`0.14`](http://localhost:4000/blog/2017/02/0.14/) we’ve added `yo-yoify` transform to speed Uppy up and eliminate `Function.caller` issues. Turns out, we [forgot](https://github.com/transloadit/uppy/issues/158) about our Babel-transpiled `lib` version of Uppy that gets published to NPM 🙀. We’ve spent some time creating a standalone version of `yo-yoify` that could parse `yo-yo` template strings before Babel-transpilation, only to discover that there is a [`babel-plugin-yo-yoify`](https://www.npmjs.com/package/babel-plugin-yo-yoify) that does precisely that, and frees us from jumping through hoops. It [had](https://github.com/goto-bus-stop/babel-plugin-yo-yoify/issues/9) [some](https://github.com/goto-bus-stop/babel-plugin-yo-yoify/pull/8) [issues](https://github.com/goto-bus-stop/babel-plugin-yo-yoify/issues/11) that we collaborated on with a friendly [Renée](https://github.com/goto-bus-stop), who also agreed to join Uppy for a while to help us with other pressing issues. So, silver linings — bugs sometimes lead to new friends and wonderful beginnings. We are very excited.
|
|
|
+In [`0.14`](http://localhost:4000/blog/2017/02/0.14/), we added `yo-yoify` transform to give Uppy some extra speed and eliminate `Function.caller` issues. As it turned out, we [forgot](https://github.com/transloadit/uppy/issues/158) about our Babel-transpiled `lib` version of Uppy that gets published to NPM 🙀. We then spent some time creating a standalone version of `yo-yoify` that would be able to parse `yo-yo` template strings before Babel-transpilation, only to discover that there already is a [`babel-plugin-yo-yoify`](https://www.npmjs.com/package/babel-plugin-yo-yoify) that not only does precisely that, but also frees us from jumping through a lot of unnecessary hoops. It did [have](https://github.com/goto-bus-stop/babel-plugin-yo-yoify/issues/9) [a few](https://github.com/goto-bus-stop/babel-plugin-yo-yoify/pull/8) [issues](https://github.com/goto-bus-stop/babel-plugin-yo-yoify/issues/11) at first, but luckily our friend [Renée](https://github.com/goto-bus-stop) was available to colaborate with us on this. Renée has also agreed to join Uppy for a while to help us with other pressing issues. So, silver linings — bugs can sometimes lead to new friends and wonderful beginnings. We are very excited about what this all means for Uppy in the months to come.
|
|
|
|
|
|
-So, Uppy from NPM is now good to go, the issue has been resolved. Please update: https://www.npmjs.com/package/uppy. And yeah, if you use `yo-yo`, try [`babel-plugin-yo-yoify`](https://www.npmjs.com/package/babel-plugin-yo-yoify).
|
|
|
+Uppy from NPM is now good to go and the issue has been completely resolved. You can update at: https://www.npmjs.com/package/uppy. And yeah, if you use `yo-yo`, give [`babel-plugin-yo-yoify`](https://www.npmjs.com/package/babel-plugin-yo-yoify) a try.
|
|
|
|
|
|
## Pause & Resume Remote Uploads
|
|
|
|
|
|
-Uploads via `uppy-server` and `tus`, which happen when you select files from Google Drive or Dropbox, for example, can now be paused and resumed, just like “local” uploads 🎉
|
|
|
+Just like with “local” uploads, Uppy now also has the possibility to pause and resume any uploads as long as they are handled by either `uppy-server` or `tus`, which happens when you select files from, for example, Google Drive or Dropbox. 🎉
|
|
|
|
|
|
## Progress Throttling
|
|
|
|
|
|
-While working on pausing remote uploads with `uppy-server` Ife discovered a strange bug: uppy-client would hang during the upload, and the progress would jump straight to 100% afterwards. Turns out, uploads were happening too fast, which led to progress events being sent very very often (like 300 / second), which trashed the interface rendering loop. This was solved by [adding throttling in tus-js-client](https://github.com/tus/tus-js-client/commit/9940f27b2361fd7e10ba58b09b60d82422183bbb) (thanks Marius!) and [uppy-server](https://github.com/transloadit/uppy-server/commit/936ad48e92631c45d123664900b9aabcf7a190fa) (thanks Ife!). And I will take this opportunity to thank myself for [fixing](https://github.com/transloadit/uppy/commit/1d5f4404546420442deabc94df84bd3ec0677eec) [it](https://github.com/transloadit/uppy/commit/db32c6f4fd85420532f27f04920dbaf6d126ea9b) in uppy-client too.
|
|
|
+While working on pausing remote uploads with `uppy-server`, Ife discovered a strange bug: uppy-client would hang during the upload, after which the progress would immediately jump to 100%. After some solid Sherlock Holmesing, we found what was causing it: uploads were happening too fast. This was leading to progress events being sent very, very often (like 300 / second), which trashed the interface rendering loop. We have solved this by [adding throttling in tus-js-client](https://github.com/tus/tus-js-client/commit/9940f27b2361fd7e10ba58b09b60d82422183bbb) (thanks Marius!) and [uppy-server](https://github.com/transloadit/uppy-server/commit/936ad48e92631c45d123664900b9aabcf7a190fa) (thanks Ife!). I would also very much like to take this opportunity to thank myself for [fixing](https://github.com/transloadit/uppy/commit/1d5f4404546420442deabc94df84bd3ec0677eec) [it](https://github.com/transloadit/uppy/commit/db32c6f4fd85420532f27f04920dbaf6d126ea9b) in uppy-client too! :innocent:
|
|
|
|
|
|
-To prevent “jumping” progress numbers and text in StatusBar are only updated once a second. Plus, we’ve switched to [`prettier-bytes`](https://www.npmjs.com/package/prettier-bytes) that adds some nice number rounding. Smooth!
|
|
|
+To prevent “jumping” progress, numbers and text in StatusBar are now only updated once a second. Plus, we have also switched to [`prettier-bytes`](https://www.npmjs.com/package/prettier-bytes), which adds some nice number rounding. Smooth as butter, baby!
|
|
|
|
|
|
-TL;DR Uppy is very fast at uploading!
|
|
|
+TL;DR Uppy was simply too fast at uploading, so we had to shorten the leash a bit!
|
|
|
|
|
|
-## Informer’s got colors
|
|
|
+## Informer coming at you in full-color mode
|
|
|
|
|
|
-Informer now changes its looks depending on the `type` argument:
|
|
|
+Informer will now be able to change the way it looks depending on the `type` argument:
|
|
|
|
|
|
```js
|
|
|
// (`'informer'`, `text`, `type`, `duration`)
|
|
@@ -38,29 +38,29 @@ uppy.emit('informer', 'Connected!', 'success', 3000)
|
|
|
|
|
|
<img src="/images/blog/0.15/informer.png">
|
|
|
|
|
|
-Supports the following `type`s: `info`, `warning`, `error`, `success`, all with their own colors!
|
|
|
+This supports the following `type`s: `info`, `warning`, `error`, `success`, all with their own colors!
|
|
|
|
|
|
## Some other things
|
|
|
|
|
|
- Multipart now treats all 2xx responses as successful and returns xhr object in `core:upload-success` event callback.
|
|
|
-- That progress circle that use see on each file in Dashboard has been improved on the inside: precise `circleLength` and `stroke-dasharray/stroke-dashoffset` calculation.
|
|
|
+- That progress circle that you can see on each file in Dashboard has been improved on the inside: precise `circleLength` and `stroke-dasharray/stroke-dashoffset` calculation.
|
|
|
- Uppy-server returns uploaded file urls and sizes for remote uploads (from Google Drive & Dropbox).
|
|
|
-- Provider plugins now have a loading screen and error screen, logout link. Breadcrumbs are working again.
|
|
|
+- Provider plugins now have a loading screen, error screen and logout link. Breadcrumbs are also working again.
|
|
|
|
|
|
## Release Notes
|
|
|
|
|
|
-Here is the full list of changes for version 0.14:
|
|
|
+Here is the full list of changes for version 0.15:
|
|
|
|
|
|
- build: update dependencies and eslint-plugin-standard, nodemon --> onchange, because simpler and better options (@arturi)
|
|
|
- build: fix `Function.caller` issue in `lib` which gets published to NPM package, add babel-plugin-yo-yoify (@arturi #158 #163)
|
|
|
-- provider: show error view for things like not being able to connect to uppy server should this be happening when uppy-server is unavailable http://i.imgur.com/cYJakc9.png (@arturi, @ifedapoolarewaju)
|
|
|
-- provider: loading indicator while the GoogleDrive / Dropbox files are loading (@arturi, @ifedapoolarewaju)
|
|
|
-- provider: logout link/button? (@arturi, @ifedapoolarewaju)
|
|
|
+- provider: show error view for things like not being able to connect to uppy server, should this be happening when uppy-server is unavailable http://i.imgur.com/cYJakc9.png (@arturi, @ifedapoolarewaju)
|
|
|
+- provider: loading indicator while files from GoogleDrive / Dropbox are loading (@arturi, @ifedapoolarewaju)
|
|
|
+- provider: logout link/button (@arturi, @ifedapoolarewaju)
|
|
|
- provider: fix breadcrumbs (@ifedapoolarewaju)
|
|
|
- server: refactor local/remote uploads in tus, allow for pause/resume with remote upload (@arturi, @ifedapoolarewaju)
|
|
|
-- server: throttle progress updates sent through websockets, sometimes it can get overwhelming when uploads are fast (@ifedapoolarewaju)
|
|
|
-- server: pass file size from Google Drive / Dropbox ? (@ifedapoolarewaju)
|
|
|
-- server: return uploaded file urls (from Google Drive / Dropbox) ? (@ifedapoolarewaju)
|
|
|
+- server: throttle progress updates sent through websockets, sometimes it can be overwhelming when uploads are getting this fast (@ifedapoolarewaju)
|
|
|
+- server: pass file size from Google Drive / Dropbox (@ifedapoolarewaju)
|
|
|
+- server: return uploaded file urls (from Google Drive / Dropbox) (@ifedapoolarewaju)
|
|
|
- server: research having less permissions, smaller auth expiration time for security (@ifedapoolarewaju)
|
|
|
- dashboard: basic React component (@arturi)
|
|
|
- core: experiment with `nanoraf` and `requestAnimationFrame` (@arturi)
|
|
@@ -75,4 +75,6 @@ Here is the full list of changes for version 0.14:
|
|
|
- dashboard: don’t show per-file detailed progress by default — too much noise (@arturi)
|
|
|
- website: blog post and images cleanup (@arturi)
|
|
|
|
|
|
+Enjoy!
|
|
|
+
|
|
|
The Uppy Team
|