-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Companion: sort Dropbox response & refactor to async/await #3897
Conversation
modifiedDate: adapter.getItemModifiedDate(item), | ||
size: adapter.getItemSize(item), | ||
})) | ||
items.sort((a, b) => a.name.localeCompare(b.name, 'en-US', { numeric: true })) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This works too, but I'm sure the Dropbox API supports a query parameter to do it for us. Either way is fine I suppose.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
responses.forEach((response) => { | ||
if (response.statusCode !== 200) throw this._error(null, response) | ||
}) | ||
const [{ body: stats }, { body: { email } }] = responses |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: triple destructering hurts readability
responses.forEach((response) => { | ||
if (response.statusCode !== 200) throw this._error(null, response) | ||
}) | ||
const [{ body: stats }, { body: { email } }] = responses |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
const [{ body: stats }, { body: { email } }] = responses | |
const { body: stats } = responses[0] | |
const { body: { email } } = responses[1] |
})) | ||
items.sort((a, b) => a.name.localeCompare(b.name, 'en-US', { numeric: true })) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
})) | |
items.sort((a, b) => a.name.localeCompare(b.name, 'en-US', { numeric: true })) | |
})).sort((a, b) => a.name.localeCompare(b.name, 'en-US', { numeric: true })) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i think it reads better on a separate line
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't, and also it's not immediately obvious that .sort
would modify the original array if you're not familiar. I won't push it if that's your preference though.
.post('files/list_folder/continue') | ||
.options({ version: '2' }) | ||
.auth(token) | ||
.json({ | ||
cursor: query.cursor, | ||
}) | ||
.request(done) | ||
return | ||
return promisify(client.request.bind(client))() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Intead, let's pass promise:true
when creating the purest instance here
const purest = require('purest')({ request }) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not sure i follow
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
purest
supports promises out of the box, let's use that instead of promisifying their API over and over again.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i cannot find any promise:true
option documented anywhere. are you sure it's for purest?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ahh, now i see, v4 uses promises by default. maybe we can try to upgrade to purest v4. or v3 uses require('purest')({ request, promise: Promise })
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh ok, I've seen the promise
option and assumed it was a boolean. Yes, let's upgrade, they've dropped support for Node.js 10.x but have we on 3.x
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we're not upgrading or migrating just yet, can we use the promise
option?
Likely a breaking change, right? It might be safer to land on |
why is it a breaking change? I don't think anyone is supposed to subclass Dropbox if that's what you're thinking of |
It's not because they're not suppose to do it that they're not doing it. Anyways, v4 release is so close, why not take a prudent approach and call it a breaking change just in case? |
| Package | Version | Package | Version | | ------------------------- | ------------ | ------------------------- | ------------ | | @uppy/audio | 1.0.0-beta.2 | @uppy/progress-bar | 3.0.0-beta.2 | | @uppy/aws-s3 | 3.0.0-beta.3 | @uppy/provider-views | 3.0.0-beta.3 | | @uppy/aws-s3-multipart | 3.0.0-beta.4 | @uppy/react | 3.0.0-beta.4 | | @uppy/box | 2.0.0-beta.2 | @uppy/redux-dev-tools | 3.0.0-beta.2 | | @uppy/companion | 4.0.0-beta.4 | @uppy/remote-sources | 1.0.0-beta.4 | | @uppy/companion-client | 3.0.0-beta.2 | @uppy/screen-capture | 3.0.0-beta.3 | | @uppy/compressor | 1.0.0-beta.3 | @uppy/status-bar | 3.0.0-beta.3 | | @uppy/core | 3.0.0-beta.4 | @uppy/store-default | 3.0.0-beta.3 | | @uppy/dashboard | 3.0.0-beta.4 | @uppy/store-redux | 3.0.0-beta.3 | | @uppy/drag-drop | 3.0.0-beta.2 | @uppy/svelte | 2.0.0-beta.2 | | @uppy/drop-target | 2.0.0-beta.3 | @uppy/thumbnail-generator | 3.0.0-beta.2 | | @uppy/dropbox | 3.0.0-beta.2 | @uppy/transloadit | 3.0.0-beta.5 | | @uppy/facebook | 3.0.0-beta.2 | @uppy/tus | 3.0.0-beta.3 | | @uppy/file-input | 3.0.0-beta.2 | @uppy/unsplash | 3.0.0-beta.2 | | @uppy/form | 3.0.0-beta.2 | @uppy/url | 3.0.0-beta.3 | | @uppy/golden-retriever | 3.0.0-beta.2 | @uppy/utils | 5.0.0-beta.1 | | @uppy/google-drive | 3.0.0-beta.2 | @uppy/vue | 1.0.0-beta.2 | | @uppy/image-editor | 2.0.0-beta.3 | @uppy/webcam | 3.0.0-beta.3 | | @uppy/informer | 3.0.0-beta.3 | @uppy/xhr-upload | 3.0.0-beta.3 | | @uppy/instagram | 3.0.0-beta.2 | @uppy/zoom | 2.0.0-beta.2 | | @uppy/locales | 3.0.0-beta.4 | uppy | 3.0.0-beta.5 | | @uppy/onedrive | 3.0.0-beta.2 | | | - meta: prepare release workflow for beta versions (Antoine du Hamel) - @uppy/provider-views: Reset filter input correctly in provider views (Merlijn Vos / #3978) - @uppy/aws-s3-multipart: Fix when using Companion (Merlijn Vos / #3969) - @uppy/companion: Companion: bring back default upload protocol (Mikael Finstad / #3967) - meta: Update CONTRIBUTING.md (Mikael Finstad / #3966) - meta: fix contributing link (Mikael Finstad / #3968) - @uppy/companion: enforce usage of uploadUrls (Mikael Finstad / #3965) - @uppy/utils: Fix webp mimetype (Merlijn Vos / #3961) - @uppy/locales: Add compressor string translation to Japanese locale (kenken / #3963) - meta: Fix statement about cropping images in README.md (Mikael Finstad / #3964) - @uppy/aws-s3-multipart: Fix race condition in `#uploadParts` (Morgan Zolob / #3955) - @uppy/provider-views: core validateRestrictions: return error directly vs the result/reason obj (Artur Paikin / #3951) - @uppy/aws-s3: Export AwsS3UploadParameters & AwsS3Options interfaces (Antonina Vertsinskaya / #3956) - website: convert all website examples to ESM (Antoine du Hamel / #3957) - @uppy/companion: fix crash if redis disconnects (Mikael Finstad / #3954) - @uppy/companion: upgrade `ws` version (Antoine du Hamel / #3949) - @uppy/companion: sort Dropbox response & refactor to async/await (Mikael Finstad / #3897) - @uppy/utils: modernize `getDroppedFiles` (Antoine du Hamel / #3534) - @uppy/companion: fix default getKey for non-standalone too (Mikael Finstad / #3945) - @uppy/aws-s3-multipart: ignore exception inside `abortMultipartUpload` (Antoine du Hamel / #3950) - @uppy/companion: remove `isobject` from dependencies (Antoine du Hamel / #3948) - @uppy/compressor: Fix Compressor being broken when no name is in the compressed blob (Artur Paikin / #3947) - @uppy/core,@uppy/react: Fix all breaking todo comments for 3.0 (Merlijn Vos / #3907) - @uppy/companion: show deprecation message when using legacy s3 options (Antoine du Hamel / #3944) - example: fix aws-companion example (Antoine du Hamel / #3850)
| Package | Version | Package | Version | | ------------------------- | ------------ | ------------------------- | ------------ | | @uppy/audio | 1.0.0-beta.2 | @uppy/progress-bar | 3.0.0-beta.2 | | @uppy/aws-s3 | 3.0.0-beta.3 | @uppy/provider-views | 3.0.0-beta.3 | | @uppy/aws-s3-multipart | 3.0.0-beta.4 | @uppy/react | 3.0.0-beta.4 | | @uppy/box | 2.0.0-beta.2 | @uppy/redux-dev-tools | 3.0.0-beta.2 | | @uppy/companion | 4.0.0-beta.4 | @uppy/remote-sources | 1.0.0-beta.4 | | @uppy/companion-client | 3.0.0-beta.2 | @uppy/screen-capture | 3.0.0-beta.3 | | @uppy/compressor | 1.0.0-beta.3 | @uppy/status-bar | 3.0.0-beta.3 | | @uppy/core | 3.0.0-beta.4 | @uppy/store-default | 3.0.0-beta.3 | | @uppy/dashboard | 3.0.0-beta.4 | @uppy/store-redux | 3.0.0-beta.3 | | @uppy/drag-drop | 3.0.0-beta.2 | @uppy/svelte | 2.0.0-beta.2 | | @uppy/drop-target | 2.0.0-beta.3 | @uppy/thumbnail-generator | 3.0.0-beta.2 | | @uppy/dropbox | 3.0.0-beta.2 | @uppy/transloadit | 3.0.0-beta.5 | | @uppy/facebook | 3.0.0-beta.2 | @uppy/tus | 3.0.0-beta.3 | | @uppy/file-input | 3.0.0-beta.2 | @uppy/unsplash | 3.0.0-beta.2 | | @uppy/form | 3.0.0-beta.2 | @uppy/url | 3.0.0-beta.3 | | @uppy/golden-retriever | 3.0.0-beta.2 | @uppy/utils | 5.0.0-beta.1 | | @uppy/google-drive | 3.0.0-beta.2 | @uppy/vue | 1.0.0-beta.2 | | @uppy/image-editor | 2.0.0-beta.3 | @uppy/webcam | 3.0.0-beta.3 | | @uppy/informer | 3.0.0-beta.3 | @uppy/xhr-upload | 3.0.0-beta.3 | | @uppy/instagram | 3.0.0-beta.2 | @uppy/zoom | 2.0.0-beta.2 | | @uppy/locales | 3.0.0-beta.4 | uppy | 3.0.0-beta.5 | | @uppy/onedrive | 3.0.0-beta.2 | | | - meta: prepare release workflow for beta versions (Antoine du Hamel) - @uppy/provider-views: Reset filter input correctly in provider views (Merlijn Vos / transloadit#3978) - @uppy/aws-s3-multipart: Fix when using Companion (Merlijn Vos / transloadit#3969) - @uppy/companion: Companion: bring back default upload protocol (Mikael Finstad / transloadit#3967) - meta: Update CONTRIBUTING.md (Mikael Finstad / transloadit#3966) - meta: fix contributing link (Mikael Finstad / transloadit#3968) - @uppy/companion: enforce usage of uploadUrls (Mikael Finstad / transloadit#3965) - @uppy/utils: Fix webp mimetype (Merlijn Vos / transloadit#3961) - @uppy/locales: Add compressor string translation to Japanese locale (kenken / transloadit#3963) - meta: Fix statement about cropping images in README.md (Mikael Finstad / transloadit#3964) - @uppy/aws-s3-multipart: Fix race condition in `#uploadParts` (Morgan Zolob / transloadit#3955) - @uppy/provider-views: core validateRestrictions: return error directly vs the result/reason obj (Artur Paikin / transloadit#3951) - @uppy/aws-s3: Export AwsS3UploadParameters & AwsS3Options interfaces (Antonina Vertsinskaya / transloadit#3956) - website: convert all website examples to ESM (Antoine du Hamel / transloadit#3957) - @uppy/companion: fix crash if redis disconnects (Mikael Finstad / transloadit#3954) - @uppy/companion: upgrade `ws` version (Antoine du Hamel / transloadit#3949) - @uppy/companion: sort Dropbox response & refactor to async/await (Mikael Finstad / transloadit#3897) - @uppy/utils: modernize `getDroppedFiles` (Antoine du Hamel / transloadit#3534) - @uppy/companion: fix default getKey for non-standalone too (Mikael Finstad / transloadit#3945) - @uppy/aws-s3-multipart: ignore exception inside `abortMultipartUpload` (Antoine du Hamel / transloadit#3950) - @uppy/companion: remove `isobject` from dependencies (Antoine du Hamel / transloadit#3948) - @uppy/compressor: Fix Compressor being broken when no name is in the compressed blob (Artur Paikin / transloadit#3947) - @uppy/core,@uppy/react: Fix all breaking todo comments for 3.0 (Merlijn Vos / transloadit#3907) - @uppy/companion: show deprecation message when using legacy s3 options (Antoine du Hamel / transloadit#3944) - example: fix aws-companion example (Antoine du Hamel / transloadit#3850)
also refactored to async/await
fixes #3580