Skip to content

Commit 5d998dc

Browse files
Merge pull request BrasilAPI#58 from filipedeschamps/refactor-remove-bluebird
refactor(dependency): Remove bluebird dependency from project.
2 parents 5e22aca + 97e26e5 commit 5d998dc

File tree

3 files changed

+17
-15
lines changed

3 files changed

+17
-15
lines changed

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@
6868
]
6969
},
7070
"dependencies": {
71-
"bluebird": "3.4.6",
7271
"isomorphic-fetch": "2.2.1",
7372
"lodash.get": "4.4.2",
7473
"xml2js": "0.4.16"

src/cep-promise.js

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
import fetchCorreios from './services/correios.js'
44
import fetchViaCep from './services/viacep.js'
5-
import Promise from 'bluebird'
65
import CepPromiseError from './errors/cep-promise.js'
6+
import Promise from './utils/promise-any.js'
77

88
const CEP_SIZE = 8
99

@@ -16,7 +16,7 @@ export default function (cepRawValue) {
1616
.then(leftPadWithZeros)
1717
.then(fetchCepFromServices)
1818
.then(resolvePromise)
19-
.catch(Promise.AggregateError, handleServicesError)
19+
.catch(handleServicesError)
2020
.catch(rejectWithCepPromiseError)
2121

2222
function validateInputType (cepRawValue) {
@@ -71,18 +71,14 @@ export default function (cepRawValue) {
7171
}
7272

7373
function handleServicesError (aggregatedErrors) {
74-
const errors = aggregatedErrors.map((error) => {
75-
return {
76-
message: error.message,
77-
service: error.service
78-
}
79-
})
80-
81-
throw new CepPromiseError({
82-
message: 'Todos os serviços de CEP retornaram erro.',
83-
type: 'service_error',
84-
errors: errors
85-
})
74+
if (aggregatedErrors.length !== undefined) {
75+
throw new CepPromiseError({
76+
message: 'Todos os serviços de CEP retornaram erro.',
77+
type: 'service_error',
78+
errors: aggregatedErrors
79+
})
80+
}
81+
throw aggregatedErrors
8682
}
8783

8884
function rejectWithCepPromiseError (error) {

src/utils/promise-any.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
'use strict'
2+
3+
const reverse = (promise) => new Promise((resolve, reject) => Promise.resolve(promise).then(reject, resolve))
4+
5+
Promise.any = (iterable) => reverse(Promise.all([...iterable].map(reverse)))
6+
7+
export default Promise

0 commit comments

Comments
 (0)