@contember/engine-content-api 1.2.0-alpha.5 → 1.2.0-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/dist/src/acl/EvaluatedPredicateReplacer.d.ts +10 -0
  2. package/dist/src/acl/EvaluatedPredicateReplacer.d.ts.map +1 -0
  3. package/dist/src/acl/EvaluatedPredicateReplacer.js +40 -0
  4. package/dist/src/acl/EvaluatedPredicateReplacer.js.map +1 -0
  5. package/dist/src/acl/PredicateFactory.d.ts +4 -2
  6. package/dist/src/acl/PredicateFactory.d.ts.map +1 -1
  7. package/dist/src/acl/PredicateFactory.js +24 -6
  8. package/dist/src/acl/PredicateFactory.js.map +1 -1
  9. package/dist/src/acl/PredicatesInjector.d.ts +1 -1
  10. package/dist/src/acl/PredicatesInjector.d.ts.map +1 -1
  11. package/dist/src/acl/PredicatesInjector.js +14 -11
  12. package/dist/src/acl/PredicatesInjector.js.map +1 -1
  13. package/dist/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.js +1 -1
  14. package/dist/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.js.map +1 -1
  15. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.d.ts.map +1 -1
  16. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.js +25 -13
  17. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.js.map +1 -1
  18. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.d.ts.map +1 -1
  19. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.js +26 -13
  20. package/dist/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.js.map +1 -1
  21. package/dist/src/input-validation/ValidationDataSelector.d.ts.map +1 -1
  22. package/dist/src/input-validation/ValidationDataSelector.js +1 -1
  23. package/dist/src/input-validation/ValidationDataSelector.js.map +1 -1
  24. package/dist/src/mapper/Mapper.d.ts +4 -4
  25. package/dist/src/mapper/Mapper.d.ts.map +1 -1
  26. package/dist/src/mapper/Mapper.js +7 -7
  27. package/dist/src/mapper/Mapper.js.map +1 -1
  28. package/dist/src/mapper/MapperContainer.d.ts.map +1 -1
  29. package/dist/src/mapper/MapperContainer.js +5 -2
  30. package/dist/src/mapper/MapperContainer.js.map +1 -1
  31. package/dist/src/mapper/select/RelationFetcher.d.ts +40 -5
  32. package/dist/src/mapper/select/RelationFetcher.d.ts.map +1 -1
  33. package/dist/src/mapper/select/RelationFetcher.js +19 -6
  34. package/dist/src/mapper/select/RelationFetcher.js.map +1 -1
  35. package/dist/src/mapper/select/WhereBuilder.d.ts +3 -1
  36. package/dist/src/mapper/select/WhereBuilder.d.ts.map +1 -1
  37. package/dist/src/mapper/select/WhereBuilder.js +4 -2
  38. package/dist/src/mapper/select/WhereBuilder.js.map +1 -1
  39. package/dist/src/mapper/select/handlers/FieldsVisitor.d.ts +2 -2
  40. package/dist/src/mapper/select/handlers/FieldsVisitor.d.ts.map +1 -1
  41. package/dist/src/mapper/select/handlers/FieldsVisitor.js +31 -18
  42. package/dist/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
  43. package/dist/src/mapper/select/optimizer/ConditionOptimizer.d.ts +5 -0
  44. package/dist/src/mapper/select/optimizer/ConditionOptimizer.d.ts.map +1 -0
  45. package/dist/src/mapper/select/optimizer/ConditionOptimizer.js +33 -0
  46. package/dist/src/mapper/select/optimizer/ConditionOptimizer.js.map +1 -0
  47. package/dist/src/mapper/select/optimizer/WhereOptimizer.d.ts +11 -0
  48. package/dist/src/mapper/select/optimizer/WhereOptimizer.d.ts.map +1 -0
  49. package/dist/src/mapper/select/optimizer/WhereOptimizer.js +57 -0
  50. package/dist/src/mapper/select/optimizer/WhereOptimizer.js.map +1 -0
  51. package/dist/src/mapper/select/optimizer/helpers.d.ts +10 -0
  52. package/dist/src/mapper/select/optimizer/helpers.d.ts.map +1 -0
  53. package/dist/src/mapper/select/optimizer/helpers.js +65 -0
  54. package/dist/src/mapper/select/optimizer/helpers.js.map +1 -0
  55. package/dist/src/resolvers/MutationResolver.js +1 -1
  56. package/dist/src/resolvers/MutationResolver.js.map +1 -1
  57. package/dist/src/resolvers/ReadHelpers.js +3 -3
  58. package/dist/src/resolvers/ReadHelpers.js.map +1 -1
  59. package/dist/src/resolvers/ReadResolver.js +2 -2
  60. package/dist/src/resolvers/ReadResolver.js.map +1 -1
  61. package/dist/src/tsconfig.tsbuildinfo +1 -1
  62. package/dist/tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.js +3 -2
  63. package/dist/tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.js.map +1 -1
  64. package/dist/tests/cases/integration/graphQlRequests/query/acl/predicateElimination.test.d.ts +2 -0
  65. package/dist/tests/cases/integration/graphQlRequests/query/acl/predicateElimination.test.d.ts.map +1 -0
  66. package/dist/tests/cases/integration/graphQlRequests/query/acl/predicateElimination.test.js +137 -0
  67. package/dist/tests/cases/integration/graphQlRequests/query/acl/predicateElimination.test.js.map +1 -0
  68. package/dist/tests/cases/integration/graphQlRequests/query/filter/complexCondition.test.js +1 -1
  69. package/dist/tests/cases/integration/graphQlRequests/query/filter/composedFilter.test.js +1 -1
  70. package/dist/tests/cases/integration/graphQlRequests/query/filter/composedFilter.test.js.map +1 -1
  71. package/dist/tests/cases/integration/graphQlRequests/query/relations/manyHasManyInverse.test.js +73 -0
  72. package/dist/tests/cases/integration/graphQlRequests/query/relations/manyHasManyInverse.test.js.map +1 -1
  73. package/dist/tests/cases/integration/graphQlRequests/query/relations/manyHasManyOwning.test.js +73 -0
  74. package/dist/tests/cases/integration/graphQlRequests/query/relations/manyHasManyOwning.test.js.map +1 -1
  75. package/dist/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.js +2 -2
  76. package/dist/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.js.map +1 -1
  77. package/dist/tests/cases/unit/conditionOptimizer.test.d.ts +2 -0
  78. package/dist/tests/cases/unit/conditionOptimizer.test.d.ts.map +1 -0
  79. package/dist/tests/cases/unit/conditionOptimizer.test.js +113 -0
  80. package/dist/tests/cases/unit/conditionOptimizer.test.js.map +1 -0
  81. package/dist/tests/cases/unit/predicatesFactory.test.d.ts +2 -0
  82. package/dist/tests/cases/unit/predicatesFactory.test.d.ts.map +1 -0
  83. package/dist/tests/cases/unit/predicatesFactory.test.js +103 -0
  84. package/dist/tests/cases/unit/predicatesFactory.test.js.map +1 -0
  85. package/dist/tests/cases/unit/predicatesInjector.test.js +8 -12
  86. package/dist/tests/cases/unit/predicatesInjector.test.js.map +1 -1
  87. package/dist/tests/cases/unit/whereOptimizer.test.d.ts +2 -0
  88. package/dist/tests/cases/unit/whereOptimizer.test.d.ts.map +1 -0
  89. package/dist/tests/cases/unit/whereOptimizer.test.js +81 -0
  90. package/dist/tests/cases/unit/whereOptimizer.test.js.map +1 -0
  91. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  92. package/package.json +10 -10
  93. package/src/acl/EvaluatedPredicateReplacer.ts +38 -0
  94. package/src/acl/PredicateFactory.ts +30 -7
  95. package/src/acl/PredicatesInjector.ts +18 -10
  96. package/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.ts +3 -3
  97. package/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.ts +26 -28
  98. package/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.ts +27 -31
  99. package/src/input-validation/ValidationDataSelector.ts +2 -2
  100. package/src/mapper/Mapper.ts +10 -6
  101. package/src/mapper/MapperContainer.ts +7 -3
  102. package/src/mapper/select/RelationFetcher.ts +95 -34
  103. package/src/mapper/select/WhereBuilder.ts +5 -2
  104. package/src/mapper/select/handlers/FieldsVisitor.ts +31 -24
  105. package/src/mapper/select/optimizer/ConditionOptimizer.ts +35 -0
  106. package/src/mapper/select/optimizer/WhereOptimizer.ts +67 -0
  107. package/src/mapper/select/optimizer/helpers.ts +54 -0
  108. package/src/resolvers/MutationResolver.ts +1 -1
  109. package/src/resolvers/ReadHelpers.ts +3 -3
  110. package/src/resolvers/ReadResolver.ts +2 -2
  111. package/tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.ts +3 -2
  112. package/tests/cases/integration/graphQlRequests/query/acl/predicateElimination.test.ts +130 -0
  113. package/tests/cases/integration/graphQlRequests/query/filter/complexCondition.test.ts +1 -1
  114. package/tests/cases/integration/graphQlRequests/query/filter/composedFilter.test.ts +1 -1
  115. package/tests/cases/integration/graphQlRequests/query/relations/manyHasManyInverse.test.ts +74 -0
  116. package/tests/cases/integration/graphQlRequests/query/relations/manyHasManyOwning.test.ts +77 -0
  117. package/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.ts +2 -2
  118. package/tests/cases/unit/conditionOptimizer.test.ts +129 -0
  119. package/tests/cases/unit/predicatesFactory.test.ts +97 -0
  120. package/tests/cases/unit/predicatesInjector.test.ts +8 -12
  121. package/tests/cases/unit/whereOptimizer.test.ts +77 -0
