@prisma/client-engine-runtime 6.8.0-dev.35 → 6.8.0-dev.37

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.
@@ -152,6 +152,16 @@ export type QueryPlanNode = {
152
152
  expr: QueryPlanNode;
153
153
  rules: DataRule[];
154
154
  } & ValidationError;
155
+ } | {
156
+ type: 'if';
157
+ args: {
158
+ value: QueryPlanNode;
159
+ rule: DataRule;
160
+ then: QueryPlanNode;
161
+ else: QueryPlanNode;
162
+ };
163
+ } | {
164
+ type: 'unit';
155
165
  };
156
166
  export type DataRule = {
157
167
  type: 'rowCountEq';
@@ -159,6 +169,8 @@ export type DataRule = {
159
169
  } | {
160
170
  type: 'rowCountNeq';
161
171
  args: number;
172
+ } | {
173
+ type: 'never';
162
174
  };
163
175
  export type ValidationError = {
164
176
  error_identifier: 'RELATION_VIOLATION';
package/dist/index.d.mts CHANGED
@@ -13,6 +13,8 @@ export declare type DataRule = {
13
13
  } | {
14
14
  type: 'rowCountNeq';
15
15
  args: number;
16
+ } | {
17
+ type: 'never';
16
18
  };
17
19
 
18
20
  declare type ExtendedSpanOptions = SpanOptions & {
@@ -215,6 +217,16 @@ export declare type QueryPlanNode = {
215
217
  expr: QueryPlanNode;
216
218
  rules: DataRule[];
217
219
  } & ValidationError;
220
+ } | {
221
+ type: 'if';
222
+ args: {
223
+ value: QueryPlanNode;
224
+ rule: DataRule;
225
+ then: QueryPlanNode;
226
+ else: QueryPlanNode;
227
+ };
228
+ } | {
229
+ type: 'unit';
218
230
  };
219
231
 
220
232
  export declare type ResultNode = {
package/dist/index.d.ts CHANGED
@@ -13,6 +13,8 @@ export declare type DataRule = {
13
13
  } | {
14
14
  type: 'rowCountNeq';
15
15
  args: number;
16
+ } | {
17
+ type: 'never';
16
18
  };
17
19
 
18
20
  declare type ExtendedSpanOptions = SpanOptions & {
@@ -215,6 +217,16 @@ export declare type QueryPlanNode = {
215
217
  expr: QueryPlanNode;
216
218
  rules: DataRule[];
217
219
  } & ValidationError;
220
+ } | {
221
+ type: 'if';
222
+ args: {
223
+ value: QueryPlanNode;
224
+ rule: DataRule;
225
+ then: QueryPlanNode;
226
+ else: QueryPlanNode;
227
+ };
228
+ } | {
229
+ type: 'unit';
218
230
  };
219
231
 
220
232
  export declare type ResultNode = {
package/dist/index.js CHANGED
@@ -594,6 +594,10 @@ function doesSatisfyRule(data, rule) {
594
594
  return rule.args !== 0;
595
595
  }
596
596
  return rule.args !== 1;
597
+ case "never":
598
+ return false;
599
+ default:
600
+ assertNever(rule, `Unknown rule type: ${rule.type}`);
597
601
  }
598
602
  }
599
603
  function renderMessage(data, error) {
@@ -669,11 +673,9 @@ var QueryInterpreter = class _QueryInterpreter {
669
673
  }
670
674
  case "let": {
671
675
  const nestedScope = Object.create(scope);
672
- await Promise.all(
673
- node.args.bindings.map(async (binding) => {
674
- nestedScope[binding.name] = await this.interpretNode(binding.expr, queryable, scope, generators);
675
- })
676
- );
676
+ for (const binding of node.args.bindings) {
677
+ nestedScope[binding.name] = await this.interpretNode(binding.expr, queryable, nestedScope, generators);
678
+ }
677
679
  return this.interpretNode(node.args.expr, queryable, nestedScope, generators);
678
680
  }
679
681
  case "getFirstNonEmpty": {
@@ -771,6 +773,17 @@ var QueryInterpreter = class _QueryInterpreter {
771
773
  performValidation(data, node.args.rules, node.args);
772
774
  return data;
773
775
  }
776
+ case "if": {
777
+ const value = await this.interpretNode(node.args.value, queryable, scope, generators);
778
+ if (doesSatisfyRule(value, node.args.rule)) {
779
+ return await this.interpretNode(node.args.then, queryable, scope, generators);
780
+ } else {
781
+ return await this.interpretNode(node.args.else, queryable, scope, generators);
782
+ }
783
+ }
784
+ case "unit": {
785
+ return void 0;
786
+ }
774
787
  default:
775
788
  assertNever(node, `Unexpected node type: ${node.type}`);
776
789
  }
package/dist/index.mjs CHANGED
@@ -551,6 +551,10 @@ function doesSatisfyRule(data, rule) {
551
551
  return rule.args !== 0;
552
552
  }
553
553
  return rule.args !== 1;
554
+ case "never":
555
+ return false;
556
+ default:
557
+ assertNever(rule, `Unknown rule type: ${rule.type}`);
554
558
  }
555
559
  }
556
560
  function renderMessage(data, error) {
@@ -626,11 +630,9 @@ var QueryInterpreter = class _QueryInterpreter {
626
630
  }
627
631
  case "let": {
628
632
  const nestedScope = Object.create(scope);
629
- await Promise.all(
630
- node.args.bindings.map(async (binding) => {
631
- nestedScope[binding.name] = await this.interpretNode(binding.expr, queryable, scope, generators);
632
- })
633
- );
633
+ for (const binding of node.args.bindings) {
634
+ nestedScope[binding.name] = await this.interpretNode(binding.expr, queryable, nestedScope, generators);
635
+ }
634
636
  return this.interpretNode(node.args.expr, queryable, nestedScope, generators);
635
637
  }
636
638
  case "getFirstNonEmpty": {
@@ -728,6 +730,17 @@ var QueryInterpreter = class _QueryInterpreter {
728
730
  performValidation(data, node.args.rules, node.args);
729
731
  return data;
730
732
  }
733
+ case "if": {
734
+ const value = await this.interpretNode(node.args.value, queryable, scope, generators);
735
+ if (doesSatisfyRule(value, node.args.rule)) {
736
+ return await this.interpretNode(node.args.then, queryable, scope, generators);
737
+ } else {
738
+ return await this.interpretNode(node.args.else, queryable, scope, generators);
739
+ }
740
+ }
741
+ case "unit": {
742
+ return void 0;
743
+ }
731
744
  default:
732
745
  assertNever(node, `Unexpected node type: ${node.type}`);
733
746
  }
@@ -1,2 +1,3 @@
1
1
  import { DataRule, ValidationError } from '../QueryPlan';
2
2
  export declare function performValidation(data: unknown, rules: DataRule[], error: ValidationError): void;
3
+ export declare function doesSatisfyRule(data: unknown, rule: DataRule): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/client-engine-runtime",
3
- "version": "6.8.0-dev.35",
3
+ "version": "6.8.0-dev.37",
4
4
  "description": "This package is intended for Prisma's internal use",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -31,8 +31,8 @@
31
31
  "nanoid": "5.1.5",
32
32
  "ulid": "3.0.0",
33
33
  "uuid": "11.1.0",
34
- "@prisma/debug": "6.8.0-dev.35",
35
- "@prisma/driver-adapter-utils": "6.8.0-dev.35"
34
+ "@prisma/debug": "6.8.0-dev.37",
35
+ "@prisma/driver-adapter-utils": "6.8.0-dev.37"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/jest": "29.5.14",