mirror of
https://github.com/transloadit/uppy.git
synced 2026-07-25 19:23:55 +00:00
Some polish
This commit is contained in:
parent
14ead039b0
commit
3a3be87f47
1 changed files with 22 additions and 20 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue