@agentuity/postgres 3.1.1 → 3.1.2

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.
@@ -0,0 +1,38 @@
1
+ import type { PoolConfig } from './types.ts';
2
+ interface HotReloadConnection {
3
+ readonly shuttingDown: boolean;
4
+ readonly ended?: boolean;
5
+ close(): Promise<void>;
6
+ }
7
+ /**
8
+ * Whether Bun hot module replacement is active.
9
+ * Undefined in production; Bun dead-code-eliminates callers when false.
10
+ */
11
+ export declare function isHotReloadEnabled(): boolean;
12
+ /** @internal Test-only override for hot reload detection. */
13
+ export declare function __setHotReloadEnabledForTests(value: boolean | undefined): void;
14
+ /**
15
+ * Stable cache key for pools that target the same backend with the same sizing.
16
+ */
17
+ export declare function computePoolHotReloadKey(config?: string | PoolConfig): string;
18
+ /**
19
+ * Close a superseded pool/client during hot reload and track the replacement.
20
+ * @internal
21
+ */
22
+ export declare function supersedeHotReloadConnection(connection: HotReloadConnection, hotReloadKey: string): void;
23
+ /**
24
+ * Remove a closed connection from the shared hot-reload cache.
25
+ * @internal
26
+ */
27
+ export declare function removeHotReloadCachedConnection(connection: HotReloadConnection): void;
28
+ /** Clear all shared hot-reload pool references. */
29
+ export declare function clearSharedHotReloadCache(): void;
30
+ /** @internal Clear shared pool cache between tests. */
31
+ export declare function __clearHotReloadCacheForTests(): void;
32
+ /**
33
+ * Returns a shared pool cached from a prior hot reload, if still open.
34
+ * @internal
35
+ */
36
+ export declare function getSharedHotReloadPool(hotReloadKey: string): HotReloadConnection | undefined;
37
+ export {};
38
+ //# sourceMappingURL=hot-reload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hot-reload.d.ts","sourceRoot":"","sources":["../src/hot-reload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7C,UAAU,mBAAmB;IAC5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAK5C;AAED,6DAA6D;AAC7D,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAE9E;AAoBD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAO5E;AAMD;;;GAGG;AACH,wBAAgB,4BAA4B,CAC3C,UAAU,EAAE,mBAAmB,EAC/B,YAAY,EAAE,MAAM,GAClB,IAAI,CAON;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAOrF;AAED,mDAAmD;AACnD,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED,uDAAuD;AACvD,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAM5F"}
@@ -0,0 +1,90 @@
1
+ const SHARED_POOL_CACHE_KEY = Symbol.for('@agentuity/postgres:shared-pools');
2
+ let hotReloadEnabledOverride;
3
+ /**
4
+ * Whether Bun hot module replacement is active.
5
+ * Undefined in production; Bun dead-code-eliminates callers when false.
6
+ */
7
+ export function isHotReloadEnabled() {
8
+ if (hotReloadEnabledOverride !== undefined) {
9
+ return hotReloadEnabledOverride;
10
+ }
11
+ return typeof import.meta !== 'undefined' && import.meta.hot !== undefined;
12
+ }
13
+ /** @internal Test-only override for hot reload detection. */
14
+ export function __setHotReloadEnabledForTests(value) {
15
+ hotReloadEnabledOverride = value;
16
+ }
17
+ function getSharedPoolCache() {
18
+ const global = globalThis;
19
+ if (!global[SHARED_POOL_CACHE_KEY]) {
20
+ global[SHARED_POOL_CACHE_KEY] = new Map();
21
+ }
22
+ return global[SHARED_POOL_CACHE_KEY];
23
+ }
24
+ function normalizePoolConfig(config) {
25
+ if (typeof config === 'string') {
26
+ return { connectionString: config };
27
+ }
28
+ return {
29
+ ...config,
30
+ connectionString: config?.connectionString ?? process.env.DATABASE_URL,
31
+ };
32
+ }
33
+ /**
34
+ * Stable cache key for pools that target the same backend with the same sizing.
35
+ */
36
+ export function computePoolHotReloadKey(config) {
37
+ const normalized = normalizePoolConfig(config);
38
+ const connectionString = normalized.connectionString ?? '';
39
+ const max = normalized.max ?? 10;
40
+ const maxLifetimeSeconds = normalized.maxLifetimeSeconds ?? '';
41
+ const connectionTimeoutMillis = normalized.connectionTimeoutMillis ?? '';
42
+ return `${connectionString}\0${max}\0${maxLifetimeSeconds}\0${connectionTimeoutMillis}`;
43
+ }
44
+ function isConnectionEnded(connection) {
45
+ return connection.ended === true || connection.shuttingDown;
46
+ }
47
+ /**
48
+ * Close a superseded pool/client during hot reload and track the replacement.
49
+ * @internal
50
+ */
51
+ export function supersedeHotReloadConnection(connection, hotReloadKey) {
52
+ const cache = getSharedPoolCache();
53
+ const existing = cache.get(hotReloadKey);
54
+ if (existing && existing !== connection && !isConnectionEnded(existing)) {
55
+ void existing.close().catch(() => { });
56
+ }
57
+ cache.set(hotReloadKey, connection);
58
+ }
59
+ /**
60
+ * Remove a closed connection from the shared hot-reload cache.
61
+ * @internal
62
+ */
63
+ export function removeHotReloadCachedConnection(connection) {
64
+ const cache = getSharedPoolCache();
65
+ for (const [key, cached] of cache.entries()) {
66
+ if (cached === connection) {
67
+ cache.delete(key);
68
+ }
69
+ }
70
+ }
71
+ /** Clear all shared hot-reload pool references. */
72
+ export function clearSharedHotReloadCache() {
73
+ getSharedPoolCache().clear();
74
+ }
75
+ /** @internal Clear shared pool cache between tests. */
76
+ export function __clearHotReloadCacheForTests() {
77
+ clearSharedHotReloadCache();
78
+ }
79
+ /**
80
+ * Returns a shared pool cached from a prior hot reload, if still open.
81
+ * @internal
82
+ */
83
+ export function getSharedHotReloadPool(hotReloadKey) {
84
+ const cached = getSharedPoolCache().get(hotReloadKey);
85
+ if (cached && !isConnectionEnded(cached)) {
86
+ return cached;
87
+ }
88
+ return undefined;
89
+ }
90
+ //# sourceMappingURL=hot-reload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hot-reload.js","sourceRoot":"","sources":["../src/hot-reload.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -42,7 +42,7 @@ export { Transaction, Savepoint, ReservedConnection } from './transaction.ts';
42
42
  export { patchBunSQL, isPatched, SQL } from './patch.ts';
43
43
  export { injectSslMode } from './tls.ts';
44
44
  export { isMutationStatement } from './mutation.ts';
45
- export type { PostgresConfig, ReconnectConfig, ConnectionStats, TLSConfig, TransactionOptions, ReserveOptions, PoolConfig, PoolStats, PoolSSLConfig, } from './types.ts';
45
+ export type { PostgresConfig, ReconnectConfig, ConnectionStats, TLSConfig, TransactionOptions, ReserveOptions, PoolConfig, PoolStats, PoolSSLConfig, CreatePoolOptions, } from './types.ts';
46
46
  export { PostgresError, ConnectionClosedError, ReconnectFailedError, QueryTimeoutError, TransactionError, UnsupportedOperationError, isRetryableError, } from './errors.ts';
47
47
  export { computeBackoff, sleep, mergeReconnectConfig, DEFAULT_RECONNECT_CONFIG, } from './reconnect.ts';
48
48
  export { shutdownAll, getClientCount, getClients, hasActiveClients, type Registrable, } from './registry.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAGH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,EACN,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,KAAK,sBAAsB,GAC3B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG9E,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpD,YAAY,EACX,cAAc,EACd,eAAe,EACf,eAAe,EACf,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,SAAS,EACT,aAAa,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EACN,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,gBAAgB,GAChB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACN,cAAc,EACd,KAAK,EACL,oBAAoB,EACpB,wBAAwB,GACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACN,WAAW,EACX,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,KAAK,WAAW,GAChB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAGH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,EACN,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,KAAK,sBAAsB,GAC3B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG9E,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpD,YAAY,EACX,cAAc,EACd,eAAe,EACf,eAAe,EACf,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,SAAS,EACT,aAAa,EACb,iBAAiB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACN,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,gBAAgB,GAChB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACN,cAAc,EACd,KAAK,EACL,oBAAoB,EACpB,wBAAwB,GACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACN,WAAW,EACX,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,KAAK,WAAW,GAChB,MAAM,eAAe,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,wBAAwB;AACxB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElD,kCAAkC;AAClC,OAAO,EACN,cAAc,EACd,oBAAoB,EACpB,cAAc,GAEd,MAAM,aAAa,CAAC;AAErB,2CAA2C;AAC3C,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE3D,8CAA8C;AAC9C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,gDAAgD;AAChD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEzD,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,6BAA6B;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAepD,SAAS;AACT,OAAO,EACN,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,gBAAgB,GAChB,MAAM,aAAa,CAAC;AAErB,yBAAyB;AACzB,OAAO,EACN,cAAc,EACd,KAAK,EACL,oBAAoB,EACpB,wBAAwB,GACxB,MAAM,gBAAgB,CAAC;AAExB,2CAA2C;AAC3C,OAAO,EACN,WAAW,EACX,cAAc,EACd,UAAU,EACV,gBAAgB,GAEhB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,wBAAwB;AACxB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElD,kCAAkC;AAClC,OAAO,EACN,cAAc,EACd,oBAAoB,EACpB,cAAc,GAEd,MAAM,aAAa,CAAC;AAErB,2CAA2C;AAC3C,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE3D,8CAA8C;AAC9C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,gDAAgD;AAChD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEzD,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,6BAA6B;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAgBpD,SAAS;AACT,OAAO,EACN,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,gBAAgB,GAChB,MAAM,aAAa,CAAC;AAErB,yBAAyB;AACzB,OAAO,EACN,cAAc,EACd,KAAK,EACL,oBAAoB,EACpB,wBAAwB,GACxB,MAAM,gBAAgB,CAAC;AAExB,2CAA2C;AAC3C,OAAO,EACN,WAAW,EACX,cAAc,EACd,UAAU,EACV,gBAAgB,GAEhB,MAAM,eAAe,CAAC"}