@@ -9,16 +9,19 @@ const mapper_1 = require("../mapper");
9
9
  const dic_1 = require("@contember/dic");
10
10
  const PaginatedHasManyExecutionHandler_1 = require("../extensions/paginatedHasMany/PaginatedHasManyExecutionHandler");
11
11
  const PaginatedHasManyFieldProvider_1 = require("../extensions/paginatedHasMany/PaginatedHasManyFieldProvider");
12
+ const WhereOptimizer_1 = require("./select/optimizer/WhereOptimizer");
13
+ const ConditionOptimizer_1 = require("./select/optimizer/ConditionOptimizer");
12
14
  const createMapperContainer = ({ permissions, schema, identityVariables, providers }) => {
13
15
  const builder = new dic_1.Builder({})
14
16
  .addService('providers', () => providers)
15
17
  .addService('variableInjector', () => new acl_1.VariableInjector(schema.model, identityVariables))
16
- .addService('predicateFactory', ({ variableInjector }) => new acl_1.PredicateFactory(permissions, variableInjector))
18
+ .addService('predicateFactory', ({ variableInjector }) => new acl_1.PredicateFactory(permissions, schema.model, variableInjector))
17
19
  .addService('predicatesInjector', ({ predicateFactory }) => new acl_1.PredicatesInjector(schema.model, predicateFactory))
18
20
  .addService('joinBuilder', () => new select_1.JoinBuilder(schema.model))
19
21
  .addService('conditionBuilder', () => new select_1.ConditionBuilder())
20
22
  .addService('pathFactory', () => new mapper_1.PathFactory())
21
- .addService('whereBuilder', ({ joinBuilder, conditionBuilder, pathFactory }) => new select_1.WhereBuilder(schema.model, joinBuilder, conditionBuilder, pathFactory))
23
+ .addService('whereOptimized', () => new WhereOptimizer_1.WhereOptimizer(schema.model, new ConditionOptimizer_1.ConditionOptimizer()))
24
+ .addService('whereBuilder', ({ joinBuilder, conditionBuilder, pathFactory, whereOptimized }) => new select_1.WhereBuilder(schema.model, joinBuilder, conditionBuilder, pathFactory, whereOptimized))
22
25
  .addService('orderByBuilder', ({ joinBuilder }) => new select_1.OrderByBuilder(schema.model, joinBuilder))
23
26
  .addService('relationFetcher', ({ whereBuilder, orderByBuilder, predicatesInjector, pathFactory }) => new select_1.RelationFetcher(whereBuilder, orderByBuilder, predicatesInjector, pathFactory))
24
27
  .addService('fieldsVisitorFactory', ({ relationFetcher, predicateFactory, whereBuilder }) => new select_1.FieldsVisitorFactory(schema.model, relationFetcher, predicateFactory, whereBuilder))
@@ -1 +1 @@
1
- {"version":3,"file":"MapperContainer.js","sourceRoot":"","sources":["../../../src/mapper/MapperContainer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MapperContainer.js","sourceRoot":"","sources":["../../../src/mapper/MapperContainer.ts"],"names":[],"mappings":"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"}
@@ -4,23 +4,58 @@ import { Input, Model } from '@contember/schema';
4
4
  import { OrderByBuilder } from './OrderByBuilder';
5
5
  import { PredicatesInjector } from '../../acl';
6
6
  import { ObjectNode } from '../../inputProcessing';
7
- import { JoiningColumns } from '../types';
8
7
  import { SelectGroupedObjects } from './SelectHydrator';
9
8
  import { Mapper } from '../Mapper';
10
9
  export declare type GroupedCounts = Record<Input.PrimaryValue, number>;
10
+ declare type CountOneHasManyGroupsArgs = {
11
+ mapper: Mapper;
12
+ filter: Input.OptionalWhere | undefined;
13
+ targetEntity: Model.Entity;
14
+ targetRelation: Model.ManyHasOneRelation;
15
+ ids: Input.PrimaryValue[];
16
+ };
17
+ declare type FetchOneHasManyGroupsArgs = {
18
+ mapper: Mapper;
19
+ objectNode: ObjectNode<Input.ListQueryInput>;
20
+ targetEntity: Model.Entity;
21
+ relation: Model.OneHasManyRelation;
22
+ targetRelation: Model.ManyHasOneRelation;
23
+ ids: Input.PrimaryValue[];
24
+ };
25
+ declare type ManyHasManyBaseArgs = {
26
+ mapper: Mapper;
27
+ targetEntity: Model.Entity;
28
+ ids: Input.PrimaryValue[];
29
+ } & ({
30
+ directionFrom: 'owning';
31
+ sourceRelation: Model.ManyHasManyOwningRelation;
32
+ targetRelation: Model.ManyHasManyInverseRelation | null;
33
+ } | {
34
+ directionFrom: 'inverse';
35
+ sourceRelation: Model.ManyHasManyInverseRelation;
36
+ targetRelation: Model.ManyHasManyOwningRelation;
37
+ });
38
+ declare type CountManyHasManyGroupArgs = ManyHasManyBaseArgs & {
39
+ filter: Input.OptionalWhere | undefined;
40
+ };
41
+ declare type FetchManyHasManyGroupsArgs = ManyHasManyBaseArgs & {
42
+ field: ObjectNode<Input.ListQueryInput>;
43
+ };
11
44
  export declare class RelationFetcher {
12
45
  private readonly whereBuilder;
13
46
  private readonly orderBuilder;
14
47
  private readonly predicateInjector;
15
48
  private readonly pathFactory;
16
49
  constructor(whereBuilder: WhereBuilder, orderBuilder: OrderByBuilder, predicateInjector: PredicatesInjector, pathFactory: PathFactory);
17
- countOneHasManyGroups(mapper: Mapper, filter: Input.OptionalWhere | undefined, targetEntity: Model.Entity, targetRelation: Model.ManyHasOneRelation, ids: Input.PrimaryValue[]): Promise<GroupedCounts>;
18
- fetchOneHasManyGroups(mapper: Mapper, objectNode: ObjectNode<Input.ListQueryInput>, targetEntity: Model.Entity, relation: Model.OneHasManyRelation, targetRelation: Model.ManyHasOneRelation, ids: Input.PrimaryValue[]): Promise<SelectGroupedObjects>;
50
+ countOneHasManyGroups({ mapper, filter, targetEntity, targetRelation, ids, }: CountOneHasManyGroupsArgs): Promise<GroupedCounts>;
51
+ fetchOneHasManyGroups({ mapper, objectNode, targetEntity, relation, targetRelation, ids, }: FetchOneHasManyGroupsArgs): Promise<SelectGroupedObjects>;
19
52
  private createOneHasManyFilter;
20
- countManyHasManyGroups(mapper: Mapper, filter: Input.OptionalWhere | undefined, targetEntity: Model.Entity, owningRelation: Model.ManyHasManyOwningRelation, ids: Input.PrimaryValue[], joiningColumns: JoiningColumns): Promise<GroupedCounts>;
21
- fetchManyHasManyGroups(mapper: Mapper, field: ObjectNode<Input.ListQueryInput>, targetEntity: Model.Entity, fromRelation: Model.ManyHasManyOwningRelation | Model.ManyHasManyInverseRelation, owningRelation: Model.ManyHasManyOwningRelation, joiningColumns: JoiningColumns, ids: Input.PrimaryValue[]): Promise<SelectGroupedObjects>;
53
+ countManyHasManyGroups({ mapper, filter, targetEntity, directionFrom, sourceRelation, targetRelation, ids, }: CountManyHasManyGroupArgs): Promise<GroupedCounts>;
54
+ fetchManyHasManyGroups({ mapper, field, sourceRelation, targetEntity, targetRelation, directionFrom, ids, }: FetchManyHasManyGroupsArgs): Promise<SelectGroupedObjects>;
55
+ private resolveJoiningColumns;
22
56
  private buildManyHasManyGroups;
23
57
  private fetchJunction;
24
58
  private buildJunctionQb;
25
59
  }
60
+ export {};
26
61
  //# sourceMappingURL=RelationFetcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RelationFetcher.d.ts","sourceRoot":"","sources":["../../../../src/mapper/select/RelationFetcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAS,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAa,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEzC,OAAO,EAAE,oBAAoB,EAAiC,MAAM,kBAAkB,CAAA;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,oBAAY,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;AAE9D,qBAAa,eAAe;IAE1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAHX,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,cAAc,EAC5B,iBAAiB,EAAE,kBAAkB,EACrC,WAAW,EAAE,WAAW;IAG7B,qBAAqB,CACjC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,KAAK,CAAC,aAAa,GAAG,SAAS,EACvC,YAAY,EAAE,KAAK,CAAC,MAAM,EAC1B,cAAc,EAAE,KAAK,CAAC,kBAAkB,EACxC,GAAG,EAAE,KAAK,CAAC,YAAY,EAAE,GACvB,OAAO,CAAC,aAAa,CAAC;IAKZ,qBAAqB,CACjC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,EAC5C,YAAY,EAAE,KAAK,CAAC,MAAM,EAC1B,QAAQ,EAAE,KAAK,CAAC,kBAAkB,EAClC,cAAc,EAAE,KAAK,CAAC,kBAAkB,EACxC,GAAG,EAAE,KAAK,CAAC,YAAY,EAAE,GACvB,OAAO,CAAC,oBAAoB,CAAC;IAYhC,OAAO,CAAC,sBAAsB;IAejB,sBAAsB,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,KAAK,CAAC,aAAa,GAAG,SAAS,EACvC,YAAY,EAAE,KAAK,CAAC,MAAM,EAC1B,cAAc,EAAE,KAAK,CAAC,yBAAyB,EAC/C,GAAG,EAAE,KAAK,CAAC,YAAY,EAAE,EACzB,cAAc,EAAE,cAAc,GAC5B,OAAO,CAAC,aAAa,CAAC;IAaZ,sBAAsB,CAClC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,EACvC,YAAY,EAAE,KAAK,CAAC,MAAM,EAC1B,YAAY,EAAE,KAAK,CAAC,yBAAyB,GAAG,KAAK,CAAC,0BAA0B,EAChF,cAAc,EAAE,KAAK,CAAC,yBAAyB,EAC/C,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,KAAK,CAAC,YAAY,EAAE,GACvB,OAAO,CAAC,oBAAoB,CAAC;IAkChC,OAAO,CAAC,sBAAsB;YAyBhB,aAAa;IAiC3B,OAAO,CAAC,eAAe;CAqCvB"}
1
+ {"version":3,"file":"RelationFetcher.d.ts","sourceRoot":"","sources":["../../../../src/mapper/select/RelationFetcher.ts"],"names":[],"mappings":"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"}
@@ -11,11 +11,11 @@ class RelationFetcher {
11
11
  this.predicateInjector = predicateInjector;
12
12
  this.pathFactory = pathFactory;
13
13
  }
14
- async countOneHasManyGroups(mapper, filter, targetEntity, targetRelation, ids) {
14
+ async countOneHasManyGroups({ mapper, filter, targetEntity, targetRelation, ids, }) {
15
15
  const filterWithParent = this.createOneHasManyFilter(targetEntity, targetRelation, ids, filter);
16
16
  return mapper.countGrouped(targetEntity, filterWithParent, targetRelation);
17
17
  }
18
- async fetchOneHasManyGroups(mapper, objectNode, targetEntity, relation, targetRelation, ids) {
18
+ async fetchOneHasManyGroups({ mapper, objectNode, targetEntity, relation, targetRelation, ids, }) {
19
19
  const filter = this.createOneHasManyFilter(targetEntity, targetRelation, ids, objectNode.args.filter);
20
20
  const objectNodeWithWhere = objectNode.withArg('filter', filter);
21
21
  const objectNodeWithOrder = OrderByHelper_1.OrderByHelper.appendDefaultOrderBy(targetEntity, objectNodeWithWhere, relation.orderBy || []);
@@ -30,7 +30,9 @@ class RelationFetcher {
30
30
  : { and: [filter[targetRelation.name], targetRelationFilter] },
31
31
  };
32
32
  }
33
- async countManyHasManyGroups(mapper, filter, targetEntity, owningRelation, ids, joiningColumns) {
33
+ async countManyHasManyGroups({ mapper, filter, targetEntity, directionFrom, sourceRelation, targetRelation, ids, }) {
34
+ const owningRelation = directionFrom === 'owning' ? sourceRelation : targetRelation;
35
+ const joiningColumns = this.resolveJoiningColumns({ directionFrom, owningRelation });
34
36
  const qb = this.buildJunctionQb(owningRelation, ids, joiningColumns, targetEntity, { filter })
35
37
  .select(['junction_', joiningColumns.sourceColumn.columnName])
36
38
  .select(expr => expr.raw('count(*)'), 'row_count')
@@ -42,8 +44,10 @@ class RelationFetcher {
42
44
  }
43
45
  return Object.fromEntries(result);
44
46
  }
45
- async fetchManyHasManyGroups(mapper, field, targetEntity, fromRelation, owningRelation, joiningColumns, ids) {
46
- const defaultOrderBy = fromRelation.orderBy || [];
47
+ async fetchManyHasManyGroups({ mapper, field, sourceRelation, targetEntity, targetRelation, directionFrom, ids, }) {
48
+ const owningRelation = directionFrom === 'owning' ? sourceRelation : targetRelation;
49
+ const joiningColumns = this.resolveJoiningColumns({ directionFrom, owningRelation });
50
+ const defaultOrderBy = sourceRelation.orderBy || [];
47
51
  const objectNode = OrderByHelper_1.OrderByHelper.appendDefaultOrderBy(targetEntity, field, defaultOrderBy);
48
52
  const junctionValues = await this.fetchJunction(mapper.db, owningRelation, ids, joiningColumns, targetEntity, objectNode);
49
53
  if (junctionValues.length === 0) {
@@ -61,9 +65,18 @@ class RelationFetcher {
61
65
  },
62
66
  })
63
67
  .withField(primaryField);
64
- const result = await mapper.select(targetEntity, queryWithWhere);
68
+ const result = await mapper.select(targetEntity, queryWithWhere, targetRelation);
65
69
  return this.buildManyHasManyGroups(targetEntity, joiningColumns, result, junctionValues);
66
70
  }
71
+ resolveJoiningColumns({ directionFrom, owningRelation }) {
72
+ return directionFrom === 'owning' ? {
73
+ sourceColumn: owningRelation.joiningTable.joiningColumn,
74
+ targetColumn: owningRelation.joiningTable.inverseJoiningColumn,
75
+ } : {
76
+ sourceColumn: owningRelation.joiningTable.inverseJoiningColumn,
77
+ targetColumn: owningRelation.joiningTable.joiningColumn,
78
+ };
79
+ }
67
80
  buildManyHasManyGroups(entity, joiningColumns, resultObjects, junctionValues) {
68
81
  const dataById = {};
69
82
  for (let object of resultObjects) {
@@ -1 +1 @@
1
- {"version":3,"file":"RelationFetcher.js","sourceRoot":"","sources":["../../../../src/mapper/select/RelationFetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RelationFetcher.js","sourceRoot":"","sources":["../../../../src/mapper/select/RelationFetcher.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,14 @@ import { Path, PathFactory } from './Path';
3
3
  import { JoinBuilder } from './JoinBuilder';
4
4
  import { ConditionBuilder } from './ConditionBuilder';
5
5
  import { ConditionBuilder as SqlConditionBuilder, SelectBuilder } from '@contember/database';
6
+ import { WhereOptimizer } from './optimizer/WhereOptimizer';
6
7
  export declare class WhereBuilder {
7
8
  private readonly schema;
8
9
  private readonly joinBuilder;
9
10
  private readonly conditionBuilder;
10
11
  private readonly pathFactory;
11
- constructor(schema: Model.Schema, joinBuilder: JoinBuilder, conditionBuilder: ConditionBuilder, pathFactory: PathFactory);
12
+ private readonly whereOptimizer;
13
+ constructor(schema: Model.Schema, joinBuilder: JoinBuilder, conditionBuilder: ConditionBuilder, pathFactory: PathFactory, whereOptimizer: WhereOptimizer);
12
14
  build(qb: SelectBuilder<SelectBuilder.Result>, entity: Model.Entity, path: Path, where: Input.OptionalWhere, allowManyJoin?: boolean): SelectBuilder<SelectBuilder.Result>;
13
15
  buildAdvanced(entity: Model.Entity, path: Path, where: Input.OptionalWhere, callback: (clauseCb: (clause: SqlConditionBuilder) => SqlConditionBuilder) => SelectBuilder<SelectBuilder.Result>, allowManyJoin?: boolean): SelectBuilder<SelectBuilder.Result>;
14
16
  private buildInternal;
@@ -1 +1 @@
1
- {"version":3,"file":"WhereBuilder.d.ts","sourceRoot":"","sources":["../../../../src/mapper/select/WhereBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,gBAAgB,IAAI,mBAAmB,EAA0B,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEpH,qBAAa,YAAY;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAHX,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW;IAGnC,KAAK,CACX,EAAE,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,EACvC,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,CAAC,aAAa,EAC1B,aAAa,GAAE,OAAe;IAKxB,aAAa,CACnB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,CAAC,aAAa,EAC1B,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,mBAAmB,KAAK,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,EACjH,aAAa,GAAE,OAAe;IAW/B,OAAO,CAAC,aAAa;IA0IrB,OAAO,CAAC,yBAAyB;IAoCjC,OAAO,CAAC,gCAAgC;CA2CxC;AAED,oBAAY,mBAAmB,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAA"}
1
+ {"version":3,"file":"WhereBuilder.d.ts","sourceRoot":"","sources":["../../../../src/mapper/select/WhereBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,gBAAgB,IAAI,mBAAmB,EAA0B,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACpH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE3D,qBAAa,YAAY;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAJd,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc;IAGzC,KAAK,CACX,EAAE,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,EACvC,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,CAAC,aAAa,EAC1B,aAAa,GAAE,OAAe;IAKxB,aAAa,CACnB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,CAAC,aAAa,EAC1B,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,mBAAmB,KAAK,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,EACjH,aAAa,GAAE,OAAe;IAY/B,OAAO,CAAC,aAAa;IA0IrB,OAAO,CAAC,yBAAyB;IAoCjC,OAAO,CAAC,gCAAgC;CA2CxC;AAED,oBAAY,mBAAmB,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAA"}
@@ -5,18 +5,20 @@ const utils_1 = require("../../utils");
5
5
  const schema_utils_1 = require("@contember/schema-utils");
6
6
  const database_1 = require("@contember/database");
7
7
  class WhereBuilder {
8
- constructor(schema, joinBuilder, conditionBuilder, pathFactory) {
8
+ constructor(schema, joinBuilder, conditionBuilder, pathFactory, whereOptimizer) {
9
9
  this.schema = schema;
10
10
  this.joinBuilder = joinBuilder;
11
11
  this.conditionBuilder = conditionBuilder;
12
12
  this.pathFactory = pathFactory;
13
+ this.whereOptimizer = whereOptimizer;
13
14
  }
14
15
  build(qb, entity, path, where, allowManyJoin = false) {
15
16
  return this.buildAdvanced(entity, path, where, cb => qb.where(clause => cb(clause)), allowManyJoin);
16
17
  }
17
18
  buildAdvanced(entity, path, where, callback, allowManyJoin = false) {
19
+ const optimizedWhere = this.whereOptimizer.optimize(where, entity);
18
20
  const joinList = [];
19
- const qbWithWhere = callback(clause => this.buildInternal(clause, entity, path, where, allowManyJoin, joinList));
21
+ const qbWithWhere = callback(clause => this.buildInternal(clause, entity, path, optimizedWhere, allowManyJoin, joinList));
20
22
  return joinList.reduce((qb, { path, entity, relationName }) => this.joinBuilder.join(qb, path, entity, relationName), qbWithWhere);
21
23
  }
22
24
  buildInternal(conditionBuilder, entity, path, where, allowManyJoin, joinList) {
@@ -1 +1 @@
1
- {"version":3,"file":"WhereBuilder.js","sourceRoot":"","sources":["../../../../src/mapper/select/WhereBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WhereBuilder.js","sourceRoot":"","sources":["../../../../src/mapper/select/WhereBuilder.ts"],"names":[],"mappings":"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"}
@@ -14,10 +14,10 @@ export declare class FieldsVisitor implements Model.RelationByTypeVisitor<void>,
14
14
  constructor(schema: Model.Schema, relationFetcher: RelationFetcher, predicateFactory: PredicateFactory, whereBuilder: WhereBuilder, mapper: Mapper, executionContext: SelectExecutionHandlerContext);
15
15
  visitColumn(entity: Model.Entity, column: Model.AnyColumn): void;
16
16
  visitManyHasManyInverse(entity: Model.Entity, relation: Model.ManyHasManyInverseRelation, targetEntity: Model.Entity, targetRelation: Model.ManyHasManyOwningRelation): void;
17
- visitManyHasManyOwning(entity: Model.Entity, relation: Model.ManyHasManyOwningRelation, targetEntity: Model.Entity): void;
17
+ visitManyHasManyOwning(entity: Model.Entity, relation: Model.ManyHasManyOwningRelation, targetEntity: Model.Entity, targetRelation: Model.ManyHasManyInverseRelation | null): void;
18
18
  visitOneHasMany(entity: Model.Entity, relation: Model.OneHasManyRelation, targetEntity: Model.Entity, targetRelation: Model.ManyHasOneRelation): void;
19
19
  visitOneHasOneInverse(entity: Model.Entity, relation: Model.OneHasOneInverseRelation, targetEntity: Model.Entity, targetRelation: Model.OneHasOneOwningRelation): void;
20
20
  visitOneHasOneOwning(entity: Model.Entity, relation: Model.OneHasOneOwningRelation, targetEntity: Model.Entity, targetRelation: Model.OneHasOneInverseRelation | null): void;
21
- visitManyHasOne(entity: Model.Entity, relation: Model.ManyHasOneRelation, targetEntity: Model.Entity): void;
21
+ visitManyHasOne(entity: Model.Entity, relation: Model.ManyHasOneRelation, targetEntity: Model.Entity, targetRelation: Model.OneHasManyRelation | null): void;
22
22
  }
23
23
  //# sourceMappingURL=FieldsVisitor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FieldsVisitor.d.ts","sourceRoot":"","sources":["../../../../../src/mapper/select/handlers/FieldsVisitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,qBAAa,aAAc,YAAW,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;IAEhG,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBALhB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,6BAA6B;IAGjE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI;IAkCzD,uBAAuB,CAC7B,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,QAAQ,EAAE,KAAK,CAAC,0BAA0B,EAC1C,YAAY,EAAE,KAAK,CAAC,MAAM,EAC1B,cAAc,EAAE,KAAK,CAAC,yBAAyB,GAC7C,IAAI;IA0BA,sBAAsB,CAC5B,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,QAAQ,EAAE,KAAK,CAAC,yBAAyB,EACzC,YAAY,EAAE,KAAK,CAAC,MAAM,GACxB,IAAI;IAmBA,eAAe,CACrB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,QAAQ,EAAE,KAAK,CAAC,kBAAkB,EAClC,YAAY,EAAE,KAAK,CAAC,MAAM,EAC1B,cAAc,EAAE,KAAK,CAAC,kBAAkB,GACtC,IAAI;IAcA,qBAAqB,CAC3B,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,QAAQ,EAAE,KAAK,CAAC,wBAAwB,EACxC,YAAY,EAAE,KAAK,CAAC,MAAM,EAC1B,cAAc,EAAE,KAAK,CAAC,uBAAuB,GAC3C,IAAI;IA0BA,oBAAoB,CAC1B,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,QAAQ,EAAE,KAAK,CAAC,uBAAuB,EACvC,YAAY,EAAE,KAAK,CAAC,MAAM,EAC1B,cAAc,EAAE,KAAK,CAAC,wBAAwB,GAAG,IAAI,GACnD,IAAI;IAwBA,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,kBAAkB,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI;CAuBlH"}
1
+ {"version":3,"file":"FieldsVisitor.d.ts","sourceRoot":"","sources":["../../../../../src/mapper/select/handlers/FieldsVisitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,qBAAa,aAAc,YAAW,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;IAEhG,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBALhB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,6BAA6B;IAGjE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI;IAkCzD,uBAAuB,CAC7B,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,QAAQ,EAAE,KAAK,CAAC,0BAA0B,EAC1C,YAAY,EAAE,KAAK,CAAC,MAAM,EAC1B,cAAc,EAAE,KAAK,CAAC,yBAAyB,GAC7C,IAAI;IAuBA,sBAAsB,CAC5B,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,QAAQ,EAAE,KAAK,CAAC,yBAAyB,EACzC,YAAY,EAAE,KAAK,CAAC,MAAM,EAC1B,cAAc,EAAE,KAAK,CAAC,0BAA0B,GAAG,IAAI,GACrD,IAAI;IAsBA,eAAe,CACrB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,QAAQ,EAAE,KAAK,CAAC,kBAAkB,EAClC,YAAY,EAAE,KAAK,CAAC,MAAM,EAC1B,cAAc,EAAE,KAAK,CAAC,kBAAkB,GACtC,IAAI;IAqBA,qBAAqB,CAC3B,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,QAAQ,EAAE,KAAK,CAAC,wBAAwB,EACxC,YAAY,EAAE,KAAK,CAAC,MAAM,EAC1B,cAAc,EAAE,KAAK,CAAC,uBAAuB,GAC3C,IAAI;IA0BA,oBAAoB,CAC1B,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,QAAQ,EAAE,KAAK,CAAC,uBAAuB,EACvC,YAAY,EAAE,KAAK,CAAC,MAAM,EAC1B,cAAc,EAAE,KAAK,CAAC,wBAAwB,GAAG,IAAI,GACnD,IAAI;IAwBA,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,kBAAkB,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,kBAAkB,GAAG,IAAI,GAAG,IAAI;CAuBnK"}
@@ -28,35 +28,48 @@ class FieldsVisitor {
28
28
  });
29
29
  }
30
30
  visitManyHasManyInverse(entity, relation, targetEntity, targetRelation) {
31
- const joiningTable = targetRelation.joiningTable;
32
- const columns = {
33
- sourceColumn: joiningTable.inverseJoiningColumn,
34
- targetColumn: joiningTable.joiningColumn,
35
- };
36
31
  const field = this.executionContext.objectNode;
37
32
  if (!field) {
38
33
  throw new Error();
39
34
  }
40
- this.executionContext.addData(entity.primary, async (ids) => this.relationFetcher.fetchManyHasManyGroups(this.mapper, field, targetEntity, relation, targetRelation, columns, ids), []);
35
+ this.executionContext.addData(entity.primary, async (ids) => this.relationFetcher.fetchManyHasManyGroups({
36
+ mapper: this.mapper,
37
+ field: field,
38
+ targetEntity: targetEntity,
39
+ sourceRelation: relation,
40
+ targetRelation,
41
+ directionFrom: 'inverse',
42
+ ids: ids,
43
+ }), []);
41
44
  }
42
- visitManyHasManyOwning(entity, relation, targetEntity) {
43
- const joiningTable = relation.joiningTable;
44
- const columns = {
45
- sourceColumn: joiningTable.joiningColumn,
46
- targetColumn: joiningTable.inverseJoiningColumn,
47
- };
45
+ visitManyHasManyOwning(entity, relation, targetEntity, targetRelation) {
48
46
  const field = this.executionContext.objectNode;
49
47
  if (!field) {
50
48
  throw new Error();
51
49
  }
52
- this.executionContext.addData(entity.primary, async (ids) => this.relationFetcher.fetchManyHasManyGroups(this.mapper, field, targetEntity, relation, relation, columns, ids), []);
50
+ this.executionContext.addData(entity.primary, async (ids) => this.relationFetcher.fetchManyHasManyGroups({
51
+ mapper: this.mapper,
52
+ field: field,
53
+ targetEntity: targetEntity,
54
+ sourceRelation: relation,
55
+ targetRelation,
56
+ directionFrom: 'owning',
57
+ ids: ids,
58
+ }), []);
53
59
  }
54
60
  visitOneHasMany(entity, relation, targetEntity, targetRelation) {
55
61
  const field = this.executionContext.objectNode;
56
62
  if (!field) {
57
63
  throw new Error();
58
64
  }
59
- this.executionContext.addData(entity.primary, async (ids) => this.relationFetcher.fetchOneHasManyGroups(this.mapper, field, targetEntity, relation, targetRelation, ids), []);
65
+ this.executionContext.addData(entity.primary, async (ids) => this.relationFetcher.fetchOneHasManyGroups({
66
+ mapper: this.mapper,
67
+ objectNode: field,
68
+ targetEntity: targetEntity,
69
+ relation: relation,
70
+ targetRelation: targetRelation,
71
+ ids: ids,
72
+ }), []);
60
73
  }
61
74
  visitOneHasOneInverse(entity, relation, targetEntity, targetRelation) {
62
75
  this.executionContext.addData(entity.primary, async (ids) => {
@@ -75,7 +88,7 @@ class FieldsVisitor {
75
88
  and: [idsWhere, field.args.filter].filter((it) => it !== undefined),
76
89
  };
77
90
  const objectWithWhere = field.withArg('filter', where);
78
- return this.mapper.select(targetEntity, objectWithWhere, targetRelation.name);
91
+ return this.mapper.select(targetEntity, objectWithWhere, targetRelation, targetRelation.name);
79
92
  }, null);
80
93
  }
81
94
  visitOneHasOneOwning(entity, relation, targetEntity, targetRelation) {
@@ -93,10 +106,10 @@ class FieldsVisitor {
93
106
  and: [idsWhere, objectNode.args.filter].filter((it) => it !== undefined),
94
107
  };
95
108
  const objectWithWhere = objectNode.withArg('filter', where);
96
- return this.mapper.select(targetEntity, objectWithWhere, targetEntity.primary);
109
+ return this.mapper.select(targetEntity, objectWithWhere, targetRelation, targetEntity.primary);
97
110
  }, null);
98
111
  }
99
- visitManyHasOne(entity, relation, targetEntity) {
112
+ visitManyHasOne(entity, relation, targetEntity, targetRelation) {
100
113
  this.executionContext.addData(relation.name, async (ids) => {
101
114
  const idsWhere = {
102
115
  [targetEntity.primary]: {
@@ -111,7 +124,7 @@ class FieldsVisitor {
111
124
  and: [idsWhere, objectNode.args.filter].filter((it) => it !== undefined),
112
125
  };
113
126
  const objectWithWhere = objectNode.withArg('filter', where);
114
- return this.mapper.select(targetEntity, objectWithWhere, targetEntity.primary);
127
+ return this.mapper.select(targetEntity, objectWithWhere, targetRelation, targetEntity.primary);
115
128
  }, null);
116
129
  }
117
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FieldsVisitor.js","sourceRoot":"","sources":["../../../../../src/mapper/select/handlers/FieldsVisitor.ts"],"names":[],"mappings":";;;AAAA,8CAAqD;AAQrD,MAAa,aAAa;IACzB,YACkB,MAAoB,EACpB,eAAgC,EAChC,gBAAkC,EAClC,YAA0B,EAC1B,MAAc,EACd,gBAA+C;QAL/C,WAAM,GAAN,MAAM,CAAc;QACpB,oBAAe,GAAf,eAAe,CAAiB;QAChC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,WAAM,GAAN,MAAM,CAAQ;QACd,qBAAgB,GAAhB,gBAAgB,CAA+B;IAC9D,CAAC;IAEJ,WAAW,CAAC,MAAoB,EAAE,MAAuB;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAA;QAC7C,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;YACpC,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAA;YAC1C,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAA;YAEpC,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,6BAA6B,CACzE,MAAM,EACN,YAAG,CAAC,SAAS,CAAC,IAAI,EAClB,MAAM,CAAC,IAAI,CACX;gBACA,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,YAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACzE,CAAC,CAAC,SAAS,CAAA;YAEZ,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,CAAA;aAC9D;YACD,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,EAAE,CAAC,EAAE,CACtF,EAAE,CAAC,MAAM,CACR,IAAI,CAAC,EAAE,CACN,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CACpB,QAAQ;iBACN,IAAI,CACJ,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,EACxC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAC5D;iBACA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CACxC,EACF,WAAW,CACX,CACD,CAAA;QACF,CAAC,CAAC,CAAA;IACH,CAAC;IAEM,uBAAuB,CAC7B,MAAoB,EACpB,QAA0C,EAC1C,YAA0B,EAC1B,cAA+C;QAE/C,MAAM,YAAY,GAAG,cAAc,CAAC,YAAY,CAAA;QAChD,MAAM,OAAO,GAAmB;YAC/B,YAAY,EAAE,YAAY,CAAC,oBAAoB;YAC/C,YAAY,EAAE,YAAY,CAAC,aAAa;SACxC,CAAA;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAA;QAC9C,IAAI,CAAC,KAAK,EAAE;YACX,MAAM,IAAI,KAAK,EAAE,CAAA;SACjB;QACD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAC5B,MAAM,CAAC,OAAO,EACd,KAAK,EAAC,GAAG,EAAC,EAAE,CACX,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAC1C,IAAI,CAAC,MAAM,EACX,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,OAAO,EACP,GAAG,CACH,EACF,EAAE,CACF,CAAA;IACF,CAAC;IAEM,sBAAsB,CAC5B,MAAoB,EACpB,QAAyC,EACzC,YAA0B;QAE1B,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAA;QAC1C,MAAM,OAAO,GAAmB;YAC/B,YAAY,EAAE,YAAY,CAAC,aAAa;YACxC,YAAY,EAAE,YAAY,CAAC,oBAAoB;SAC/C,CAAA;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAA;QAC9C,IAAI,CAAC,KAAK,EAAE;YACX,MAAM,IAAI,KAAK,EAAE,CAAA;SACjB;QAED,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAC5B,MAAM,CAAC,OAAO,EACd,KAAK,EAAC,GAAG,EAAC,EAAE,CACX,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,EAChH,EAAE,CACF,CAAA;IACF,CAAC;IAEM,eAAe,CACrB,MAAoB,EACpB,QAAkC,EAClC,YAA0B,EAC1B,cAAwC;QAExC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAA;QAC9C,IAAI,CAAC,KAAK,EAAE;YACX,MAAM,IAAI,KAAK,EAAE,CAAA;SACjB;QAED,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAC5B,MAAM,CAAC,OAAO,EACd,KAAK,EAAC,GAAG,EAAC,EAAE,CACX,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,CAAC,EAC5G,EAAE,CACF,CAAA;IACF,CAAC;IAEM,qBAAqB,CAC3B,MAAoB,EACpB,QAAwC,EACxC,YAA0B,EAC1B,cAA6C;QAE7C,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAC5B,MAAM,CAAC,OAAO,EACd,KAAK,EAAC,GAAG,EAAC,EAAE;YACX,MAAM,QAAQ,GAAgB;gBAC7B,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;oBACtB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;wBACjB,EAAE,EAAE,GAAG;qBACP;iBACD;aACD,CAAA;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAA;YAC9C,IAAI,CAAC,KAAK,EAAE;gBACX,MAAM,IAAI,KAAK,EAAE,CAAA;aACjB;YACD,MAAM,KAAK,GAAgB;gBAC1B,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAqB,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC;aACtF,CAAA;YACD,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAEtD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,EAAE,cAAc,CAAC,IAAI,CAAC,CAAA;QAC9E,CAAC,EACD,IAAI,CACJ,CAAA;IACF,CAAC;IAEM,oBAAoB,CAC1B,MAAoB,EACpB,QAAuC,EACvC,YAA0B,EAC1B,cAAqD;QAErD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAC5B,QAAQ,CAAC,IAAI,EACb,KAAK,EAAC,GAAG,EAAC,EAAE;YACX,MAAM,QAAQ,GAAgB;gBAC7B,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;oBACvB,EAAE,EAAE,GAAG;iBACP;aACD,CAAA;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAA;YACnD,IAAI,CAAC,UAAU,EAAE;gBAChB,MAAM,IAAI,KAAK,EAAE,CAAA;aACjB;YACD,MAAM,KAAK,GAAgB;gBAC1B,GAAG,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAqB,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC;aAC3F,CAAA;YACD,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAE3D,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;QAC/E,CAAC,EACD,IAAI,CACJ,CAAA;IACF,CAAC;IAEM,eAAe,CAAC,MAAoB,EAAE,QAAkC,EAAE,YAA0B;QAC1G,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAC5B,QAAQ,CAAC,IAAI,EACb,KAAK,EAAC,GAAG,EAAC,EAAE;YACX,MAAM,QAAQ,GAAgB;gBAC7B,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;oBACvB,EAAE,EAAE,GAAG;iBACP;aACD,CAAA;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAA;YACnD,IAAI,CAAC,UAAU,EAAE;gBAChB,MAAM,IAAI,KAAK,EAAE,CAAA;aACjB;YACD,MAAM,KAAK,GAAgB;gBAC1B,GAAG,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAqB,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC;aAC3F,CAAA;YACD,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAE3D,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;QAC/E,CAAC,EACD,IAAI,CACJ,CAAA;IACF,CAAC;CACD;AAxMD,sCAwMC"}
1
+ {"version":3,"file":"FieldsVisitor.js","sourceRoot":"","sources":["../../../../../src/mapper/select/handlers/FieldsVisitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Input } from '@contember/schema';
2
+ export declare class ConditionOptimizer {
3
+ optimize(condition: Input.Condition): Omit<Input.Condition, 'always' | 'never'> | boolean;
4
+ }
5
+ //# sourceMappingURL=ConditionOptimizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConditionOptimizer.d.ts","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/ConditionOptimizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAKzC,qBAAa,kBAAkB;IACvB,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,OAAO;CA4BhG"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConditionOptimizer = void 0;
4
+ const helpers_1 = require("./helpers");
5
+ class ConditionOptimizer {
6
+ optimize(condition) {
7
+ if (condition.never) {
8
+ return false;
9
+ }
10
+ return (0, helpers_1.optimizeAnd)(Object.entries(condition).map(([key, value]) => {
11
+ if (value === undefined || value === null) {
12
+ return undefined;
13
+ }
14
+ else if (key === 'always') {
15
+ return true;
16
+ }
17
+ else if (key === 'and') {
18
+ return (0, helpers_1.optimizeAnd)(value.map(it => this.optimize(it)));
19
+ }
20
+ else if (key === 'or') {
21
+ return (0, helpers_1.optimizeOr)(value.map(it => this.optimize(it)));
22
+ }
23
+ else if (key === 'not') {
24
+ return (0, helpers_1.optimizeNot)(this.optimize(value));
25
+ }
26
+ else {
27
+ return { [key]: value };
28
+ }
29
+ }));
30
+ }
31
+ }
32
+ exports.ConditionOptimizer = ConditionOptimizer;
33
+ //# sourceMappingURL=ConditionOptimizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConditionOptimizer.js","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/ConditionOptimizer.ts"],"names":[],"mappings":";;;AACA,uCAAgE;AAIhE,MAAa,kBAAkB;IACvB,QAAQ,CAAC,SAA0B;QACzC,IAAI,SAAS,CAAC,KAAK,EAAE;YACpB,OAAO,KAAK,CAAA;SACZ;QAED,OAAO,IAAA,qBAAW,EAChB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAqC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACnF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;gBAC1C,OAAO,SAAS,CAAA;aAEhB;iBAAM,IAAI,GAAG,KAAK,QAAQ,EAAE;gBAC5B,OAAO,IAAI,CAAA;aAEX;iBAAM,IAAI,GAAG,KAAK,KAAK,EAAE;gBACzB,OAAO,IAAA,qBAAW,EAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aAEtD;iBAAM,IAAI,GAAG,KAAK,IAAI,EAAE;gBACxB,OAAO,IAAA,oBAAU,EAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aAErD;iBAAM,IAAI,GAAG,KAAK,KAAK,EAAE;gBACzB,OAAO,IAAA,qBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;aAExC;iBAAM;gBACN,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAA;aACvB;QACF,CAAC,CAAC,CACF,CAAA;IACF,CAAC;CACD;AA7BD,gDA6BC"}
@@ -0,0 +1,11 @@
1
+ import { Input, Model } from '@contember/schema';
2
+ import { ConditionOptimizer } from './ConditionOptimizer';
3
+ export declare class WhereOptimizer {
4
+ private readonly model;
5
+ private readonly conditionOptimizer;
6
+ constructor(model: Model.Schema, conditionOptimizer: ConditionOptimizer);
7
+ optimize(where: Input.OptionalWhere, entity: Model.Entity): Input.Where;
8
+ private optimizeWhere;
9
+ private resolveFieldValue;
10
+ }
11
+ //# sourceMappingURL=WhereOptimizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WhereOptimizer.d.ts","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/WhereOptimizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAIzD,qBAAa,cAAc;IAEzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBADlB,KAAK,EAAE,KAAK,CAAC,MAAM,EACnB,kBAAkB,EAAE,kBAAkB;IAIjD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK;IAU9E,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,iBAAiB;CAsBzB"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WhereOptimizer = void 0;
4
+ const schema_utils_1 = require("@contember/schema-utils");
5
+ const helpers_1 = require("./helpers");
6
+ class WhereOptimizer {
7
+ constructor(model, conditionOptimizer) {
8
+ this.model = model;
9
+ this.conditionOptimizer = conditionOptimizer;
10
+ }
11
+ optimize(where, entity) {
12
+ const result = this.optimizeWhere(where, entity);
13
+ if (typeof result === 'boolean') {
14
+ return { [entity.primary]: { [result ? 'always' : 'never']: true } };
15
+ }
16
+ return result;
17
+ }
18
+ optimizeWhere(where, entity) {
19
+ return (0, helpers_1.optimizeAnd)(Object.entries(where).map(([key, value]) => {
20
+ if (value === undefined || value === null) {
21
+ return undefined;
22
+ }
23
+ else if (key === 'and') {
24
+ return (0, helpers_1.optimizeAnd)(value.map(it => this.optimizeWhere(it, entity)));
25
+ }
26
+ else if (key === 'or') {
27
+ return (0, helpers_1.optimizeOr)(value.map(it => this.optimizeWhere(it, entity)));
28
+ }
29
+ else if (key === 'not') {
30
+ return (0, helpers_1.optimizeNot)(this.optimizeWhere(value, entity));
31
+ }
32
+ else {
33
+ return this.resolveFieldValue(entity, key, value);
34
+ }
35
+ }));
36
+ }
37
+ resolveFieldValue(entity, key, value) {
38
+ return (0, schema_utils_1.acceptFieldVisitor)(this.model, entity, key, {
39
+ visitColumn: () => {
40
+ const optimizedCondition = this.conditionOptimizer.optimize(value);
41
+ if (typeof optimizedCondition === 'boolean') {
42
+ return optimizedCondition;
43
+ }
44
+ return { [key]: optimizedCondition };
45
+ },
46
+ visitRelation: (entity, relation, targetEntity) => {
47
+ const optimizedWhere = this.optimizeWhere(value, targetEntity);
48
+ if (typeof optimizedWhere === 'boolean') {
49
+ return optimizedWhere;
50
+ }
51
+ return { [key]: optimizedWhere };
52
+ },
53
+ });
54
+ }
55
+ }
56
+ exports.WhereOptimizer = WhereOptimizer;
57
+ //# sourceMappingURL=WhereOptimizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WhereOptimizer.js","sourceRoot":"","sources":["../../../../../src/mapper/select/optimizer/WhereOptimizer.ts"],"names":[],"mappings":";;;AAEA,0DAA4D;AAC5D,uCAAgE;AAEhE,MAAa,cAAc;IAC1B,YACkB,KAAmB,EACnB,kBAAsC;QADtC,UAAK,GAAL,KAAK,CAAc;QACnB,uBAAkB,GAAlB,kBAAkB,CAAoB;IAExD,CAAC;IAEM,QAAQ,CAAC,KAA0B,EAAE,MAAoB;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAEhD,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE;YAChC,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,CAAA;SACpE;QAED,OAAO,MAAM,CAAA;IACd,CAAC;IAEO,aAAa,CAAC,KAA0B,EAAE,MAAoB;QACrE,OAAO,IAAA,qBAAW,EACjB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC1C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;gBAC1C,OAAO,SAAS,CAAA;aAEhB;iBAAM,IAAI,GAAG,KAAK,KAAK,EAAE;gBACzB,OAAO,IAAA,qBAAW,EAAE,KAAgC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;aAE/F;iBAAM,IAAI,GAAG,KAAK,IAAI,EAAE;gBACxB,OAAO,IAAA,oBAAU,EAAE,KAAgC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;aAE9F;iBAAM,IAAI,GAAG,KAAK,KAAK,EAAE;gBACzB,OAAO,IAAA,qBAAW,EAAC,IAAI,CAAC,aAAa,CAAC,KAAoB,EAAE,MAAM,CAAC,CAAC,CAAA;aAEpE;iBAAM;gBACN,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;aACjD;QACF,CAAC,CAAC,CACF,CAAA;IACF,CAAC;IAEO,iBAAiB,CAAC,MAAoB,EAAE,GAAW,EAAE,KAAkC;QAC9F,OAAO,IAAA,iCAAkB,EAAwB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE;YACzE,WAAW,EAAE,GAAG,EAAE;gBACjB,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAwB,CAAC,CAAA;gBAErF,IAAI,OAAO,kBAAkB,KAAK,SAAS,EAAE;oBAC5C,OAAO,kBAAkB,CAAA;iBACzB;gBAED,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,kBAAkB,EAAE,CAAA;YACrC,CAAC;YACD,aAAa,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;gBACjD,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,KAAoB,EAAE,YAAY,CAAC,CAAA;gBAE7E,IAAI,OAAO,cAAc,KAAK,SAAS,EAAE;oBACxC,OAAO,cAAc,CAAA;iBACrB;gBAED,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,CAAA;YACjC,CAAC;SACD,CAAC,CAAA;IACH,CAAC;CACD;AA7DD,wCA6DC"}
@@ -0,0 +1,10 @@
1
+ export declare const optimizeOr: <P extends Record<string, unknown>>(operands: readonly (boolean | P)[]) => boolean | P | {
2
+ or?: P[] | undefined;
3
+ };
4
+ export declare const optimizeAnd: <P extends Record<string, unknown>>(operands: readonly (boolean | P | undefined)[]) => boolean | P | {
5
+ and?: P[] | undefined;
6
+ };
7
+ export declare const optimizeNot: <P extends Record<string, unknown>>(operand: boolean | P) => boolean | P["not"] | {
8
+ not: P;
9
+ };
10
+ //# sourceMappingURL=helpers.d.ts.map