Some polish

This commit is contained in:
AJvanLoon 2017-03-15 21:06:44 +01:00 committed by GitHub
parent 14ead039b0
commit 3a3be87f47

View file

@ -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/) weve 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 🙀. Weve 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, weve 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!
## Informers 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: dont show per-file detailed progress by default — too much noise (@arturi)
- website: blog post and images cleanup (@arturi)
Enjoy!
The Uppy Team