package/dist/pool.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter } from 'node:events';
2
2
  import pg from 'pg';
3
- import type { PoolConfig, PoolStats } from './types.ts';
3
+ import type { PoolConfig, PoolStats, CreatePoolOptions } from './types.ts';
4
4
  import { type Registrable } from './registry.ts';
5
5
  /**
6
6
  * A resilient PostgreSQL connection pool with automatic reconnection.
@@ -214,12 +214,13 @@ export declare class PostgresPool extends EventEmitter implements Registrable {
214
214
  }
215
215
  /**
216
216
  * Creates a new PostgresPool.
217
- * This is an alias for `new PostgresPool(config)` for convenience.
218
217
  *
219
218
  * @param config - Connection configuration
220
- * @returns A new PostgresPool instance
219
+ * @param options - Pool creation options. Set `shared: true` during Bun hot reload
220
+ * development to reuse one pool across module re-evaluations.
221
+ * @returns A PostgresPool instance
221
222
  */
222
- export declare function createPool(config?: string | PoolConfig): PostgresPool;
223
+ export declare function createPool(config?: string | PoolConfig, options?: CreatePoolOptions): PostgresPool;
223
224
  /**
224
225
  * Alias for PostgresPool for convenient imports.
225
226
  */
@@ -1 +1 @@
1
- {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"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"}
package/dist/pool.js CHANGED
@@ -3,6 +3,7 @@ import pg from 'pg';
3
3
  import { ConnectionClosedError, PostgresError, QueryTimeoutError, ReconnectFailedError, isRetryableError, } from "./errors.js";
