1- var _ = require ( 'lodash' ) ;
2- var when = require ( 'when' ) ;
3- var logger = require ( '../logger' ) ;
1+ const _ = require ( 'lodash' ) ;
2+ const when = require ( 'when' ) ;
3+ const logger = require ( '../logger' ) ;
44
5- var globalize = require ( './globalize' ) ;
5+ const globalize = require ( './globalize' ) ;
66
77//The format of the response should always be an object with headers and body
8- var formatResponse = require ( './formatResponse' ) ;
8+ const formatResponse = require ( './formatResponse' ) ;
99
1010module . exports = function ( threadneedle , config , afterHeadersFunction , params ) {
1111
12- var afterHeadersConfig = { } ;
12+ const afterHeadersConfig = { } ;
1313 if ( _ . isFunction ( afterHeadersFunction ) ) {
1414 afterHeadersConfig . afterHeaders = afterHeadersFunction ;
1515 } else {
@@ -18,38 +18,34 @@ module.exports = function (threadneedle, config, afterHeadersFunction, params) {
1818 }
1919 }
2020
21- return when . promise ( function ( resolve , reject ) {
22- when ( config . call ( threadneedle , params ) )
23- . done (
24- function ( body ) {
25-
26- globalize . afterHeaders . call ( threadneedle , afterHeadersConfig , null , body , params , null )
27-
28- . done (
29- function ( headers ) {
30- resolve ( formatResponse ( headers , body ) ) ;
31- } ,
32- function ( afterHeadersError ) {
33- reject ( formatResponse ( { } , afterHeadersError ) ) ;
34- }
35- ) ;
36-
37- } ,
38- function ( functionError ) {
39-
40- globalize . afterHeaders . call ( threadneedle , afterHeadersConfig , functionError , null , params , null )
41-
42- . done (
43- function ( headers ) {
44- reject ( formatResponse ( headers , functionError ) ) ;
45- } ,
46- function ( afterHeadersError ) {
47- reject ( formatResponse ( { } , afterHeadersError || functionError ) ) ;
48- }
49- ) ;
50-
21+ return when . promise ( ( resolve , reject ) => {
22+ new Promise ( ( resolve , reject ) => {
23+ try {
24+ resolve ( config . call ( threadneedle , params ) ) ;
25+ } catch ( functionCallError ) {
26+ reject ( functionCallError ) ;
5127 }
52- ) ;
28+ } )
29+ . then ( ( body ) => {
30+ globalize . afterHeaders . call ( threadneedle , afterHeadersConfig , null , body , params , null )
31+
32+ . then ( ( headers ) => {
33+ resolve ( formatResponse ( headers , body ) ) ;
34+ } )
35+ . catch ( ( afterHeadersError ) => {
36+ reject ( formatResponse ( { } , afterHeadersError ) ) ;
37+ } ) ;
38+ } )
39+ . catch ( ( functionError ) => {
40+ globalize . afterHeaders . call ( threadneedle , afterHeadersConfig , functionError , null , params , null )
41+
42+ . then ( ( headers ) => {
43+ reject ( formatResponse ( headers , functionError ) ) ;
44+ } )
45+ . catch ( ( afterHeadersError ) => {
46+ reject ( formatResponse ( { } , afterHeadersError || functionError ) ) ;
47+ } ) ;
48+ } ) ;
5349 } ) ;
5450
55- } ;
51+ } ;
0 commit comments