From 99c1d9af689e5325f3cf535c4007b3aeb8325229 Mon Sep 17 00:00:00 2001 From: Minteck Date: Tue, 10 Jan 2023 14:54:04 +0100 Subject: Update - This is an automated commit --- .../node_modules/graphql/jsutils/promiseReduce.js | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 school/node_modules/graphql/jsutils/promiseReduce.js (limited to 'school/node_modules/graphql/jsutils/promiseReduce.js') diff --git a/school/node_modules/graphql/jsutils/promiseReduce.js b/school/node_modules/graphql/jsutils/promiseReduce.js new file mode 100644 index 0000000..6606926 --- /dev/null +++ b/school/node_modules/graphql/jsutils/promiseReduce.js @@ -0,0 +1,25 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = promiseReduce; + +var _isPromise = _interopRequireDefault(require("./isPromise.js")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Similar to Array.prototype.reduce(), however the reducing callback may return + * a Promise, in which case reduction will continue after each promise resolves. + * + * If the callback does not return a Promise, then this function will also not + * return a Promise. + */ +function promiseReduce(values, callback, initialValue) { + return values.reduce(function (previous, value) { + return (0, _isPromise.default)(previous) ? previous.then(function (resolved) { + return callback(resolved, value); + }) : callback(previous, value); + }, initialValue); +} -- cgit