4
4
  import { computeBackoff, sleep, mergeReconnectConfig } from "./reconnect.js";
5
5
  import { registerClient, unregisterClient } from "./registry.js";
6
+ import { computePoolHotReloadKey, getSharedHotReloadPool, isHotReloadEnabled, } from "./hot-reload.js";
6
7
  /**
7
8
  * A resilient PostgreSQL connection pool with automatic reconnection.
8
9
  *
@@ -67,7 +68,7 @@ export class PostgresPool extends EventEmitter {
67
68
  // Register shutdown signal handlers to prevent reconnection during app shutdown
68
69
  this._registerShutdownHandlers();
69
70
  // Register this pool in the global registry for coordinated shutdown
70
- registerClient(this);
71
+ registerClient(this, { hotReloadKey: computePoolHotReloadKey(this._config) });
71
72
  // If preconnect is enabled, establish connection immediately
72
73
  if (this._config.preconnect) {
73
74
  const p = this._warmConnection();
@@ -596,12 +597,20 @@ export class PostgresPool extends EventEmitter {
596
597
  }
597
598
  /**
598
599
  * Creates a new PostgresPool.
599
- * This is an alias for `new PostgresPool(config)` for convenience.
600
600
  *
601
601
  * @param config - Connection configuration
602
- * @returns A new PostgresPool instance
602
+ * @param options - Pool creation options. Set `shared: true` during Bun hot reload
603
+ * development to reuse one pool across module re-evaluations.
604
+ * @returns A PostgresPool instance
603
605
  */
604
- export function createPool(config) {
606
+ export function createPool(config, options) {
607
+ if (options?.shared && isHotReloadEnabled()) {
608
+ const key = computePoolHotReloadKey(config);
609
+ const cached = getSharedHotReloadPool(key);
610
+ if (cached) {
611
+ return cached;
612
+ }
613
+ }
605
614
  return new PostgresPool(config);
606
615
  }
607
616
  /**
package/dist/pool.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pool.js","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pool.js","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,10 @@
9
9
  *
10
10
  * Automatically registers process shutdown hooks (beforeExit, SIGTERM, SIGINT)
11
11
  * so all postgres clients/pools are closed during graceful shutdown.
12
+ *
13
+ * During Bun hot reload (`import.meta.hot`), registering a pool with the same
14
+ * hot-reload key closes the superseded pool so module re-evaluation does not
15
+ * leak connections.
12
16
  */
13
17
  /**
14
18
  * Common interface for registrable PostgreSQL connections.
@@ -28,6 +32,13 @@ export interface Registrable {
28
32
  */
29
33
  close(): Promise<void>;
30
34
  }
35
+ export interface RegisterClientOptions {
36
+ /**
37
+ * Stable key for Bun hot reload deduplication. When a new connection
38
+ * registers with the same key, the previous one is closed.
39
+ */
40
+ hotReloadKey?: string;
41
+ }
31
42
  /**
32
43
  * Registers a client or pool in the global registry.
33
44
  * Called automatically when a client or pool is created.
@@ -35,7 +46,7 @@ export interface Registrable {
35
46
  * @param connection - The client or pool to register
36
47
  * @internal
37
48
  */
