grafast
Version:
Cutting edge GraphQL planning and execution engine
36 lines • 1.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CoalesceStep = void 0;
exports.coalesce = coalesce;
const constants_js_1 = require("../constants.js");
const step_js_1 = require("../step.js");
class CoalesceStep extends step_js_1.UnbatchedStep {
static { this.$$export = {
moduleName: "grafast",
exportName: "CoalesceStep",
}; }
constructor(steps) {
super();
this.isSyncAndSafe = true;
this.allowMultipleOptimizations = true;
for (const step of steps) {
this.addDataDependency({
step,
acceptFlags: constants_js_1.FLAG_INHIBITED | constants_js_1.FLAG_NULL,
});
}
}
unbatchedExecute(_info, ...values) {
return values.find((v) => v != null) ?? null;
}
}
exports.CoalesceStep = CoalesceStep;
function coalesce(...input) {
if (Array.isArray(input[0])) {
return new CoalesceStep(input[0]);
}
else {
return new CoalesceStep(input);
}
}
//# sourceMappingURL=coalesce.js.map