| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | 
							- /*
 
-  * Copyright (c) 2015-present, Vitaly Tomilov
 
-  *
 
-  * See the LICENSE file at the top-level directory of this distribution
 
-  * for licensing information.
 
-  *
 
-  * Removal or modification of this copyright notice is prohibited.
 
-  */
 
- const {assert} = require('./assert');
 
- /**
 
-  * @class PromiseAdapter
 
-  * @summary Adapter for the primary promise operations.
 
-  * @description
 
-  * Provides compatibility with promise libraries that cannot be recognized automatically,
 
-  * via functions that implement the primary operations with promises:
 
-  *
 
-  *  - construct a new promise with a callback function
 
-  *  - resolve a promise with some result data
 
-  *  - reject a promise with a reason
 
-  *  - resolve an array of promises
 
-  *
 
-  * The type is available from the library's root: `pgp.PromiseAdapter`.
 
-  *
 
-  * @param {object} api
 
-  * Promise API configuration object.
 
-  *
 
-  * Passing in anything other than an object will throw {@link external:TypeError TypeError} = `Adapter requires an api configuration object.`
 
-  *
 
-  * @param {function} api.create
 
-  * A function that takes a callback parameter and returns a new promise object.
 
-  * The callback parameter is expected to be `function(resolve, reject)`.
 
-  *
 
-  * Passing in anything other than a function will throw {@link external:TypeError TypeError} = `Function 'create' must be specified.`
 
-  *
 
-  * @param {function} api.resolve
 
-  * A function that takes an optional data parameter and resolves a promise with it.
 
-  *
 
-  * Passing in anything other than a function will throw {@link external:TypeError TypeError} = `Function 'resolve' must be specified.`
 
-  *
 
-  * @param {function} api.reject
 
-  * A function that takes an optional error parameter and rejects a promise with it.
 
-  *
 
-  * Passing in anything other than a function will throw {@link external:TypeError TypeError} = `Function 'reject' must be specified.`
 
-  *
 
-  * @param {function} api.all
 
-  * A function that resolves an array of promises.
 
-  *
 
-  * Passing in anything other than a function will throw {@link external:TypeError TypeError} = `Function 'all' must be specified.`
 
-  *
 
-  * @returns {PromiseAdapter}
 
-  */
 
- class PromiseAdapter {
 
-     constructor(api) {
 
-         if (!api || typeof api !== 'object') {
 
-             throw new TypeError('Adapter requires an api configuration object.');
 
-         }
 
-         api = assert(api, ['create', 'resolve', 'reject', 'all']);
 
-         this.create = api.create;
 
-         this.resolve = api.resolve;
 
-         this.reject = api.reject;
 
-         this.all = api.all;
 
-         if (typeof this.create !== 'function') {
 
-             throw new TypeError('Function \'create\' must be specified.');
 
-         }
 
-         if (typeof this.resolve !== 'function') {
 
-             throw new TypeError('Function \'resolve\' must be specified.');
 
-         }
 
-         if (typeof this.reject !== 'function') {
 
-             throw new TypeError('Function \'reject\' must be specified.');
 
-         }
 
-         if (typeof this.all !== 'function') {
 
-             throw new TypeError('Function \'all\' must be specified.');
 
-         }
 
-     }
 
- }
 
- module.exports = {PromiseAdapter};
 
 
  |