38
- export declare function registerClient(connection: Registrable): void;
49
+ export declare function registerClient(connection: Registrable, options?: RegisterClientOptions): void;
39
50
  /**
40
51
  * Unregisters a client or pool from the global registry.
41
52
  * Called automatically when a client or pool is closed.
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAE/B;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAuBD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI,CAE5D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI,CAE9D;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,WAAW,CAAC,WAAW,CAAC,CAErD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCnE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAQ1C"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAE/B;;OAEG;IACH,QAAQ,IAAI,IAAI,CAAC;IAEjB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACrC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAuBD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAK7F;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI,CAK9D;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,WAAW,CAAC,WAAW,CAAC,CAErD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CnE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAQ1C"}
package/dist/registry.js CHANGED
@@ -9,7 +9,12 @@
9
9
  *
10
10
  * Automatically registers process shutdown hooks (beforeExit, SIGTERM, SIGINT)
11
11
  * so all postgres clients/pools are closed during graceful shutdown.
12
+ *
13
+ * During Bun hot reload (`import.meta.hot`), registering a pool with the same
14
+ * hot-reload key closes the superseded pool so module re-evaluation does not
15
+ * leak connections.
12
16
  */
17
+ import { isHotReloadEnabled, removeHotReloadCachedConnection, supersedeHotReloadConnection, clearSharedHotReloadCache, } from "./hot-reload.js";
13
18
  /**
14
19
  * Symbol used to store the registry in globalThis to avoid conflicts.
15
20
  */
