1- var Promise = window . Promise || require ( 'native-promise-only' )
1+ import NativePromise from 'native-promise-only'
2+ const Promise = window . Promise || NativePromise
23
3- function isObject ( obj ) {
4+ export function isObject ( obj ) {
45 return ( obj !== null && typeof obj === 'object' )
56}
67
78function decode ( s ) {
89 return decodeURIComponent ( ( s || '' ) . replace ( / \+ / g, ' ' ) )
910}
1011
11- function queryParameters ( queryString ) {
12+ export function queryParameters ( queryString ) {
1213 queryString = queryString || ''
1314
14- var result = { }
15- var keyValuePairs
16- var keyAndValue
17- var key
18- var value
15+ const result = { }
16+ let keyValuePairs , keyAndValue , key , value
1917
2018 if ( queryString . search ( / \? | # / ) === 0 ) {
2119 queryString = queryString . slice ( 1 )
@@ -25,7 +23,7 @@ function queryParameters (queryString) {
2523
2624 keyValuePairs = queryString . split ( '&' )
2725
28- for ( var i = 0 ; i < keyValuePairs . length ; i ++ ) {
26+ for ( let i = 0 ; i < keyValuePairs . length ; i ++ ) {
2927 keyAndValue = keyValuePairs [ i ] . split ( '=' )
3028 key = decode ( keyAndValue [ 0 ] )
3129 value = decode ( keyAndValue [ 1 ] ) || ''
@@ -36,8 +34,8 @@ function queryParameters (queryString) {
3634}
3735
3836function isPromise ( obj ) {
39- return obj instanceof Promise ||
40- ( ! ! obj && obj . then && typeof obj . then === 'function' )
37+ if ( obj instanceof Promise ) return true
38+ return ! ! obj && obj . then && typeof obj . then === 'function'
4139}
4240
4341function shouldReject ( val ) {
@@ -46,7 +44,7 @@ function shouldReject (val) {
4644 typeof val === 'string'
4745}
4846
49- function isString ( key ) {
47+ export function isString ( key ) {
5048 return typeof key === 'string'
5149}
5250
@@ -57,20 +55,19 @@ function isString (key) {
5755// c) first to settle with a falsy value
5856// c) is sub-optimal, since it has a specific narrow use-case
5957// for save hooks
60- function when ( items ) {
58+ export function when ( items ) {
6159 items = items || [ ]
62- var resolveAll
63- var rejectAll
64- var allResolvedPromise = new Promise ( function ( resolve , reject ) {
60+ let resolveAll , rejectAll
61+ const allResolvedPromise = new Promise ( ( resolve , reject ) => {
6562 resolveAll = resolve
6663 rejectAll = reject
6764 } )
68- var remaining = 0
69- var settledWith = [ ]
70- var itemsCopy = Array . isArray ( items )
71- ? items . slice ( )
72- : [ items ]
73- var resolveWith = function ( data , index ) {
65+
66+ let remaining = 0
67+ const settledWith = [ ]
68+ const itemsCopy = Array . isArray ( items ) ? items . slice ( ) : [ items ]
69+
70+ function resolveWith ( data , index ) {
7471 settledWith [ index ] = data
7572
7673 if ( -- remaining <= 0 ) {
@@ -85,13 +82,12 @@ function when (items) {
8582 return allResolvedPromise
8683 }
8784
88- itemsCopy . forEach ( function ( item , index ) {
89- var promise
90-
85+ itemsCopy . forEach ( ( item , index ) => {
86+ let promise
9187 if ( isPromise ( item ) ) {
9288 promise = item
9389 } else if ( typeof item === 'function' ) {
94- var res
90+ let res
9591 try {
9692 res = item ( )
9793 if ( isPromise ( res ) ) {
@@ -105,25 +101,16 @@ function when (items) {
105101 promise = Promise . reject ( err )
106102 }
107103 } else {
108- promise = new Promise ( function ( resolve , reject ) {
104+ promise = new Promise ( ( resolve , reject ) => {
109105 shouldReject ( item )
110106 ? reject ( item )
111107 : resolve ( item )
112108 } )
113109 }
114- promise . then (
115- function ( data ) {
116- resolveWith ( data , index )
117- }
118- ) . catch ( rejectAll . bind ( rejectAll ) )
110+ promise . then ( ( data ) => {
111+ resolveWith ( data , index )
112+ } ) . catch ( rejectAll . bind ( rejectAll ) )
119113 } )
120114
121115 return allResolvedPromise
122116}
123-
124- module . exports = {
125- queryParameters : queryParameters ,
126- when : when ,
127- isString : isString ,
128- isObject : isObject
129- }
0 commit comments