mongoose-diff-tracking
Version:
Manage Mongo Collection diff History and versions
33 lines (29 loc) • 764 B
Flow
// @flow
import type { QueryCondition, EqCondition } from './query-condition.js.flow'
import type { DocumentPath } from './document-path.js.flow'
export type SimpleFindOperation = {
[fieldName: DocumentPath]: QueryCondition | EqCondition,
// three keys below have no meanings, just for flow
$and?: null,
$nor?: null,
$or?: null,
}
export type AndFindOperation = {|
$and: Array<FindOperation>,
|}
export type NorFindOperation = {|
$nor: Array<FindOperation>,
|}
export type OrFindOperation = {|
$or: Array<FindOperation>,
|}
/**
* Operation to find values in large JSON.
* ISSUE:
* https://github.com/facebook/flow/issues/2892
*/
export type FindOperation =
SimpleFindOperation |
AndFindOperation |
NorFindOperation |
OrFindOperation