@prisma/client-engine-runtime 6.9.0-dev.29 → 6.9.0-dev.30

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.
package/dist/index.js CHANGED
@@ -173,24 +173,19 @@ function mapValue(value, columnName, resultType) {
173
173
  case "Int": {
174
174
  switch (typeof value) {
175
175
  case "number": {
176
- if (Number.isInteger(value)) {
177
- return value;
178
- }
179
- throw new DataMapperError(`Expected an integer in column '${columnName}', got float: ${value}`);
176
+ return Math.trunc(value);
180
177
  }
181
178
  case "string": {
182
- const numberValue = Number(value);
183
- if (Number.isInteger(numberValue)) {
184
- return numberValue;
185
- }
186
- try {
187
- BigInt(value);
188
- } catch {
179
+ const numberValue = Math.trunc(Number(value));
180
+ if (Number.isNaN(numberValue) || !Number.isFinite(numberValue)) {
189
181
  throw new DataMapperError(`Expected an integer in column '${columnName}', got string: ${value}`);
190
182
  }
191
- throw new DataMapperError(
192
- `Integer value in column '${columnName}' is too large to represent as a JavaScript number without loss of precision, got: ${value}. Consider using BigInt type.`
193
- );
183
+ if (!Number.isSafeInteger(numberValue)) {
184
+ throw new DataMapperError(
185
+ `Integer value in column '${columnName}' is too large to represent as a JavaScript number without loss of precision, got: ${value}. Consider using BigInt type.`
186
+ );
187
+ }
188
+ return numberValue;
194
189
  }
195
190
  default:
196
191
  throw new DataMapperError(`Expected an integer in column '${columnName}', got ${typeof value}: ${value}`);
package/dist/index.mjs CHANGED
@@ -125,24 +125,19 @@ function mapValue(value, columnName, resultType) {
125
125
  case "Int": {
126
126
  switch (typeof value) {
127
127
  case "number": {
128
- if (Number.isInteger(value)) {
129
- return value;
130
- }
131
- throw new DataMapperError(`Expected an integer in column '${columnName}', got float: ${value}`);
128
+ return Math.trunc(value);
132
129
  }
133
130
  case "string": {
134
- const numberValue = Number(value);
135
- if (Number.isInteger(numberValue)) {
136
- return numberValue;
137
- }
138
- try {
139
- BigInt(value);
140
- } catch {
131
+ const numberValue = Math.trunc(Number(value));
132
+ if (Number.isNaN(numberValue) || !Number.isFinite(numberValue)) {
141
133
  throw new DataMapperError(`Expected an integer in column '${columnName}', got string: ${value}`);
142
134
  }
143
- throw new DataMapperError(
144
- `Integer value in column '${columnName}' is too large to represent as a JavaScript number without loss of precision, got: ${value}. Consider using BigInt type.`
145
- );
135
+ if (!Number.isSafeInteger(numberValue)) {
136
+ throw new DataMapperError(
137
+ `Integer value in column '${columnName}' is too large to represent as a JavaScript number without loss of precision, got: ${value}. Consider using BigInt type.`
138
+ );
139
+ }
140
+ return numberValue;
146
141
  }
147
142
  default:
148
143
  throw new DataMapperError(`Expected an integer in column '${columnName}', got ${typeof value}: ${value}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/client-engine-runtime",
3
- "version": "6.9.0-dev.29",
3
+ "version": "6.9.0-dev.30",
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/driver-adapter-utils": "6.9.0-dev.29",
35
- "@prisma/debug": "6.9.0-dev.29"
34
+ "@prisma/debug": "6.9.0-dev.30",
35
+ "@prisma/driver-adapter-utils": "6.9.0-dev.30"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/jest": "29.5.14",