File size: 1,214 Bytes
d54c8f8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import * as defaultOperations from "./operations";
import {
  Query,
  QueryOperators,
  BasicValueQuery,
  ArrayValueQuery,
  ValueQuery,
  NestedQuery,
  ShapeQuery,
  Options,
  createQueryTester,
  EqualsOperation,
  createQueryOperation,
  createEqualsOperation,
  createOperationTester,
} from "./core";

const createDefaultQueryOperation = <TItem, TSchema extends TItem = TItem>(
  query: Query<TSchema>,
  ownerQuery: any,
  { compare, operations }: Partial<Options> = {},
) => {
  return createQueryOperation(query, ownerQuery, {
    compare,
    operations: Object.assign({}, defaultOperations, operations || {}),
  });
};

const createDefaultQueryTester = <TItem, TSchema extends TItem = TItem>(
  query: Query<TSchema>,
  options: Partial<Options> = {},
) => {
  const op = createDefaultQueryOperation(query, null, options);
  return createOperationTester(op);
};

export {
  Query,
  QueryOperators,
  BasicValueQuery,
  ArrayValueQuery,
  ValueQuery,
  NestedQuery,
  ShapeQuery,
  EqualsOperation,
  createQueryTester,
  createOperationTester,
  createDefaultQueryOperation,
  createEqualsOperation,
  createQueryOperation,
};
export * from "./operations";

export default createDefaultQueryTester;