mirror of
https://github.com/expo/entity.git
synced 2026-11-15 03:48:08 -10:00
Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9c692afbcb | ||
|
|
17bd06e67e | ||
|
|
69ef7aa0c9 | ||
|
|
8db4fbbd8a |
No files matched your search
+1
-1
@@ -23,7 +23,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tsconfig/bases": "1.0.28",
|
||||
"@types/node": "24.13.5",
|
||||
"@types/node": "24.19.1",
|
||||
"ctix": "2.8.2",
|
||||
"jest": "30.5.1",
|
||||
"lerna": "9.0.7",
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
"devDependencies": {
|
||||
"@jest/globals": "30.5.1",
|
||||
"@types/jscodeshift": "17.3.0",
|
||||
"@types/node": "24.13.5",
|
||||
"@types/node": "24.19.1",
|
||||
"jscodeshift": "17.4.0",
|
||||
"typescript": "6.0.3"
|
||||
},
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"devDependencies": {
|
||||
"@jest/globals": "30.5.1",
|
||||
"@types/invariant": "2.2.37",
|
||||
"@types/node": "24.13.5",
|
||||
"@types/node": "24.19.1",
|
||||
"typescript": "6.0.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
"devDependencies": {
|
||||
"@expo/entity-testing-utils": "workspace:^",
|
||||
"@jest/globals": "30.5.1",
|
||||
"pg": "8.23.0",
|
||||
"pg": "8.23.1",
|
||||
"ts-mockito": "2.6.1",
|
||||
"typescript": "6.0.3"
|
||||
},
|
||||
|
||||
+18
@@ -1,8 +1,26 @@
|
||||
import { EntityDatabaseAdapterTransientError, EntityErrorState } from '@expo/entity';
|
||||
import { describe, expect, it } from '@jest/globals';
|
||||
|
||||
import { wrapNativePostgresCallAsync } from '../wrapNativePostgresCallAsync.ts';
|
||||
|
||||
describe(wrapNativePostgresCallAsync, () => {
|
||||
it('classifies a PostgreSQL lock timeout as transient and preserves the cause', async () => {
|
||||
const error = Object.assign(new Error('canceling statement due to lock timeout'), {
|
||||
code: '55P03',
|
||||
});
|
||||
const result = wrapNativePostgresCallAsync(async () => {
|
||||
throw error;
|
||||
});
|
||||
|
||||
await expect(result).rejects.toBeInstanceOf(EntityDatabaseAdapterTransientError);
|
||||
await expect(result).rejects.toMatchObject({
|
||||
state: EntityErrorState.TRANSIENT,
|
||||
message: error.message,
|
||||
stack: error.stack,
|
||||
cause: error,
|
||||
});
|
||||
});
|
||||
|
||||
it('rethrows literals', async () => {
|
||||
const throwingFn = async (): Promise<void> => {
|
||||
// eslint-disable-next-line no-throw-literal,@typescript-eslint/only-throw-error
|
||||
|
||||
@@ -38,6 +38,8 @@ function translatePostgresError(
|
||||
return new EntityDatabaseAdapterCheckConstraintError(error.message, error);
|
||||
case '23P01':
|
||||
return new EntityDatabaseAdapterExclusionConstraintError(error.message, error);
|
||||
case '55P03':
|
||||
return new EntityDatabaseAdapterTransientError(error.message, error);
|
||||
default:
|
||||
return new EntityDatabaseAdapterUnknownError(error.message, error);
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
"devDependencies": {
|
||||
"@jest/globals": "30.5.1",
|
||||
"@types/lodash-es": "4.17.12",
|
||||
"@types/node": "24.13.5",
|
||||
"@types/node": "24.19.1",
|
||||
"typescript": "6.0.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"@jest/globals": "30.5.1",
|
||||
"@types/invariant": "2.2.37",
|
||||
"@types/lodash-es": "4.17.12",
|
||||
"@types/node": "24.13.5",
|
||||
"@types/node": "24.19.1",
|
||||
"lodash-es": "4.18.1",
|
||||
"ts-mockito": "2.6.1",
|
||||
"typescript": "6.0.3",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
version: '2'
|
||||
services:
|
||||
redis:
|
||||
image: redis@sha256:718f745deb7dfefeac6eed7041fc7ec9476b50e61b247932682457c41adafa0e
|
||||
image: redis@sha256:6f81e8915c60b065a524e6967e0ad1c639ba6efa84d669f823683ea04d9150ee
|
||||
ports:
|
||||
- '${REDIS_PORT}:6379'
|
||||
volumes:
|
||||
|
||||
@@ -890,7 +890,7 @@ __metadata:
|
||||
dependencies:
|
||||
"@jest/globals": "npm:30.5.1"
|
||||
"@types/jscodeshift": "npm:17.3.0"
|
||||
"@types/node": "npm:24.13.5"
|
||||
"@types/node": "npm:24.19.1"
|
||||
jscodeshift: "npm:17.4.0"
|
||||
typescript: "npm:6.0.3"
|
||||
languageName: unknown
|
||||
@@ -904,7 +904,7 @@ __metadata:
|
||||
"@expo/entity-database-adapter-knex": "workspace:^"
|
||||
"@jest/globals": "npm:30.5.1"
|
||||
"@types/invariant": "npm:2.2.37"
|
||||
"@types/node": "npm:24.13.5"
|
||||
"@types/node": "npm:24.19.1"
|
||||
invariant: "npm:^2.2.4"
|
||||
typescript: "npm:6.0.3"
|
||||
uuid: "npm:^14.0.0"
|
||||
@@ -921,7 +921,7 @@ __metadata:
|
||||
"@expo/entity-testing-utils": "workspace:^"
|
||||
"@jest/globals": "npm:30.5.1"
|
||||
knex: "npm:^3.2.9"
|
||||
pg: "npm:8.23.0"
|
||||
pg: "npm:8.23.1"
|
||||
ts-mockito: "npm:2.6.1"
|
||||
typescript: "npm:6.0.3"
|
||||
languageName: unknown
|
||||
@@ -1007,7 +1007,7 @@ __metadata:
|
||||
"@expo/entity": "workspace:^"
|
||||
"@jest/globals": "npm:30.5.1"
|
||||
"@types/lodash-es": "npm:4.17.12"
|
||||
"@types/node": "npm:24.13.5"
|
||||
"@types/node": "npm:24.19.1"
|
||||
lodash-es: "npm:^4.17.23"
|
||||
ts-mockito: "npm:^2.6.1"
|
||||
typescript: "npm:6.0.3"
|
||||
@@ -1024,7 +1024,7 @@ __metadata:
|
||||
"@jest/globals": "npm:30.5.1"
|
||||
"@types/invariant": "npm:2.2.37"
|
||||
"@types/lodash-es": "npm:4.17.12"
|
||||
"@types/node": "npm:24.13.5"
|
||||
"@types/node": "npm:24.19.1"
|
||||
dataloader: "npm:^2.2.3"
|
||||
invariant: "npm:^2.2.4"
|
||||
lodash-es: "npm:4.18.1"
|
||||
@@ -3389,12 +3389,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/node@npm:24.13.5":
|
||||
version: 24.13.5
|
||||
resolution: "@types/node@npm:24.13.5"
|
||||
"@types/node@npm:24.19.1":
|
||||
version: 24.19.1
|
||||
resolution: "@types/node@npm:24.19.1"
|
||||
dependencies:
|
||||
undici-types: "npm:~7.18.0"
|
||||
checksum: 10c0/f6c7f564e7b16670bc72ce119f2aaba0f6d6ebb886c13d8cd3656a96e4825d91d826be3d0995fc776df4e19eceb4d3074e5e18d54ce1aebd3f6e0ba12b9108cb
|
||||
undici-types: "npm:>=7.24.0 <7.24.7"
|
||||
checksum: 10c0/789822cc68a0e0b632fd0a9fa53411e33541f03c18dc19942ed38161c369bf0b013917b4c6c760688bd2d09d940c827a601add118dfa04fe35a285535b2a8596
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -9184,10 +9184,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"pg-cloudflare@npm:^1.4.0":
|
||||
version: 1.4.0
|
||||
resolution: "pg-cloudflare@npm:1.4.0"
|
||||
checksum: 10c0/553764d00055052648393cda53c1feb065991d6f9fbfdeb56cf8396c5b33377ab2897aaf5dc9cd3933d09023a1f01e8b1ca755431dcf5fd71c92ea277e2888f1
|
||||
"pg-cloudflare@npm:^1.4.1":
|
||||
version: 1.4.1
|
||||
resolution: "pg-cloudflare@npm:1.4.1"
|
||||
checksum: 10c0/32e62c987073472e81c0dc218f850b1212b4e2c1f35d50433d87d054fe268f549ebaf8fc6c1227ab24c12b318f3e3a2a191ffbdfb2daa30b39aa6802ab8fe2f6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -9198,10 +9198,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"pg-connection-string@npm:^2.14.0":
|
||||
version: 2.14.0
|
||||
resolution: "pg-connection-string@npm:2.14.0"
|
||||
checksum: 10c0/c26d85970f782de72b90aa45b4acfa34df90242fc08bc676e8827297164044dbfb40a2cf20b0646bd02662a6b14c5ed27f322db627e41e582f2b705bc41e8b47
|
||||
"pg-connection-string@npm:^2.14.1":
|
||||
version: 2.14.1
|
||||
resolution: "pg-connection-string@npm:2.14.1"
|
||||
checksum: 10c0/7321eed97579b4972a714909e7a444beb2186780fe7fd86ea719ff7c8f1fad07d7e5f85722c4992245b23683ed7d2fe2bdda8f7469fed4c016bb5c3379c575ca
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -9221,10 +9221,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"pg-protocol@npm:^1.16.0":
|
||||
version: 1.16.0
|
||||
resolution: "pg-protocol@npm:1.16.0"
|
||||
checksum: 10c0/8ea4a8f4970aa0ca1e5bf9a482da0a41a043d7470fbaf7592736971146b09a2a4003d953c0091b72fc30bf7a7994a0b7fdf897bf50cd219787bd22806b3ffb04
|
||||
"pg-protocol@npm:^1.16.1":
|
||||
version: 1.16.1
|
||||
resolution: "pg-protocol@npm:1.16.1"
|
||||
checksum: 10c0/84e8bf05c3548c8ffcad29247c075f8f1cf477600c92a7eb0ab27c6c4cbdbe1280433582bfba91f629b1f68bcaf4ae26436a898f430e884d7887543931e8ade6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -9241,14 +9241,14 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"pg@npm:8.23.0":
|
||||
version: 8.23.0
|
||||
resolution: "pg@npm:8.23.0"
|
||||
"pg@npm:8.23.1":
|
||||
version: 8.23.1
|
||||
resolution: "pg@npm:8.23.1"
|
||||
dependencies:
|
||||
pg-cloudflare: "npm:^1.4.0"
|
||||
pg-connection-string: "npm:^2.14.0"
|
||||
pg-cloudflare: "npm:^1.4.1"
|
||||
pg-connection-string: "npm:^2.14.1"
|
||||
pg-pool: "npm:^3.14.0"
|
||||
pg-protocol: "npm:^1.16.0"
|
||||
pg-protocol: "npm:^1.16.1"
|
||||
pg-types: "npm:2.2.0"
|
||||
pgpass: "npm:1.0.5"
|
||||
peerDependencies:
|
||||
@@ -9259,7 +9259,7 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
pg-native:
|
||||
optional: true
|
||||
checksum: 10c0/11ce12a71b4239588c18f078531c378d5bcdbcb9ea892e080a6e71f91aaece2b4b8fd93ee5777f94210f9258ff56161f8ed1a45050c32d295aaca037bba12ee8
|
||||
checksum: 10c0/084ce2bcd025705105d4d9a4c4438b178117acbaae5c766e3d3c9fb812cc55d826a212189e19937b8e3b0a8914a3c3e4ba78ad62af73890f37406a676c1f9e0c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -9789,7 +9789,7 @@ __metadata:
|
||||
resolution: "root@workspace:."
|
||||
dependencies:
|
||||
"@tsconfig/bases": "npm:1.0.28"
|
||||
"@types/node": "npm:24.13.5"
|
||||
"@types/node": "npm:24.19.1"
|
||||
ctix: "npm:2.8.2"
|
||||
jest: "npm:30.5.1"
|
||||
lerna: "npm:9.0.7"
|
||||
@@ -10832,10 +10832,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"undici-types@npm:~7.18.0":
|
||||
version: 7.18.2
|
||||
resolution: "undici-types@npm:7.18.2"
|
||||
checksum: 10c0/85a79189113a238959d7a647368e4f7c5559c3a404ebdb8fc4488145ce9426fcd82252a844a302798dfc0e37e6fb178ff481ed03bc4caf634c5757d9ef43521d
|
||||
"undici-types@npm:>=7.24.0 <7.24.7":
|
||||
version: 7.24.6
|
||||
resolution: "undici-types@npm:7.24.6"
|
||||
checksum: 10c0/d9cd8befb643ac904615c280a095ba4240531f6bb4a5e75a22a7483630ca8d3f1016d2ab6ace6ceda1f63b3a2db2fe037fafe121d6917a0187573aa548ff78ca
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
Reference in new issue
Block a user