@@ -35,7 +40,10 @@ function getRegistry() {
35
40
  * @param connection - The client or pool to register
36
41
  * @internal
37
42
  */
38
- export function registerClient(connection) {
43
+ export function registerClient(connection, options) {
44
+ if (options?.hotReloadKey && isHotReloadEnabled()) {
45
+ supersedeHotReloadConnection(connection, options.hotReloadKey);
46
+ }
39
47
  getRegistry().add(connection);
40
48
  }
41
49
  /**
@@ -47,6 +55,9 @@ export function registerClient(connection) {
47
55
  */
48
56
  export function unregisterClient(connection) {
49
57
  getRegistry().delete(connection);
58
+ if (isHotReloadEnabled()) {
59
+ removeHotReloadCachedConnection(connection);
60
+ }
50
61
  }
51
62
  /**
52
63
  * Returns the number of registered clients and pools.
@@ -126,6 +137,7 @@ export async function shutdownAll(timeoutMs) {
126
137
  }
127
138
  // Clear the registry
128
139
  registry.clear();
140
+ clearSharedHotReloadCache();
129
141
  }
130
142
  /**
131
143
  * Checks if there are any active (non-shutdown) clients or pools.
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -348,6 +348,18 @@ export interface PoolConfig extends pg.PoolConfig {
348
348
  */
349
349
  onreconnectfailed?: (error: Error) => void;
350
350
  }
351
+ /**
352
+ * Options for {@link createPool}.
353
+ */
354
+ export interface CreatePoolOptions {
355
+ /**
356
+ * Reuse one pool per connection profile across Bun hot reloads.
357
+ * Avoids reconnect churn during local development.
358
+ *
359
+ * @default false
360
+ */
361
+ shared?: boolean;
362
+ }
351
363
  /**
352
364
  * Statistics about the pool state and reconnection history.
353
365
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,MAAM,MAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAE7B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAE3C;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC;IAE7B;;OAEG;IACH,kBAAkB,EAAE,IAAI,GAAG,IAAI,CAAC;IAEhC;;OAEG;IACH,sBAAsB,EAAE,IAAI,GAAG,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAErD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAE1B;;;;;;;;;;;;;;;;;OAiBG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;IAEvD;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAE5B;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;IAE1C;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IAElC;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAE3B;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC;;OAEG;IACH,cAAc,CAAC,EAAE,kBAAkB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,cAAc,CAAC;IAE5F;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAE3C;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAW,SAAQ,EAAE,CAAC,UAAU;IAChD;;;;;OAKG;IACH,GAAG,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC;IAE3C;;OAEG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAE5B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IAElC;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAE3B;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,eAAe,EAAE,IAAI,GAAG,IAAI,CAAC;IAE7B;;OAEG;IACH,kBAAkB,EAAE,IAAI,GAAG,IAAI,CAAC;IAEhC;;OAEG;IACH,sBAAsB,EAAE,IAAI,GAAG,IAAI,CAAC;CACpC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@agentuity/postgres",
3
3
  "deprecated": "Use pg or drizzle-orm/node-postgres directly against your DATABASE_URL.",
4
- "version": "3.1.1",
4
+ "version": "3.1.2",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Agentuity employees and contributors",
7
7
  "type": "module",
@@ -32,11 +32,11 @@
32
32
  "prepublishOnly": "bun run clean && bun run build"
33
33
  },
34
34
  "dependencies": {
35
- "@agentuity/core": "3.1.1",
35
+ "@agentuity/core": "3.1.2",
36
36
  "pg": "^8.13.1"
37
37
  },
38
38
  "devDependencies": {
39
- "@agentuity/test-utils": "3.1.1",
39
+ "@agentuity/test-utils": "3.1.2",
40
40
  "@types/bun": "latest",
41
41
  "@types/pg": "^8.11.14",
42
42
  "bun-types": "latest",
@@ -0,0 +1,112 @@
1
+ import type { PoolConfig } from './types.ts';
2
+
3
+ const SHARED_POOL_CACHE_KEY = Symbol.for('@agentuity/postgres:shared-pools');
4
+
5
+ let hotReloadEnabledOverride: boolean | undefined;
6
+
7
+ interface HotReloadConnection {
8
+ readonly shuttingDown: boolean;
9
+ readonly ended?: boolean;
10
+ close(): Promise<void>;
11
+ }
12
+
13
+ /**
14
+ * Whether Bun hot module replacement is active.
15
+ * Undefined in production; Bun dead-code-eliminates callers when false.
16
+ */
17
+ export function isHotReloadEnabled(): boolean {
18
+ if (hotReloadEnabledOverride !== undefined) {
19
+ return hotReloadEnabledOverride;
20
+ }
21
+ return typeof import.meta !== 'undefined' && import.meta.hot !== undefined;
22
+ }
23
+
24
+ /** @internal Test-only override for hot reload detection. */
25
+ export function __setHotReloadEnabledForTests(value: boolean | undefined): void {
26
+ hotReloadEnabledOverride = value;
27
+ }
28
+
29
+ function getSharedPoolCache(): Map<string, HotReloadConnection> {
30
+ const global = globalThis as Record<symbol, Map<string, HotReloadConnection>>;
31
+ if (!global[SHARED_POOL_CACHE_KEY]) {
32
+ global[SHARED_POOL_CACHE_KEY] = new Map();
33
+ }
34
+ return global[SHARED_POOL_CACHE_KEY];
35
+ }
36
+
37
+ function normalizePoolConfig(config?: string | PoolConfig): PoolConfig {
38
+ if (typeof config === 'string') {
39
+ return { connectionString: config };
40
+ }
41
+ return {
42
+ ...config,
43
+ connectionString: config?.connectionString ?? process.env.DATABASE_URL,
44
+ };
45
+ }
46
+
47
+ /**
48
+ * Stable cache key for pools that target the same backend with the same sizing.
49
+ */
50
+ export function computePoolHotReloadKey(config?: string | PoolConfig): string {
51
+ const normalized = normalizePoolConfig(config);
52
+ const connectionString = normalized.connectionString ?? '';
53
+ const max = normalized.max ?? 10;
54
+ const maxLifetimeSeconds = normalized.maxLifetimeSeconds ?? '';
55
+ const connectionTimeoutMillis = normalized.connectionTimeoutMillis ?? '';
56
+ return `${connectionString}\0${max}\0${maxLifetimeSeconds}\0${connectionTimeoutMillis}`;
57
+ }
58
+
59
+ function isConnectionEnded(connection: HotReloadConnection): boolean {
60
+ return connection.ended === true || connection.shuttingDown;
61
+ }
62
+
63
+ /**
64
+ * Close a superseded pool/client during hot reload and track the replacement.
65
+ * @internal
66
+ */
67
+ export function supersedeHotReloadConnection(
68
+ connection: HotReloadConnection,
69
+ hotReloadKey: string
70
+ ): void {
71
+ const cache = getSharedPoolCache();
72
+ const existing = cache.get(hotReloadKey);
73
+ if (existing && existing !== connection && !isConnectionEnded(existing)) {
74
+ void existing.close().catch(() => {});
75
+ }
76
+ cache.set(hotReloadKey, connection);
77
+ }
78
+
79
+ /**
80
+ * Remove a closed connection from the shared hot-reload cache.
81
+ * @internal
82
+ */
83
+ export function removeHotReloadCachedConnection(connection: HotReloadConnection): void {
84
+ const cache = getSharedPoolCache();
85
+ for (const [key, cached] of cache.entries()) {
86
+ if (cached === connection) {
87
+ cache.delete(key);
88
+ }
89
+ }
90
+ }
91
+
92
+ /** Clear all shared hot-reload pool references. */
93
+ export function clearSharedHotReloadCache(): void {
94
+ getSharedPoolCache().clear();
95
+ }
96
+
97
+ /** @internal Clear shared pool cache between tests. */
98
+ export function __clearHotReloadCacheForTests(): void {
99
+ clearSharedHotReloadCache();
100
+ }
101
+
102
+ /**
103
+ * Returns a shared pool cached from a prior hot reload, if still open.
104
+ * @internal
105
+ */
106
+ export function getSharedHotReloadPool(hotReloadKey: string): HotReloadConnection | undefined {
107
+ const cached = getSharedPoolCache().get(hotReloadKey);
108
+ if (cached && !isConnectionEnded(cached)) {
109
+ return cached;
110
+ }
111
+ return undefined;
112
+ }
package/src/index.ts CHANGED
@@ -73,6 +73,7 @@ export type {
73
73
  PoolConfig,
74
74
  PoolStats,
75
75
  PoolSSLConfig,
76
+ CreatePoolOptions,
76
77
  } from './types.ts';
77
78
 
78
79
  // Errors
package/src/pool.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter } from 'node:events';
2
2
  import pg from 'pg';
