@serafin/pipeline
Version:
CRUD data access library with a functional approach
25 lines • 1.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SetReadQueryParameterDefaultValue = void 0;
const schema_builder_1 = require("@serafin/schema-builder");
/**
* Pipe that set the given read query parameter default value
* The schema will not be modified.
*/
function SetReadQueryParameterDefaultValue(queryParameterAccessor, value) {
const queryParameter = queryParameterAccessor((0, schema_builder_1.createPropertyAccessor)());
return () => {
return {
read: async (next, query, context) => {
const existingValue = queryParameter.get(query);
if (existingValue === undefined) {
const defaultValue = typeof value === "function" ? await value(query, context) : value;
query = queryParameter.set(query, defaultValue);
}
return next(query, context);
},
};
};
}
exports.SetReadQueryParameterDefaultValue = SetReadQueryParameterDefaultValue;
//# sourceMappingURL=SetQueryParameterDefaultValue.js.map