mono/packages/osrl/liquidjs/util/async.js
2025-12-30 16:33:03 +01:00

68 lines
4.3 KiB
JavaScript

"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.toThenable = exports.toValueSync = exports.toPromise = void 0;
const underscore_1 = require("./underscore");
// convert an async iterator to a Promise
function toPromise(val) {
return __awaiter(this, void 0, void 0, function* () {
if (!(0, underscore_1.isIterator)(val))
return val;
let value;
let done = false;
let next = 'next';
do {
const state = val[next](value);
done = state.done;
value = state.value;
next = 'next';
try {
if ((0, underscore_1.isIterator)(value))
value = toPromise(value);
if ((0, underscore_1.isPromise)(value))
value = yield value;
}
catch (err) {
next = 'throw';
value = err;
}
} while (!done);
return value;
});
}
exports.toPromise = toPromise;
// convert an async iterator to a value in a synchronous manner
function toValueSync(val) {
if (!(0, underscore_1.isIterator)(val))
return val;
let value;
let done = false;
let next = 'next';
do {
const state = val[next](value);
done = state.done;
value = state.value;
next = 'next';
if ((0, underscore_1.isIterator)(value)) {
try {
value = toValueSync(value);
}
catch (err) {
next = 'throw';
value = err;
}
}
} while (!done);
return value;
}
exports.toValueSync = toValueSync;
exports.toThenable = toPromise;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGlxdWlkanMvdXRpbC9hc3luYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBb0Q7QUFFcEQseUNBQXlDO0FBQ3pDLFNBQXNCLFNBQVMsQ0FBSyxHQUFvRDs7UUFDdEYsSUFBSSxDQUFDLElBQUEsdUJBQVUsRUFBQyxHQUFHLENBQUM7WUFBRSxPQUFPLEdBQUcsQ0FBQTtRQUNoQyxJQUFJLEtBQWMsQ0FBQTtRQUNsQixJQUFJLElBQUksR0FBRyxLQUFLLENBQUE7UUFDaEIsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFBO1FBQ2pCLEdBQUc7WUFDRCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDOUIsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUE7WUFDakIsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUE7WUFDbkIsSUFBSSxHQUFHLE1BQU0sQ0FBQTtZQUNiLElBQUk7Z0JBQ0YsSUFBSSxJQUFBLHVCQUFVLEVBQUMsS0FBSyxDQUFDO29CQUFFLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQy9DLElBQUksSUFBQSxzQkFBUyxFQUFDLEtBQUssQ0FBQztvQkFBRSxLQUFLLEdBQUcsTUFBTSxLQUFLLENBQUE7YUFDMUM7WUFBQyxPQUFPLEdBQUcsRUFBRTtnQkFDWixJQUFJLEdBQUcsT0FBTyxDQUFBO2dCQUNkLEtBQUssR0FBRyxHQUFHLENBQUE7YUFDWjtTQUNGLFFBQVEsQ0FBQyxJQUFJLEVBQUM7UUFDZixPQUFPLEtBQVUsQ0FBQTtJQUNuQixDQUFDO0NBQUE7QUFuQkQsOEJBbUJDO0FBRUQsK0RBQStEO0FBQy9ELFNBQWdCLFdBQVcsQ0FBSyxHQUF1QztJQUNyRSxJQUFJLENBQUMsSUFBQSx1QkFBVSxFQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sR0FBRyxDQUFBO0lBQ2hDLElBQUksS0FBVSxDQUFBO0lBQ2QsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFBO0lBQ2hCLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQTtJQUNqQixHQUFHO1FBQ0QsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzlCLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFBO1FBQ2pCLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFBO1FBQ25CLElBQUksR0FBRyxNQUFNLENBQUE7UUFDYixJQUFJLElBQUEsdUJBQVUsRUFBQyxLQUFLLENBQUMsRUFBRTtZQUNyQixJQUFJO2dCQUNGLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7YUFDM0I7WUFBQyxPQUFPLEdBQUcsRUFBRTtnQkFDWixJQUFJLEdBQUcsT0FBTyxDQUFBO2dCQUNkLEtBQUssR0FBRyxHQUFHLENBQUE7YUFDWjtTQUNGO0tBQ0YsUUFBUSxDQUFDLElBQUksRUFBQztJQUNmLE9BQU8sS0FBSyxDQUFBO0FBQ2QsQ0FBQztBQXBCRCxrQ0FvQkM7QUFFWSxRQUFBLFVBQVUsR0FBRyxTQUFTLENBQUEifQ==