map-transform-cjs
Version:
MapTransform with CJS support
52 lines • 1.45 kB
JavaScript
// src/utils/modifyOperationObject.ts
var createTransformWithPath = ($transform, path, operator) => ({
$transform,
path,
...operator && { operator }
});
var createValueTransform = ({
$value,
...rest
}) => ({
...rest,
$transform: "value",
value: $value
});
var createAndTransform = ({ $and, ...rest }) => ({
...rest,
...createTransformWithPath("logical", $and, "AND")
});
var createOrTransform = ({ $or, ...rest }) => ({
...rest,
...createTransformWithPath("logical", $or, "OR")
});
var createNotTransform = ({ $not, ...rest }) => ({
...rest,
...createTransformWithPath("not", $not)
});
var createMergeTransform = ({
$merge,
...rest
}) => ({
...rest,
...createTransformWithPath("merge", $merge)
});
function modifyOperationObject(rawOperation, modify) {
const operation = typeof modify === "function" ? modify(rawOperation) : rawOperation;
if (operation.hasOwnProperty("$value")) {
return createValueTransform(operation);
} else if (operation.hasOwnProperty("$and")) {
return createAndTransform(operation);
} else if (operation.hasOwnProperty("$or")) {
return createOrTransform(operation);
} else if (operation.hasOwnProperty("$not")) {
return createNotTransform(operation);
} else if (operation.hasOwnProperty("$merge")) {
return createMergeTransform(operation);
}
return operation;
}
export {
modifyOperationObject as default
};
//# sourceMappingURL=modifyOperationObject.js.map