3
- import type { PoolConfig, PoolStats } from './types.ts';
3
+ import type { PoolConfig, PoolStats, CreatePoolOptions } from './types.ts';
4
4
  import {
5
5
  ConnectionClosedError,
6
6
  PostgresError,
@@ -10,6 +10,11 @@ import {
10
10
  } from './errors.ts';
11
11
  import { computeBackoff, sleep, mergeReconnectConfig } from './reconnect.ts';
12
12
  import { registerClient, unregisterClient, type Registrable } from './registry.ts';
13
+ import {
14
+ computePoolHotReloadKey,
15
+ getSharedHotReloadPool,
16
+ isHotReloadEnabled,
17
+ } from './hot-reload.ts';
13
18
 
14
19
  /**
15
20
  * A resilient PostgreSQL connection pool with automatic reconnection.
@@ -82,7 +87,7 @@ export class PostgresPool extends EventEmitter implements Registrable {
82
87
  this._registerShutdownHandlers();
83
88
 
84
89
  // Register this pool in the global registry for coordinated shutdown
85
- registerClient(this);
90
+ registerClient(this, { hotReloadKey: computePoolHotReloadKey(this._config) });
86
91
 
87
92
  // If preconnect is enabled, establish connection immediately
88
93
  if (this._config.preconnect) {
@@ -769,12 +774,24 @@ export class PostgresPool extends EventEmitter implements Registrable {
769
774
 
770
775
  /**
771
776
  * Creates a new PostgresPool.
772
- * This is an alias for `new PostgresPool(config)` for convenience.
773
777
  *
774
778
  * @param config - Connection configuration
775
- * @returns A new PostgresPool instance
779
+ * @param options - Pool creation options. Set `shared: true` during Bun hot reload
780
+ * development to reuse one pool across module re-evaluations.
781
+ * @returns A PostgresPool instance
776
782
  */
777
- export function createPool(config?: string | PoolConfig): PostgresPool {
783
+ export function createPool(
784
+ config?: string | PoolConfig,
785
+ options?: CreatePoolOptions
786
+ ): PostgresPool {
787
+ if (options?.shared && isHotReloadEnabled()) {
788
+ const key = computePoolHotReloadKey(config);
789
+ const cached = getSharedHotReloadPool(key);
790
+ if (cached) {
791
+ return cached as PostgresPool;
792
+ }
793
+ }
794
+
778
795
  return new PostgresPool(config);
779
796
  }
780
797
 
package/src/registry.ts CHANGED
@@ -9,8 +9,19 @@
9
9
  *
10
10
  * Automatically registers process shutdown hooks (beforeExit, SIGTERM, SIGINT)
11
11
  * so all postgres clients/pools are closed during graceful shutdown.
12
+ *
13
+ * During Bun hot reload (`import.meta.hot`), registering a pool with the same
14
+ * hot-reload key closes the superseded pool so module re-evaluation does not
15
+ * leak connections.
12
16
  */
13
17
 
18
+ import {
19
+ isHotReloadEnabled,
20
+ removeHotReloadCachedConnection,
21
+ supersedeHotReloadConnection,
22
+ clearSharedHotReloadCache,
23
+ } from './hot-reload.ts';
24
+
14
25
  /**
15
26
  * Common interface for registrable PostgreSQL connections.
16
27
  * Both PostgresClient and PostgresPool implement this interface.
@@ -32,6 +43,14 @@ export interface Registrable {
32
43
  close(): Promise<void>;
33
44
  }
34
45
 
46
+ export interface RegisterClientOptions {
47
+ /**
48
+ * Stable key for Bun hot reload deduplication. When a new connection
49
+ * registers with the same key, the previous one is closed.
50
+ */
51
+ hotReloadKey?: string;
52
+ }
53
+
35
54
  /**
36
55
  * Symbol used to store the registry in globalThis to avoid conflicts.
37
56
  */
@@ -60,7 +79,10 @@ function getRegistry(): Set<Registrable> {
60
79
  * @param connection - The client or pool to register
61
80
  * @internal
62
81
  */
63
- export function registerClient(connection: Registrable): void {
82
+ export function registerClient(connection: Registrable, options?: RegisterClientOptions): void {
83
+ if (options?.hotReloadKey && isHotReloadEnabled()) {
84
+ supersedeHotReloadConnection(connection, options.hotReloadKey);
85
+ }
64
86
  getRegistry().add(connection);
65
87
  }
66
88
 
@@ -73,6 +95,9 @@ export function registerClient(connection: Registrable): void {
73
95
  */
74
96
  export function unregisterClient(connection: Registrable): void {
75
97
  getRegistry().delete(connection);
98
+ if (isHotReloadEnabled()) {
99
+ removeHotReloadCachedConnection(connection);
100
+ }
76
101
  }
77
102
 
78
103
  /**
@@ -157,6 +182,7 @@ export async function shutdownAll(timeoutMs?: number): Promise<void> {
157
182
 
158
183
  // Clear the registry
159
184
  registry.clear();
185
+ clearSharedHotReloadCache();
160
186
  }
161
187
 
162
188
  /**
package/src/types.ts CHANGED
@@ -406,6 +406,19 @@ export interface PoolConfig extends pg.PoolConfig {
406
406
  onreconnectfailed?: (error: Error) => void;
407
407
  }
408
408
 
409
+ /**
410
+ * Options for {@link createPool}.
411
+ */
412
+ export interface CreatePoolOptions {
413
+ /**
414
+ * Reuse one pool per connection profile across Bun hot reloads.
415
+ * Avoids reconnect churn during local development.
416
+ *
417
+ * @default false
418
+ */
419
+ shared?: boolean;
420
+ }
421
+
409
422
  /**
410
423
  * Statistics about the pool state and reconnection history.
411
424
  */