Page MenuHomeSealhub

negate-stage.ts
No OneTemporary

negate-stage.ts

import QueryStage from "./query-stage";
export default function negate_stage(stage: QueryStage) {
const negated_stage: QueryStage = {};
for (let key of Object.keys(stage) as (keyof typeof stage)[]) {
if (key === "$or") {
negated_stage.$nor = stage[key];
} else if (key === "$nor") {
negated_stage.$or = stage[key];
} else if (key === "$and") {
negated_stage.$or = stage[key]?.map((expression: QueryStage) =>
negate_stage(expression)
);
} else {
if (stage[key].$not) {
negated_stage[key] = stage[key].$not;
} else {
negated_stage[key] = { $not: stage[key] };
}
}
}
return negated_stage;
}

File Metadata

Mime Type
text/x-java
Expires
Wed, May 7, 19:37 (1 d, 18 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
634686
Default Alt Text
negate-stage.ts (636 B)

Event Timeline