Skip to content
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

Merged
merged 4 commits into from Aug 4, 2022
Merged

Conversation

mifi
Copy link
Contributor

@mifi mifi commented Jul 24, 2022

also refactored to async/await

fixes #3580

@mifi mifi requested a review from Murderlon July 24, 2022 12:58
modifiedDate: adapter.getItemModifiedDate(item),
size: adapter.getItemSize(item),
}))
items.sort((a, b) => a.name.localeCompare(b.name, 'en-US', { numeric: true }))
Copy link
Member

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.

Copy link
Contributor Author

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
Copy link
Member

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

@Murderlon Murderlon changed the title Dropbox sort Companion: sort Dropbox response & refactor to async/await Jul 25, 2022
responses.forEach((response) => {
if (response.statusCode !== 200) throw this._error(null, response)
})
const [{ body: stats }, { body: { email } }] = responses
Copy link
Contributor Author

@mifi mifi Jul 25, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
const [{ body: stats }, { body: { email } }] = responses
const { body: stats } = responses[0]
const { body: { email } } = responses[1]

Comment on lines +34 to +35
}))
items.sort((a, b) => a.name.localeCompare(b.name, 'en-US', { numeric: true }))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
}))
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 }))

Copy link
Contributor Author

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

Copy link
Member

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))()
Copy link
Member

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 })

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure i follow

Copy link
Member

@aduh95 aduh95 Jul 27, 2022

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.

Copy link
Contributor Author

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?

Copy link
Contributor Author

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 })

Copy link
Member

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.

Copy link
Member

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?

@aduh95
Copy link
Member

aduh95 commented Jul 26, 2022

also refactored to async/await

Likely a breaking change, right? It might be safer to land on 3.x only.

@mifi
Copy link
Contributor Author

mifi commented Jul 26, 2022

Likely a breaking change, right? It might be safer to land on 3.x only.

why is it a breaking change? I don't think anyone is supposed to subclass Dropbox if that's what you're thinking of

@aduh95
Copy link
Member

aduh95 commented Jul 27, 2022

Likely a breaking change, right? It might be safer to land on 3.x only.

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?

@aduh95 aduh95 merged commit 3c08f74 into main Aug 4, 2022
@aduh95 aduh95 deleted the dropbox-sort branch August 4, 2022 16:17
This was referenced Aug 16, 2022
github-actions bot added a commit that referenced this pull request Aug 16, 2022
| 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)
HeavenFox pushed a commit to docsend/uppy that referenced this pull request Jun 27, 2023
| 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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Dropbox folders/files are not sorted alphabetically
3 participants