@event-driven-io/dumbo 0.13.0-beta.35 → 0.13.0-beta.36
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/cloudflare.cjs +379 -434
- package/dist/cloudflare.cjs.map +1 -1
- package/dist/cloudflare.d.cts +36 -29
- package/dist/cloudflare.d.ts +36 -29
- package/dist/cloudflare.js +343 -434
- package/dist/cloudflare.js.map +1 -1
- package/dist/core-BeyC5tHn.js +519 -0
- package/dist/core-BeyC5tHn.js.map +1 -0
- package/dist/core-Bf2ujUFy.js +379 -0
- package/dist/core-Bf2ujUFy.js.map +1 -0
- package/dist/core-BgYtAxCm.cjs +3237 -0
- package/dist/core-BgYtAxCm.cjs.map +1 -0
- package/dist/core-DDo4m0Z_.js +2262 -0
- package/dist/core-DDo4m0Z_.js.map +1 -0
- package/dist/core-DmbB4qMn.cjs +656 -0
- package/dist/core-DmbB4qMn.cjs.map +1 -0
- package/dist/core-Go_IA78L.cjs +450 -0
- package/dist/core-Go_IA78L.cjs.map +1 -0
- package/dist/{connectionString-Dch_MIRU.d.cts → index-BDSQvDH2.d.cts} +1010 -922
- package/dist/index-BdWFmDhJ.d.cts +68 -0
- package/dist/index-D1jryNqo.d.ts +198 -0
- package/dist/index-DaP2fTEX.d.ts +67 -0
- package/dist/index-DqVvUav9.d.cts +198 -0
- package/dist/index-S_wp0Eaf.d.cts +67 -0
- package/dist/index-cxtbLiju.d.ts +68 -0
- package/dist/{connectionString-Dch_MIRU.d.ts → index-zkszkJqP.d.ts} +1010 -922
- package/dist/index.cjs +212 -359
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -132
- package/dist/index.d.ts +3 -132
- package/dist/index.js +52 -361
- package/dist/index.js.map +1 -1
- package/dist/pg.cjs +366 -431
- package/dist/pg.cjs.map +1 -1
- package/dist/pg.d.cts +83 -72
- package/dist/pg.d.ts +83 -72
- package/dist/pg.js +320 -431
- package/dist/pg.js.map +1 -1
- package/dist/postgreSQLMetadata-LqX-Z_wo.cjs +118 -0
- package/dist/postgreSQLMetadata-LqX-Z_wo.cjs.map +1 -0
- package/dist/postgreSQLMetadata-zMq8yJo_.js +65 -0
- package/dist/postgreSQLMetadata-zMq8yJo_.js.map +1 -0
- package/dist/postgresql.cjs +25 -50
- package/dist/postgresql.d.cts +3 -61
- package/dist/postgresql.d.ts +3 -61
- package/dist/postgresql.js +4 -50
- package/dist/sqlite.cjs +30 -60
- package/dist/sqlite.d.cts +3 -190
- package/dist/sqlite.d.ts +3 -190
- package/dist/sqlite.js +4 -60
- package/dist/sqlite3.cjs +312 -380
- package/dist/sqlite3.cjs.map +1 -1
- package/dist/sqlite3.d.cts +79 -77
- package/dist/sqlite3.d.ts +79 -77
- package/dist/sqlite3.js +276 -378
- package/dist/sqlite3.js.map +1 -1
- package/dist/sqliteMetadata-BoQ7Sc9I.js +29 -0
- package/dist/sqliteMetadata-BoQ7Sc9I.js.map +1 -0
- package/dist/sqliteMetadata-D_2pKeCC.cjs +46 -0
- package/dist/sqliteMetadata-D_2pKeCC.cjs.map +1 -0
- package/package.json +12 -12
- package/dist/chunk-33P5766L.js +0 -83
- package/dist/chunk-33P5766L.js.map +0 -1
- package/dist/chunk-4MMMEDQ7.cjs +0 -2944
- package/dist/chunk-4MMMEDQ7.cjs.map +0 -1
- package/dist/chunk-6HAHSSPW.js +0 -701
- package/dist/chunk-6HAHSSPW.js.map +0 -1
- package/dist/chunk-GNH5XC6D.cjs +0 -481
- package/dist/chunk-GNH5XC6D.cjs.map +0 -1
- package/dist/chunk-H2JBS7HM.js +0 -2944
- package/dist/chunk-H2JBS7HM.js.map +0 -1
- package/dist/chunk-JIZGCEPE.cjs +0 -701
- package/dist/chunk-JIZGCEPE.cjs.map +0 -1
- package/dist/chunk-NJI6PJFZ.cjs +0 -83
- package/dist/chunk-NJI6PJFZ.cjs.map +0 -1
- package/dist/chunk-RQ3KKMTP.cjs +0 -34
- package/dist/chunk-RQ3KKMTP.cjs.map +0 -1
- package/dist/chunk-UK7MXVS2.js +0 -34
- package/dist/chunk-UK7MXVS2.js.map +0 -1
- package/dist/chunk-Y5TD53QE.js +0 -481
- package/dist/chunk-Y5TD53QE.js.map +0 -1
- package/dist/columnProcessors-Be2uMYjS.d.cts +0 -8
- package/dist/columnProcessors-D0ivj_SU.d.ts +0 -8
- package/dist/postgresql.cjs.map +0 -1
- package/dist/postgresql.js.map +0 -1
- package/dist/sqlite.cjs.map +0 -1
- package/dist/sqlite.js.map +0 -1
package/dist/pg.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/Pongo/Pongo/src/packages/dumbo/dist/pg.cjs","../src/storage/postgresql/pg/connections/connection.ts","../src/storage/postgresql/pg/execute/execute.ts","../src/storage/postgresql/pg/connections/transaction.ts","../src/storage/postgresql/pg/connections/pool.ts","../src/storage/postgresql/pg/serialization/index.ts","../src/storage/postgresql/pg/index.ts"],"names":[],"mappings":"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","file":"/home/runner/work/Pongo/Pongo/src/packages/dumbo/dist/pg.cjs","sourcesContent":[null,"import pg from 'pg';\nimport type { JSONSerializer } from '../../../../core';\nimport {\n createConnection,\n type Connection,\n type DatabaseTransaction,\n} from '../../../../core';\nimport type { PostgreSQLDriverType } from '../../core';\nimport { pgSQLExecutor } from '../execute';\nimport { pgTransaction, type PgTransactionOptions } from './transaction';\n\nexport type PgDriverType = PostgreSQLDriverType<'pg'>;\nexport const PgDriverType: PgDriverType = 'PostgreSQL:pg';\n\nexport type PgPoolClient = pg.PoolClient;\nexport type PgClient = pg.Client;\n\nexport type PgClientOrPoolClient = PgPoolClient | PgClient;\n\nexport type PgPoolOrClient = pg.Pool | PgPoolClient | PgClient;\n\nexport type PgClientConnection = Connection<\n PgClientConnection,\n PgDriverType,\n PgClient,\n DatabaseTransaction<PgClientConnection, PgTransactionOptions>\n>;\n\nexport type PgPoolClientConnection = Connection<\n PgPoolClientConnection,\n PgDriverType,\n PgPoolClient,\n DatabaseTransaction<PgPoolClientConnection, PgTransactionOptions>\n>;\n\nexport type PgConnection = PgPoolClientConnection | PgClientConnection;\n\nexport type PgPoolClientOptions = {\n type: 'PoolClient';\n connect: () => Promise<PgPoolClient>;\n close: (client: PgPoolClient) => Promise<void>;\n};\n\nexport type PgClientOptions = {\n type: 'Client';\n connect: () => Promise<PgClient>;\n close: (client: PgClient) => Promise<void>;\n};\n\nexport type PgClientConnectionOptions = PgClientOptions & {\n serializer: JSONSerializer;\n};\n\nexport type PgPoolClientConnectionOptions = PgPoolClientOptions & {\n serializer: JSONSerializer;\n};\n\nexport const pgClientConnection = (\n options: PgClientConnectionOptions,\n): PgClientConnection => {\n const { connect, close } = options;\n\n return createConnection({\n driverType: PgDriverType,\n connect,\n close,\n initTransaction: (connection) =>\n pgTransaction(connection, options.serializer),\n executor: pgSQLExecutor,\n serializer: options.serializer,\n });\n};\n\nexport const pgPoolClientConnection = (\n options: PgPoolClientConnectionOptions,\n): PgPoolClientConnection => {\n const { connect, close } = options;\n\n return createConnection({\n driverType: PgDriverType,\n connect,\n close,\n initTransaction: (connection) =>\n pgTransaction(connection, options.serializer),\n executor: pgSQLExecutor,\n serializer: options.serializer,\n });\n};\n\nexport type PgConnectionOptions =\n | PgPoolClientConnectionOptions\n | PgClientConnectionOptions;\n\nexport function pgConnection(\n options: PgPoolClientConnectionOptions,\n): PgPoolClientConnection;\nexport function pgConnection(\n options: PgClientConnectionOptions,\n): PgClientConnection;\nexport function pgConnection(\n options: PgPoolClientConnectionOptions | PgClientConnectionOptions,\n): PgPoolClientConnection | PgClientConnection {\n return options.type === 'Client'\n ? pgClientConnection(options)\n : pgPoolClientConnection(options);\n}\n\nexport type ConnectionCheckResult =\n | { successful: true }\n | {\n successful: false;\n code: string | undefined;\n errorType: 'ConnectionRefused' | 'Authentication' | 'Unknown';\n error: unknown;\n };\n\nexport const checkConnection = async (\n connectionString: string,\n): Promise<ConnectionCheckResult> => {\n const client = new pg.Client({\n connectionString,\n });\n\n try {\n await client.connect();\n return { successful: true };\n } catch (error) {\n const code =\n error instanceof Error &&\n 'code' in error &&\n typeof error.code === 'string'\n ? error.code\n : undefined;\n\n return {\n successful: false,\n errorType:\n code === 'ECONNREFUSED'\n ? 'ConnectionRefused'\n : code === '28P01'\n ? 'Authentication'\n : 'Unknown',\n code,\n error,\n };\n } finally {\n // Ensure the client is closed properly if connected\n await client.end();\n }\n};\n","import pg from 'pg';\nimport type { JSONSerializer } from '../../../../core';\nimport {\n BatchCommandNoChangesError,\n mapSQLQueryResult,\n tracer,\n type BatchSQLCommandOptions,\n type DbSQLExecutor,\n type QueryResult,\n type QueryResultRow,\n type SQL,\n type SQLQueryOptions,\n} from '../../../../core';\nimport { pgFormatter } from '../../core';\nimport { mapPostgresError } from '../../core/errors/errorMapper';\nimport { PgDriverType, type PgClientOrPoolClient } from '../connections';\n\nexport const isPgNativePool = (\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n): poolOrClient is pg.Pool => {\n return poolOrClient instanceof pg.Pool;\n};\n\nexport const isPgClient = (\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n): poolOrClient is pg.Client => poolOrClient instanceof pg.Client;\n\nexport const isPgPoolClient = (\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n): poolOrClient is pg.PoolClient =>\n 'release' in poolOrClient && typeof poolOrClient.release === 'function';\n\nexport const pgExecute = async <Result = void>(\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n handle: (client: pg.PoolClient | pg.Client) => Promise<Result>,\n) => {\n const client = isPgNativePool(poolOrClient)\n ? await poolOrClient.connect()\n : poolOrClient;\n\n try {\n return await handle(client);\n } finally {\n // release only if client wasn't injected externally\n if (isPgNativePool(poolOrClient) && isPgPoolClient(client))\n client.release();\n }\n};\n\nexport type PgSQLExecutor = DbSQLExecutor<PgDriverType, PgClientOrPoolClient>;\n\nexport const pgSQLExecutor = ({\n serializer,\n}: {\n serializer: JSONSerializer;\n}): PgSQLExecutor => ({\n driverType: PgDriverType,\n query: async <Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sql: SQL,\n options: SQLQueryOptions | undefined,\n ) => {\n const results = await batchQuery<Result>(\n client,\n [sql],\n serializer,\n options,\n );\n return results[0]!;\n },\n batchQuery: <Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sqls: SQL[],\n options: SQLQueryOptions | undefined,\n ) => batchQuery<Result>(client, sqls, serializer, options),\n command: async <Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sql: SQL,\n options: BatchSQLCommandOptions | undefined,\n ) => {\n const results = await batchCommand<Result>(\n client,\n [sql],\n serializer,\n options,\n );\n return results[0]!;\n },\n batchCommand: <Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sqls: SQL[],\n options: BatchSQLCommandOptions | undefined,\n ) => batchCommand<Result>(client, sqls, serializer, options),\n formatter: pgFormatter,\n});\n\nasync function batchQuery<Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sqls: SQL[],\n serializer: JSONSerializer,\n options?: SQLQueryOptions,\n): Promise<QueryResult<Result>[]> {\n const results: QueryResult<Result>[] = Array<QueryResult<Result>>(\n sqls.length,\n );\n\n if (options?.timeoutMs) {\n await client.query(`SET statement_timeout = ${options.timeoutMs}`);\n }\n\n //TODO: make it smarter at some point\n for (let i = 0; i < sqls.length; i++) {\n const { query, params } = pgFormatter.format(sqls[i]!, { serializer });\n tracer.info('db:sql:query', {\n query,\n params,\n debugSQL: pgFormatter.describe(sqls[i]!, { serializer }),\n });\n try {\n let result =\n params.length > 0\n ? await client.query<Result>(query, params)\n : await client.query<Result>(query);\n\n if (options?.mapping) {\n result = {\n ...result,\n rows: result.rows.map((row) =>\n mapSQLQueryResult(row, options.mapping!),\n ),\n };\n }\n\n results[i] = { rowCount: result.rowCount, rows: result.rows };\n } catch (error) {\n tracer.error('db:sql:batch_query:execute:error', { error });\n throw mapPostgresError(error);\n }\n }\n\n return results;\n}\n\nasync function batchCommand<Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sqls: SQL[],\n serializer: JSONSerializer,\n options?: BatchSQLCommandOptions,\n): Promise<QueryResult<Result>[]> {\n const results: QueryResult<Result>[] = Array<QueryResult<Result>>(\n sqls.length,\n );\n\n if (options?.timeoutMs) {\n await client.query(`SET statement_timeout = ${options.timeoutMs}`);\n }\n\n //TODO: make it smarter at some point\n for (let i = 0; i < sqls.length; i++) {\n const { query, params } = pgFormatter.format(sqls[i]!, { serializer });\n tracer.info('db:sql:command', {\n query,\n params,\n debugSQL: pgFormatter.describe(sqls[i]!, { serializer }),\n });\n try {\n let result =\n params.length > 0\n ? await client.query<Result>(query, params)\n : await client.query<Result>(query);\n\n if (options?.mapping) {\n result = {\n ...result,\n rows: result.rows.map((row) =>\n mapSQLQueryResult(row, options.mapping!),\n ),\n };\n }\n\n results[i] = { rowCount: result.rowCount, rows: result.rows };\n\n if (options?.assertChanges && (results[i]!.rowCount ?? 0) === 0) {\n throw new BatchCommandNoChangesError(i);\n }\n } catch (error) {\n tracer.error('db:sql:batch_command:execute:error', { error });\n throw mapPostgresError(error);\n }\n }\n\n return results;\n}\n","import type { JSONSerializer } from '../../../../core';\nimport {\n sqlExecutor,\n type AnyConnection,\n type DatabaseTransaction,\n type DatabaseTransactionOptions,\n} from '../../../../core';\nimport { pgSQLExecutor } from '../execute';\nimport {\n PgDriverType,\n type PgConnection,\n type PgPoolOrClient,\n} from './connection';\n\nexport type PgTransaction = DatabaseTransaction<\n PgConnection,\n PgTransactionOptions\n>;\n\nexport type PgIsolationLevel =\n | 'READ UNCOMMITTED'\n | 'READ COMMITTED'\n | 'REPEATABLE READ'\n | 'SERIALIZABLE';\n\nexport type PgTransactionOptions = DatabaseTransactionOptions & {\n isolationLevel?: PgIsolationLevel;\n};\n\nexport const pgTransaction =\n <ConnectionType extends AnyConnection = AnyConnection>(\n connection: () => ConnectionType,\n serializer: JSONSerializer,\n ) =>\n <DbClient extends PgPoolOrClient = PgPoolOrClient>(\n getClient: Promise<DbClient>,\n options?: {\n close: (client: DbClient, error?: unknown) => Promise<void>;\n } & PgTransactionOptions,\n ): DatabaseTransaction<ConnectionType> => ({\n connection: connection(),\n driverType: PgDriverType,\n begin: async () => {\n const client = await getClient;\n const parts = ['BEGIN'];\n if (options?.isolationLevel) {\n parts.push(`ISOLATION LEVEL ${options.isolationLevel}`);\n }\n if (options?.readonly) {\n parts.push('READ ONLY');\n }\n await client.query(parts.join(' '));\n },\n commit: async () => {\n const client = await getClient;\n\n try {\n await client.query('COMMIT');\n } finally {\n if (options?.close) await options?.close(client);\n }\n },\n rollback: async (error?: unknown) => {\n const client = await getClient;\n try {\n await client.query('ROLLBACK');\n } finally {\n if (options?.close) await options?.close(client, error);\n }\n },\n execute: sqlExecutor(pgSQLExecutor({ serializer }), {\n connect: () => getClient,\n }),\n _transactionOptions: options ?? {},\n });\n","import pg from 'pg';\nimport {\n createAmbientConnectionPool,\n createConnectionPool,\n JSONSerializer,\n tracer,\n type ConnectionPool,\n type JSONSerializationOptions,\n} from '../../../../core';\nimport { defaultPostgreSqlDatabase, parseDatabaseName } from '../../core';\nimport { setPgTypeParser } from '../serialization';\nimport {\n pgConnection,\n PgDriverType,\n type PgClientConnection,\n type PgPoolClientConnection,\n} from './connection';\n\nexport type PgNativePool = ConnectionPool<PgPoolClientConnection>;\n\nexport type PgAmbientClientPool = ConnectionPool<PgClientConnection>;\n\nexport type PgAmbientConnectionPool = ConnectionPool<\n PgPoolClientConnection | PgClientConnection\n>;\n\nexport type PgPool =\n | PgNativePool\n | PgAmbientClientPool\n | PgAmbientConnectionPool;\n\nexport const pgNativePool = (options: {\n connectionString: string;\n database?: string | undefined;\n serializer: JSONSerializer;\n}): PgNativePool => {\n const { connectionString, database } = options;\n const pool = getPgPool({ connectionString, database });\n\n const getConnection = () =>\n pgConnection({\n type: 'PoolClient',\n connect: async () => {\n const client = await pool.connect();\n\n setPgTypeParser(client, {\n parseBigInts: true,\n serializer: options.serializer,\n });\n\n return client;\n },\n close: (client) => Promise.resolve(client.release()),\n serializer: options.serializer,\n });\n\n const open = () => Promise.resolve(getConnection());\n const close = () => endPgPool({ connectionString, database });\n\n return createConnectionPool({\n driverType: PgDriverType,\n connection: open,\n close,\n getConnection,\n });\n};\n\nexport const pgAmbientNativePool = (options: {\n pool: pg.Pool;\n serializer: JSONSerializer;\n}): PgNativePool => {\n const { pool } = options;\n\n return createConnectionPool({\n driverType: PgDriverType,\n getConnection: () =>\n pgConnection({\n type: 'PoolClient',\n connect: () => pool.connect(),\n close: (client) => Promise.resolve(client.release()),\n serializer: options.serializer,\n }),\n });\n};\n\nexport const pgAmbientConnectionPool = (options: {\n connection: PgPoolClientConnection | PgClientConnection;\n}): PgAmbientConnectionPool => {\n const { connection } = options;\n\n return createAmbientConnectionPool({\n driverType: PgDriverType,\n connection,\n });\n};\n\nexport const pgClientPool = (options: {\n connectionString: string;\n database?: string | undefined;\n serializer: JSONSerializer;\n}): PgAmbientClientPool => {\n const { connectionString, database } = options;\n\n return createConnectionPool({\n driverType: PgDriverType,\n getConnection: () => {\n const connect = async () => {\n const client = new pg.Client({ connectionString, database });\n\n setPgTypeParser(client, {\n parseBigInts: true,\n serializer: options.serializer,\n });\n\n await client.connect();\n return client;\n };\n\n return pgConnection({\n type: 'Client',\n connect,\n close: (client) => client.end(),\n serializer: options.serializer,\n });\n },\n });\n};\n\nexport const pgAmbientClientPool = (options: {\n client: pg.Client;\n serializer: JSONSerializer;\n}): PgAmbientClientPool => {\n const { client } = options;\n\n const getConnection = () => {\n const connect = () => Promise.resolve(client);\n\n return pgConnection({\n type: 'Client',\n connect,\n close: () => Promise.resolve(),\n serializer: options.serializer,\n });\n };\n\n const open = () => Promise.resolve(getConnection());\n const close = () => Promise.resolve();\n\n return createConnectionPool({\n driverType: PgDriverType,\n connection: open,\n close,\n getConnection,\n });\n};\n\nexport type PgPoolPooledOptions =\n | {\n connectionString: string;\n database?: string;\n pooled: true;\n pool: pg.Pool;\n }\n | {\n connectionString: string;\n database?: string;\n pool: pg.Pool;\n }\n | {\n connectionString: string;\n database?: string;\n pooled: true;\n }\n | {\n connectionString: string;\n database?: string;\n };\n\nexport type PgPoolNotPooledOptions =\n | {\n connectionString: string;\n database?: string;\n pooled: false;\n client: pg.Client;\n }\n | {\n connectionString: string;\n database?: string;\n client: pg.Client;\n }\n | {\n connectionString: string;\n database?: string;\n pooled: false;\n }\n | {\n connectionString: string;\n database?: string;\n connection: PgPoolClientConnection | PgClientConnection;\n pooled?: false;\n };\n\nexport type PgPoolOptions = (PgPoolPooledOptions | PgPoolNotPooledOptions) &\n JSONSerializationOptions;\n\nexport function pgPool(options: PgPoolPooledOptions): PgNativePool;\nexport function pgPool(options: PgPoolNotPooledOptions): PgAmbientClientPool;\nexport function pgPool(\n options: PgPoolOptions,\n): PgNativePool | PgAmbientClientPool | PgAmbientConnectionPool {\n const { connectionString, database } = options;\n\n const serializer = options.serialization?.serializer ?? JSONSerializer;\n\n if ('client' in options && options.client)\n return pgAmbientClientPool({ client: options.client, serializer });\n\n if ('connection' in options && options.connection)\n return pgAmbientConnectionPool({\n connection: options.connection,\n });\n\n if ('pooled' in options && options.pooled === false)\n return pgClientPool({ connectionString, database, serializer });\n\n if ('pool' in options && options.pool)\n return pgAmbientNativePool({ pool: options.pool, serializer });\n\n return pgNativePool({\n connectionString,\n database,\n serializer,\n });\n}\n\nconst pools: Map<string, pg.Pool> = new Map();\nconst usageCounter: Map<string, number> = new Map();\n\nexport const getPgPool = (\n connectionStringOrOptions: string | pg.PoolConfig,\n): pg.Pool => {\n const connectionString =\n typeof connectionStringOrOptions === 'string'\n ? connectionStringOrOptions\n : connectionStringOrOptions.connectionString!;\n\n const poolOptions =\n typeof connectionStringOrOptions === 'string'\n ? { connectionString }\n : connectionStringOrOptions;\n\n const database =\n poolOptions.database ??\n (poolOptions.connectionString\n ? (parseDatabaseName(poolOptions.connectionString) ??\n defaultPostgreSqlDatabase)\n : undefined);\n\n const lookupKey = key(connectionString, database);\n\n updatePoolUsageCounter(lookupKey, 1);\n\n return (\n pools.get(lookupKey) ??\n pools.set(lookupKey, new pg.Pool(poolOptions)).get(lookupKey)!\n );\n};\n\nexport const endPgPool = async ({\n connectionString,\n database,\n force,\n}: {\n connectionString: string;\n database?: string | undefined;\n force?: boolean;\n}): Promise<void> => {\n database = database ?? parseDatabaseName(connectionString) ?? undefined;\n const lookupKey = key(connectionString, database);\n\n const pool = pools.get(lookupKey);\n if (pool && (updatePoolUsageCounter(lookupKey, -1) <= 0 || force === true)) {\n await onEndPool(lookupKey, pool);\n }\n};\n\nexport const onEndPool = async (lookupKey: string, pool: pg.Pool) => {\n try {\n await pool.end();\n } catch (error) {\n tracer.error('connection-closing-error', { lookupKey, error });\n }\n pools.delete(lookupKey);\n};\n\nexport const endAllPgPools = () =>\n Promise.all(\n [...pools.entries()].map(([lookupKey, pool]) => onEndPool(lookupKey, pool)),\n );\n\nconst key = (connectionString: string, database: string | undefined) =>\n `${connectionString}|${database ?? defaultPostgreSqlDatabase}`;\n\nconst updatePoolUsageCounter = (lookupKey: string, by: 1 | -1): number => {\n const currentCounter = usageCounter.get(lookupKey) ?? 0;\n const newCounter = currentCounter + by;\n\n usageCounter.set(lookupKey, currentCounter + by);\n\n return newCounter;\n};\n","import type pg from 'pg';\nimport type { JSONSerializer } from '../../../../core/serializer';\n\nexport const setPgTypeParser = (\n client: pg.Client | pg.PoolClient,\n options?: {\n parseBigInts?: boolean;\n serializer: JSONSerializer;\n },\n) => {\n // BigInt\n if (options?.parseBigInts === true)\n client.setTypeParser(20, (val) => BigInt(val));\n\n if (options?.serializer) {\n // JSONB\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n client.setTypeParser(3802, (val) => options.serializer.deserialize(val));\n\n // JSON\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n client.setTypeParser(114, (val) => options.serializer.deserialize(val));\n }\n};\n","import {\n canHandleDriverWithConnectionString,\n type DumboDatabaseDriver,\n dumboDatabaseDriverRegistry,\n} from '../../../core';\nimport {\n DefaultPostgreSQLMigratorOptions,\n pgFormatter,\n PostgreSQLConnectionString,\n postgreSQLMetadata,\n} from '../core';\nimport {\n type PgConnection,\n PgDriverType,\n pgPool,\n type PgPool,\n type PgPoolOptions,\n} from './connections';\n\nconst tryParseConnectionString = (connectionString: string) => {\n try {\n return PostgreSQLConnectionString(connectionString);\n } catch {\n return null;\n }\n};\n\nexport const pgDumboDriver: DumboDatabaseDriver<\n PgConnection,\n PgPoolOptions,\n PgPool\n> = {\n driverType: PgDriverType,\n createPool: (options) => pgPool(options as PgPoolOptions),\n sqlFormatter: pgFormatter,\n defaultMigratorOptions: DefaultPostgreSQLMigratorOptions,\n canHandle: canHandleDriverWithConnectionString(\n PgDriverType,\n tryParseConnectionString,\n ),\n databaseMetadata: postgreSQLMetadata,\n};\n\nexport const usePgDumboDriver = () => {\n dumboDatabaseDriverRegistry.register(PgDriverType, pgDumboDriver);\n};\n\nusePgDumboDriver();\n\nexport type PgDumboOptions = PgPoolOptions;\nexport * from './connections';\nexport * from './execute';\nexport * from './serialization';\n"]}
|
|
1
|
+
{"version":3,"file":"pg.cjs","names":["pgFormatter","mapSQLQueryResult","mapPostgresError","BatchCommandNoChangesError","sqlExecutor","createConnection","createConnectionPool","createAmbientConnectionPool","JSONSerializer","parseDatabaseName","PostgreSQLConnectionString","pgFormatter","DefaultPostgreSQLMigratorOptions","canHandleDriverWithConnectionString","postgreSQLMetadata"],"sources":["../src/storage/postgresql/pg/execute/execute.ts","../src/storage/postgresql/pg/connections/transaction.ts","../src/storage/postgresql/pg/connections/connection.ts","../src/storage/postgresql/pg/serialization/index.ts","../src/storage/postgresql/pg/connections/pool.ts","../src/storage/postgresql/pg/index.ts"],"sourcesContent":["import pg from 'pg';\nimport type { JSONSerializer } from '../../../../core';\nimport {\n BatchCommandNoChangesError,\n mapSQLQueryResult,\n tracer,\n type BatchSQLCommandOptions,\n type DbSQLExecutor,\n type QueryResult,\n type QueryResultRow,\n type SQL,\n type SQLQueryOptions,\n} from '../../../../core';\nimport { pgFormatter } from '../../core';\nimport { mapPostgresError } from '../../core/errors/errorMapper';\nimport { PgDriverType, type PgClientOrPoolClient } from '../connections';\n\nexport const isPgNativePool = (\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n): poolOrClient is pg.Pool => {\n return poolOrClient instanceof pg.Pool;\n};\n\nexport const isPgClient = (\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n): poolOrClient is pg.Client => poolOrClient instanceof pg.Client;\n\nexport const isPgPoolClient = (\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n): poolOrClient is pg.PoolClient =>\n 'release' in poolOrClient && typeof poolOrClient.release === 'function';\n\nexport const pgExecute = async <Result = void>(\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n handle: (client: pg.PoolClient | pg.Client) => Promise<Result>,\n) => {\n const client = isPgNativePool(poolOrClient)\n ? await poolOrClient.connect()\n : poolOrClient;\n\n try {\n return await handle(client);\n } finally {\n // release only if client wasn't injected externally\n if (isPgNativePool(poolOrClient) && isPgPoolClient(client))\n client.release();\n }\n};\n\nexport type PgSQLExecutor = DbSQLExecutor<PgDriverType, PgClientOrPoolClient>;\n\nexport const pgSQLExecutor = ({\n serializer,\n}: {\n serializer: JSONSerializer;\n}): PgSQLExecutor => ({\n driverType: PgDriverType,\n query: async <Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sql: SQL,\n options: SQLQueryOptions | undefined,\n ) => {\n const results = await batchQuery<Result>(\n client,\n [sql],\n serializer,\n options,\n );\n return results[0]!;\n },\n batchQuery: <Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sqls: SQL[],\n options: SQLQueryOptions | undefined,\n ) => batchQuery<Result>(client, sqls, serializer, options),\n command: async <Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sql: SQL,\n options: BatchSQLCommandOptions | undefined,\n ) => {\n const results = await batchCommand<Result>(\n client,\n [sql],\n serializer,\n options,\n );\n return results[0]!;\n },\n batchCommand: <Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sqls: SQL[],\n options: BatchSQLCommandOptions | undefined,\n ) => batchCommand<Result>(client, sqls, serializer, options),\n formatter: pgFormatter,\n});\n\nasync function batchQuery<Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sqls: SQL[],\n serializer: JSONSerializer,\n options?: SQLQueryOptions,\n): Promise<QueryResult<Result>[]> {\n const results: QueryResult<Result>[] = Array<QueryResult<Result>>(\n sqls.length,\n );\n\n if (options?.timeoutMs) {\n await client.query(`SET statement_timeout = ${options.timeoutMs}`);\n }\n\n //TODO: make it smarter at some point\n for (let i = 0; i < sqls.length; i++) {\n const { query, params } = pgFormatter.format(sqls[i]!, { serializer });\n tracer.info('db:sql:query', {\n query,\n params,\n debugSQL: pgFormatter.describe(sqls[i]!, { serializer }),\n });\n try {\n let result =\n params.length > 0\n ? await client.query<Result>(query, params)\n : await client.query<Result>(query);\n\n if (options?.mapping) {\n result = {\n ...result,\n rows: result.rows.map((row) =>\n mapSQLQueryResult(row, options.mapping!),\n ),\n };\n }\n\n results[i] = { rowCount: result.rowCount, rows: result.rows };\n } catch (error) {\n tracer.error('db:sql:batch_query:execute:error', { error });\n throw mapPostgresError(error);\n }\n }\n\n return results;\n}\n\nasync function batchCommand<Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sqls: SQL[],\n serializer: JSONSerializer,\n options?: BatchSQLCommandOptions,\n): Promise<QueryResult<Result>[]> {\n const results: QueryResult<Result>[] = Array<QueryResult<Result>>(\n sqls.length,\n );\n\n if (options?.timeoutMs) {\n await client.query(`SET statement_timeout = ${options.timeoutMs}`);\n }\n\n //TODO: make it smarter at some point\n for (let i = 0; i < sqls.length; i++) {\n const { query, params } = pgFormatter.format(sqls[i]!, { serializer });\n tracer.info('db:sql:command', {\n query,\n params,\n debugSQL: pgFormatter.describe(sqls[i]!, { serializer }),\n });\n try {\n let result =\n params.length > 0\n ? await client.query<Result>(query, params)\n : await client.query<Result>(query);\n\n if (options?.mapping) {\n result = {\n ...result,\n rows: result.rows.map((row) =>\n mapSQLQueryResult(row, options.mapping!),\n ),\n };\n }\n\n results[i] = { rowCount: result.rowCount, rows: result.rows };\n\n if (options?.assertChanges && (results[i]!.rowCount ?? 0) === 0) {\n throw new BatchCommandNoChangesError(i);\n }\n } catch (error) {\n tracer.error('db:sql:batch_command:execute:error', { error });\n throw mapPostgresError(error);\n }\n }\n\n return results;\n}\n","import type { JSONSerializer } from '../../../../core';\nimport {\n sqlExecutor,\n type AnyConnection,\n type DatabaseTransaction,\n type DatabaseTransactionOptions,\n} from '../../../../core';\nimport { pgSQLExecutor } from '../execute';\nimport {\n PgDriverType,\n type PgConnection,\n type PgPoolOrClient,\n} from './connection';\n\nexport type PgTransaction = DatabaseTransaction<\n PgConnection,\n PgTransactionOptions\n>;\n\nexport type PgIsolationLevel =\n | 'READ UNCOMMITTED'\n | 'READ COMMITTED'\n | 'REPEATABLE READ'\n | 'SERIALIZABLE';\n\nexport type PgTransactionOptions = DatabaseTransactionOptions & {\n isolationLevel?: PgIsolationLevel;\n};\n\nexport const pgTransaction =\n <ConnectionType extends AnyConnection = AnyConnection>(\n connection: () => ConnectionType,\n serializer: JSONSerializer,\n ) =>\n <DbClient extends PgPoolOrClient = PgPoolOrClient>(\n getClient: Promise<DbClient>,\n options?: {\n close: (client: DbClient, error?: unknown) => Promise<void>;\n } & PgTransactionOptions,\n ): DatabaseTransaction<ConnectionType> => ({\n connection: connection(),\n driverType: PgDriverType,\n begin: async () => {\n const client = await getClient;\n const parts = ['BEGIN'];\n if (options?.isolationLevel) {\n parts.push(`ISOLATION LEVEL ${options.isolationLevel}`);\n }\n if (options?.readonly) {\n parts.push('READ ONLY');\n }\n await client.query(parts.join(' '));\n },\n commit: async () => {\n const client = await getClient;\n\n try {\n await client.query('COMMIT');\n } finally {\n if (options?.close) await options?.close(client);\n }\n },\n rollback: async (error?: unknown) => {\n const client = await getClient;\n try {\n await client.query('ROLLBACK');\n } finally {\n if (options?.close) await options?.close(client, error);\n }\n },\n execute: sqlExecutor(pgSQLExecutor({ serializer }), {\n connect: () => getClient,\n }),\n _transactionOptions: options ?? {},\n });\n","import pg from 'pg';\nimport type { JSONSerializer } from '../../../../core';\nimport {\n createConnection,\n type Connection,\n type DatabaseTransaction,\n} from '../../../../core';\nimport type { PostgreSQLDriverType } from '../../core';\nimport { pgSQLExecutor } from '../execute';\nimport { pgTransaction, type PgTransactionOptions } from './transaction';\n\nexport type PgDriverType = PostgreSQLDriverType<'pg'>;\nexport const PgDriverType: PgDriverType = 'PostgreSQL:pg';\n\nexport type PgPoolClient = pg.PoolClient;\nexport type PgClient = pg.Client;\n\nexport type PgClientOrPoolClient = PgPoolClient | PgClient;\n\nexport type PgPoolOrClient = pg.Pool | PgPoolClient | PgClient;\n\nexport type PgClientConnection = Connection<\n PgClientConnection,\n PgDriverType,\n PgClient,\n DatabaseTransaction<PgClientConnection, PgTransactionOptions>\n>;\n\nexport type PgPoolClientConnection = Connection<\n PgPoolClientConnection,\n PgDriverType,\n PgPoolClient,\n DatabaseTransaction<PgPoolClientConnection, PgTransactionOptions>\n>;\n\nexport type PgConnection = PgPoolClientConnection | PgClientConnection;\n\nexport type PgPoolClientOptions = {\n type: 'PoolClient';\n connect: () => Promise<PgPoolClient>;\n close: (client: PgPoolClient) => Promise<void>;\n};\n\nexport type PgClientOptions = {\n type: 'Client';\n connect: () => Promise<PgClient>;\n close: (client: PgClient) => Promise<void>;\n};\n\nexport type PgClientConnectionOptions = PgClientOptions & {\n serializer: JSONSerializer;\n};\n\nexport type PgPoolClientConnectionOptions = PgPoolClientOptions & {\n serializer: JSONSerializer;\n};\n\nexport const pgClientConnection = (\n options: PgClientConnectionOptions,\n): PgClientConnection => {\n const { connect, close } = options;\n\n return createConnection({\n driverType: PgDriverType,\n connect,\n close,\n initTransaction: (connection) =>\n pgTransaction(connection, options.serializer),\n executor: pgSQLExecutor,\n serializer: options.serializer,\n });\n};\n\nexport const pgPoolClientConnection = (\n options: PgPoolClientConnectionOptions,\n): PgPoolClientConnection => {\n const { connect, close } = options;\n\n return createConnection({\n driverType: PgDriverType,\n connect,\n close,\n initTransaction: (connection) =>\n pgTransaction(connection, options.serializer),\n executor: pgSQLExecutor,\n serializer: options.serializer,\n });\n};\n\nexport type PgConnectionOptions =\n | PgPoolClientConnectionOptions\n | PgClientConnectionOptions;\n\nexport function pgConnection(\n options: PgPoolClientConnectionOptions,\n): PgPoolClientConnection;\nexport function pgConnection(\n options: PgClientConnectionOptions,\n): PgClientConnection;\nexport function pgConnection(\n options: PgPoolClientConnectionOptions | PgClientConnectionOptions,\n): PgPoolClientConnection | PgClientConnection {\n return options.type === 'Client'\n ? pgClientConnection(options)\n : pgPoolClientConnection(options);\n}\n\nexport type ConnectionCheckResult =\n | { successful: true }\n | {\n successful: false;\n code: string | undefined;\n errorType: 'ConnectionRefused' | 'Authentication' | 'Unknown';\n error: unknown;\n };\n\nexport const checkConnection = async (\n connectionString: string,\n): Promise<ConnectionCheckResult> => {\n const client = new pg.Client({\n connectionString,\n });\n\n try {\n await client.connect();\n return { successful: true };\n } catch (error) {\n const code =\n error instanceof Error &&\n 'code' in error &&\n typeof error.code === 'string'\n ? error.code\n : undefined;\n\n return {\n successful: false,\n errorType:\n code === 'ECONNREFUSED'\n ? 'ConnectionRefused'\n : code === '28P01'\n ? 'Authentication'\n : 'Unknown',\n code,\n error,\n };\n } finally {\n // Ensure the client is closed properly if connected\n await client.end();\n }\n};\n","import type pg from 'pg';\nimport type { JSONSerializer } from '../../../../core/serializer';\n\nexport const setPgTypeParser = (\n client: pg.Client | pg.PoolClient,\n options?: {\n parseBigInts?: boolean;\n serializer: JSONSerializer;\n },\n) => {\n // BigInt\n if (options?.parseBigInts === true)\n client.setTypeParser(20, (val) => BigInt(val));\n\n if (options?.serializer) {\n // JSONB\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n client.setTypeParser(3802, (val) => options.serializer.deserialize(val));\n\n // JSON\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n client.setTypeParser(114, (val) => options.serializer.deserialize(val));\n }\n};\n","import pg from 'pg';\nimport {\n createAmbientConnectionPool,\n createConnectionPool,\n JSONSerializer,\n tracer,\n type ConnectionPool,\n type JSONSerializationOptions,\n} from '../../../../core';\nimport { defaultPostgreSqlDatabase, parseDatabaseName } from '../../core';\nimport { setPgTypeParser } from '../serialization';\nimport {\n pgConnection,\n PgDriverType,\n type PgClientConnection,\n type PgPoolClientConnection,\n} from './connection';\n\nexport type PgNativePool = ConnectionPool<PgPoolClientConnection>;\n\nexport type PgAmbientClientPool = ConnectionPool<PgClientConnection>;\n\nexport type PgAmbientConnectionPool = ConnectionPool<\n PgPoolClientConnection | PgClientConnection\n>;\n\nexport type PgPool =\n | PgNativePool\n | PgAmbientClientPool\n | PgAmbientConnectionPool;\n\nexport const pgNativePool = (options: {\n connectionString: string;\n database?: string | undefined;\n serializer: JSONSerializer;\n}): PgNativePool => {\n const { connectionString, database } = options;\n const pool = getPgPool({ connectionString, database });\n\n const getConnection = () =>\n pgConnection({\n type: 'PoolClient',\n connect: async () => {\n const client = await pool.connect();\n\n setPgTypeParser(client, {\n parseBigInts: true,\n serializer: options.serializer,\n });\n\n return client;\n },\n close: (client) => Promise.resolve(client.release()),\n serializer: options.serializer,\n });\n\n const open = () => Promise.resolve(getConnection());\n const close = () => endPgPool({ connectionString, database });\n\n return createConnectionPool({\n driverType: PgDriverType,\n connection: open,\n close,\n getConnection,\n });\n};\n\nexport const pgAmbientNativePool = (options: {\n pool: pg.Pool;\n serializer: JSONSerializer;\n}): PgNativePool => {\n const { pool } = options;\n\n return createConnectionPool({\n driverType: PgDriverType,\n getConnection: () =>\n pgConnection({\n type: 'PoolClient',\n connect: () => pool.connect(),\n close: (client) => Promise.resolve(client.release()),\n serializer: options.serializer,\n }),\n });\n};\n\nexport const pgAmbientConnectionPool = (options: {\n connection: PgPoolClientConnection | PgClientConnection;\n}): PgAmbientConnectionPool => {\n const { connection } = options;\n\n return createAmbientConnectionPool({\n driverType: PgDriverType,\n connection,\n });\n};\n\nexport const pgClientPool = (options: {\n connectionString: string;\n database?: string | undefined;\n serializer: JSONSerializer;\n}): PgAmbientClientPool => {\n const { connectionString, database } = options;\n\n return createConnectionPool({\n driverType: PgDriverType,\n getConnection: () => {\n const connect = async () => {\n const client = new pg.Client({ connectionString, database });\n\n setPgTypeParser(client, {\n parseBigInts: true,\n serializer: options.serializer,\n });\n\n await client.connect();\n return client;\n };\n\n return pgConnection({\n type: 'Client',\n connect,\n close: (client) => client.end(),\n serializer: options.serializer,\n });\n },\n });\n};\n\nexport const pgAmbientClientPool = (options: {\n client: pg.Client;\n serializer: JSONSerializer;\n}): PgAmbientClientPool => {\n const { client } = options;\n\n const getConnection = () => {\n const connect = () => Promise.resolve(client);\n\n return pgConnection({\n type: 'Client',\n connect,\n close: () => Promise.resolve(),\n serializer: options.serializer,\n });\n };\n\n const open = () => Promise.resolve(getConnection());\n const close = () => Promise.resolve();\n\n return createConnectionPool({\n driverType: PgDriverType,\n connection: open,\n close,\n getConnection,\n });\n};\n\nexport type PgPoolPooledOptions =\n | {\n connectionString: string;\n database?: string;\n pooled: true;\n pool: pg.Pool;\n }\n | {\n connectionString: string;\n database?: string;\n pool: pg.Pool;\n }\n | {\n connectionString: string;\n database?: string;\n pooled: true;\n }\n | {\n connectionString: string;\n database?: string;\n };\n\nexport type PgPoolNotPooledOptions =\n | {\n connectionString: string;\n database?: string;\n pooled: false;\n client: pg.Client;\n }\n | {\n connectionString: string;\n database?: string;\n client: pg.Client;\n }\n | {\n connectionString: string;\n database?: string;\n pooled: false;\n }\n | {\n connectionString: string;\n database?: string;\n connection: PgPoolClientConnection | PgClientConnection;\n pooled?: false;\n };\n\nexport type PgPoolOptions = (PgPoolPooledOptions | PgPoolNotPooledOptions) &\n JSONSerializationOptions;\n\nexport function pgPool(options: PgPoolPooledOptions): PgNativePool;\nexport function pgPool(options: PgPoolNotPooledOptions): PgAmbientClientPool;\nexport function pgPool(\n options: PgPoolOptions,\n): PgNativePool | PgAmbientClientPool | PgAmbientConnectionPool {\n const { connectionString, database } = options;\n\n const serializer = options.serialization?.serializer ?? JSONSerializer;\n\n if ('client' in options && options.client)\n return pgAmbientClientPool({ client: options.client, serializer });\n\n if ('connection' in options && options.connection)\n return pgAmbientConnectionPool({\n connection: options.connection,\n });\n\n if ('pooled' in options && options.pooled === false)\n return pgClientPool({ connectionString, database, serializer });\n\n if ('pool' in options && options.pool)\n return pgAmbientNativePool({ pool: options.pool, serializer });\n\n return pgNativePool({\n connectionString,\n database,\n serializer,\n });\n}\n\nconst pools: Map<string, pg.Pool> = new Map();\nconst usageCounter: Map<string, number> = new Map();\n\nexport const getPgPool = (\n connectionStringOrOptions: string | pg.PoolConfig,\n): pg.Pool => {\n const connectionString =\n typeof connectionStringOrOptions === 'string'\n ? connectionStringOrOptions\n : connectionStringOrOptions.connectionString!;\n\n const poolOptions =\n typeof connectionStringOrOptions === 'string'\n ? { connectionString }\n : connectionStringOrOptions;\n\n const database =\n poolOptions.database ??\n (poolOptions.connectionString\n ? (parseDatabaseName(poolOptions.connectionString) ??\n defaultPostgreSqlDatabase)\n : undefined);\n\n const lookupKey = key(connectionString, database);\n\n updatePoolUsageCounter(lookupKey, 1);\n\n return (\n pools.get(lookupKey) ??\n pools.set(lookupKey, new pg.Pool(poolOptions)).get(lookupKey)!\n );\n};\n\nexport const endPgPool = async ({\n connectionString,\n database,\n force,\n}: {\n connectionString: string;\n database?: string | undefined;\n force?: boolean;\n}): Promise<void> => {\n database = database ?? parseDatabaseName(connectionString) ?? undefined;\n const lookupKey = key(connectionString, database);\n\n const pool = pools.get(lookupKey);\n if (pool && (updatePoolUsageCounter(lookupKey, -1) <= 0 || force === true)) {\n await onEndPool(lookupKey, pool);\n }\n};\n\nexport const onEndPool = async (lookupKey: string, pool: pg.Pool) => {\n try {\n await pool.end();\n } catch (error) {\n tracer.error('connection-closing-error', { lookupKey, error });\n }\n pools.delete(lookupKey);\n};\n\nexport const endAllPgPools = () =>\n Promise.all(\n [...pools.entries()].map(([lookupKey, pool]) => onEndPool(lookupKey, pool)),\n );\n\nconst key = (connectionString: string, database: string | undefined) =>\n `${connectionString}|${database ?? defaultPostgreSqlDatabase}`;\n\nconst updatePoolUsageCounter = (lookupKey: string, by: 1 | -1): number => {\n const currentCounter = usageCounter.get(lookupKey) ?? 0;\n const newCounter = currentCounter + by;\n\n usageCounter.set(lookupKey, currentCounter + by);\n\n return newCounter;\n};\n","import {\n canHandleDriverWithConnectionString,\n type DumboDatabaseDriver,\n dumboDatabaseDriverRegistry,\n} from '../../../core';\nimport {\n DefaultPostgreSQLMigratorOptions,\n pgFormatter,\n PostgreSQLConnectionString,\n postgreSQLMetadata,\n} from '../core';\nimport {\n type PgConnection,\n PgDriverType,\n pgPool,\n type PgPool,\n type PgPoolOptions,\n} from './connections';\n\nconst tryParseConnectionString = (connectionString: string) => {\n try {\n return PostgreSQLConnectionString(connectionString);\n } catch {\n return null;\n }\n};\n\nexport const pgDumboDriver: DumboDatabaseDriver<\n PgConnection,\n PgPoolOptions,\n PgPool\n> = {\n driverType: PgDriverType,\n createPool: (options) => pgPool(options as PgPoolOptions),\n sqlFormatter: pgFormatter,\n defaultMigratorOptions: DefaultPostgreSQLMigratorOptions,\n canHandle: canHandleDriverWithConnectionString(\n PgDriverType,\n tryParseConnectionString,\n ),\n databaseMetadata: postgreSQLMetadata,\n};\n\nexport const usePgDumboDriver = () => {\n dumboDatabaseDriverRegistry.register(PgDriverType, pgDumboDriver);\n};\n\nusePgDumboDriver();\n\nexport type PgDumboOptions = PgPoolOptions;\nexport * from './connections';\nexport * from './execute';\nexport * from './serialization';\n"],"mappings":"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"}
|
package/dist/pg.d.cts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
import pg from 'pg';
|
|
5
|
-
import './columnProcessors-Be2uMYjS.cjs';
|
|
1
|
+
import { D as Connection, E as AnyConnection, Gt as DbSQLExecutor, K as DatabaseTransaction, co as JSONSerializer, ft as DumboDatabaseDriver, oo as JSONSerializationOptions, p as ConnectionPool, q as DatabaseTransactionOptions, r as postgreSQLMetadata } from "./index-BDSQvDH2.cjs";
|
|
2
|
+
import { _ as tryAcquireAdvisoryLock, a as PostgreSQLExpandSQLInProcessor, b as defaultPostgreSQLConnectionString, c as functionExists, d as tableExistsSQL, f as DefaultPostgreSQLMigratorOptions, g as releaseAdvisoryLock, h as advisoryLock, i as PostgreSQLArrayProcessor, l as functionExistsSQL, m as acquireAdvisoryLock, n as PostgreSQLDriverType, o as pgFormatter, p as AdvisoryLock, r as postgreSQLColumnProcessors, s as defaultPostgreSqlDatabase, t as PostgreSQLDatabaseName, u as tableExists, v as mapPostgresError, x as parseDatabaseName, y as PostgreSQLConnectionString } from "./index-BdWFmDhJ.cjs";
|
|
3
|
+
import pg from "pg";
|
|
6
4
|
|
|
5
|
+
//#region src/storage/postgresql/pg/connections/transaction.d.ts
|
|
7
6
|
type PgTransaction = DatabaseTransaction<PgConnection, PgTransactionOptions>;
|
|
8
7
|
type PgIsolationLevel = 'READ UNCOMMITTED' | 'READ COMMITTED' | 'REPEATABLE READ' | 'SERIALIZABLE';
|
|
9
8
|
type PgTransactionOptions = DatabaseTransactionOptions & {
|
|
10
|
-
|
|
9
|
+
isolationLevel?: PgIsolationLevel;
|
|
11
10
|
};
|
|
12
11
|
declare const pgTransaction: <ConnectionType extends AnyConnection = AnyConnection>(connection: () => ConnectionType, serializer: JSONSerializer) => <DbClient extends PgPoolOrClient = PgPoolOrClient>(getClient: Promise<DbClient>, options?: {
|
|
13
|
-
|
|
12
|
+
close: (client: DbClient, error?: unknown) => Promise<void>;
|
|
14
13
|
} & PgTransactionOptions) => DatabaseTransaction<ConnectionType>;
|
|
15
|
-
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region src/storage/postgresql/pg/connections/connection.d.ts
|
|
16
16
|
type PgDriverType = PostgreSQLDriverType<'pg'>;
|
|
17
17
|
declare const PgDriverType: PgDriverType;
|
|
18
18
|
type PgPoolClient = pg.PoolClient;
|
|
@@ -23,20 +23,20 @@ type PgClientConnection = Connection<PgClientConnection, PgDriverType, PgClient,
|
|
|
23
23
|
type PgPoolClientConnection = Connection<PgPoolClientConnection, PgDriverType, PgPoolClient, DatabaseTransaction<PgPoolClientConnection, PgTransactionOptions>>;
|
|
24
24
|
type PgConnection = PgPoolClientConnection | PgClientConnection;
|
|
25
25
|
type PgPoolClientOptions = {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
type: 'PoolClient';
|
|
27
|
+
connect: () => Promise<PgPoolClient>;
|
|
28
|
+
close: (client: PgPoolClient) => Promise<void>;
|
|
29
29
|
};
|
|
30
30
|
type PgClientOptions = {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
type: 'Client';
|
|
32
|
+
connect: () => Promise<PgClient>;
|
|
33
|
+
close: (client: PgClient) => Promise<void>;
|
|
34
34
|
};
|
|
35
35
|
type PgClientConnectionOptions = PgClientOptions & {
|
|
36
|
-
|
|
36
|
+
serializer: JSONSerializer;
|
|
37
37
|
};
|
|
38
38
|
type PgPoolClientConnectionOptions = PgPoolClientOptions & {
|
|
39
|
-
|
|
39
|
+
serializer: JSONSerializer;
|
|
40
40
|
};
|
|
41
41
|
declare const pgClientConnection: (options: PgClientConnectionOptions) => PgClientConnection;
|
|
42
42
|
declare const pgPoolClientConnection: (options: PgPoolClientConnectionOptions) => PgPoolClientConnection;
|
|
@@ -44,104 +44,115 @@ type PgConnectionOptions = PgPoolClientConnectionOptions | PgClientConnectionOpt
|
|
|
44
44
|
declare function pgConnection(options: PgPoolClientConnectionOptions): PgPoolClientConnection;
|
|
45
45
|
declare function pgConnection(options: PgClientConnectionOptions): PgClientConnection;
|
|
46
46
|
type ConnectionCheckResult = {
|
|
47
|
-
|
|
47
|
+
successful: true;
|
|
48
48
|
} | {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
successful: false;
|
|
50
|
+
code: string | undefined;
|
|
51
|
+
errorType: 'ConnectionRefused' | 'Authentication' | 'Unknown';
|
|
52
|
+
error: unknown;
|
|
53
53
|
};
|
|
54
54
|
declare const checkConnection: (connectionString: string) => Promise<ConnectionCheckResult>;
|
|
55
|
-
|
|
55
|
+
//#endregion
|
|
56
|
+
//#region src/storage/postgresql/pg/connections/pool.d.ts
|
|
56
57
|
type PgNativePool = ConnectionPool<PgPoolClientConnection>;
|
|
57
58
|
type PgAmbientClientPool = ConnectionPool<PgClientConnection>;
|
|
58
59
|
type PgAmbientConnectionPool = ConnectionPool<PgPoolClientConnection | PgClientConnection>;
|
|
59
60
|
type PgPool = PgNativePool | PgAmbientClientPool | PgAmbientConnectionPool;
|
|
60
61
|
declare const pgNativePool: (options: {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
connectionString: string;
|
|
63
|
+
database?: string | undefined;
|
|
64
|
+
serializer: JSONSerializer;
|
|
64
65
|
}) => PgNativePool;
|
|
65
66
|
declare const pgAmbientNativePool: (options: {
|
|
66
|
-
|
|
67
|
-
|
|
67
|
+
pool: pg.Pool;
|
|
68
|
+
serializer: JSONSerializer;
|
|
68
69
|
}) => PgNativePool;
|
|
69
70
|
declare const pgAmbientConnectionPool: (options: {
|
|
70
|
-
|
|
71
|
+
connection: PgPoolClientConnection | PgClientConnection;
|
|
71
72
|
}) => PgAmbientConnectionPool;
|
|
72
73
|
declare const pgClientPool: (options: {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
connectionString: string;
|
|
75
|
+
database?: string | undefined;
|
|
76
|
+
serializer: JSONSerializer;
|
|
76
77
|
}) => PgAmbientClientPool;
|
|
77
78
|
declare const pgAmbientClientPool: (options: {
|
|
78
|
-
|
|
79
|
-
|
|
79
|
+
client: pg.Client;
|
|
80
|
+
serializer: JSONSerializer;
|
|
80
81
|
}) => PgAmbientClientPool;
|
|
81
82
|
type PgPoolPooledOptions = {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
connectionString: string;
|
|
84
|
+
database?: string;
|
|
85
|
+
pooled: true;
|
|
86
|
+
pool: pg.Pool;
|
|
86
87
|
} | {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
connectionString: string;
|
|
89
|
+
database?: string;
|
|
90
|
+
pool: pg.Pool;
|
|
90
91
|
} | {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
connectionString: string;
|
|
93
|
+
database?: string;
|
|
94
|
+
pooled: true;
|
|
94
95
|
} | {
|
|
95
|
-
|
|
96
|
-
|
|
96
|
+
connectionString: string;
|
|
97
|
+
database?: string;
|
|
97
98
|
};
|
|
98
99
|
type PgPoolNotPooledOptions = {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
100
|
+
connectionString: string;
|
|
101
|
+
database?: string;
|
|
102
|
+
pooled: false;
|
|
103
|
+
client: pg.Client;
|
|
103
104
|
} | {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
connectionString: string;
|
|
106
|
+
database?: string;
|
|
107
|
+
client: pg.Client;
|
|
107
108
|
} | {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
109
|
+
connectionString: string;
|
|
110
|
+
database?: string;
|
|
111
|
+
pooled: false;
|
|
111
112
|
} | {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
113
|
+
connectionString: string;
|
|
114
|
+
database?: string;
|
|
115
|
+
connection: PgPoolClientConnection | PgClientConnection;
|
|
116
|
+
pooled?: false;
|
|
116
117
|
};
|
|
117
118
|
type PgPoolOptions = (PgPoolPooledOptions | PgPoolNotPooledOptions) & JSONSerializationOptions;
|
|
118
119
|
declare function pgPool(options: PgPoolPooledOptions): PgNativePool;
|
|
119
120
|
declare function pgPool(options: PgPoolNotPooledOptions): PgAmbientClientPool;
|
|
120
121
|
declare const getPgPool: (connectionStringOrOptions: string | pg.PoolConfig) => pg.Pool;
|
|
121
|
-
declare const endPgPool: ({
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
122
|
+
declare const endPgPool: ({
|
|
123
|
+
connectionString,
|
|
124
|
+
database,
|
|
125
|
+
force
|
|
126
|
+
}: {
|
|
127
|
+
connectionString: string;
|
|
128
|
+
database?: string | undefined;
|
|
129
|
+
force?: boolean;
|
|
125
130
|
}) => Promise<void>;
|
|
126
131
|
declare const onEndPool: (lookupKey: string, pool: pg.Pool) => Promise<void>;
|
|
127
132
|
declare const endAllPgPools: () => Promise<void[]>;
|
|
128
|
-
|
|
133
|
+
//#endregion
|
|
134
|
+
//#region src/storage/postgresql/pg/execute/execute.d.ts
|
|
129
135
|
declare const isPgNativePool: (poolOrClient: pg.Pool | pg.PoolClient | pg.Client) => poolOrClient is pg.Pool;
|
|
130
136
|
declare const isPgClient: (poolOrClient: pg.Pool | pg.PoolClient | pg.Client) => poolOrClient is pg.Client;
|
|
131
137
|
declare const isPgPoolClient: (poolOrClient: pg.Pool | pg.PoolClient | pg.Client) => poolOrClient is pg.PoolClient;
|
|
132
138
|
declare const pgExecute: <Result = void>(poolOrClient: pg.Pool | pg.PoolClient | pg.Client, handle: (client: pg.PoolClient | pg.Client) => Promise<Result>) => Promise<Result>;
|
|
133
139
|
type PgSQLExecutor = DbSQLExecutor<PgDriverType, PgClientOrPoolClient>;
|
|
134
|
-
declare const pgSQLExecutor: ({
|
|
135
|
-
|
|
140
|
+
declare const pgSQLExecutor: ({
|
|
141
|
+
serializer
|
|
142
|
+
}: {
|
|
143
|
+
serializer: JSONSerializer;
|
|
136
144
|
}) => PgSQLExecutor;
|
|
137
|
-
|
|
145
|
+
//#endregion
|
|
146
|
+
//#region src/storage/postgresql/pg/serialization/index.d.ts
|
|
138
147
|
declare const setPgTypeParser: (client: pg.Client | pg.PoolClient, options?: {
|
|
139
|
-
|
|
140
|
-
|
|
148
|
+
parseBigInts?: boolean;
|
|
149
|
+
serializer: JSONSerializer;
|
|
141
150
|
}) => void;
|
|
142
|
-
|
|
151
|
+
//#endregion
|
|
152
|
+
//#region src/storage/postgresql/pg/index.d.ts
|
|
143
153
|
declare const pgDumboDriver: DumboDatabaseDriver<PgConnection, PgPoolOptions, PgPool>;
|
|
144
154
|
declare const usePgDumboDriver: () => void;
|
|
145
155
|
type PgDumboOptions = PgPoolOptions;
|
|
146
|
-
|
|
147
|
-
export {
|
|
156
|
+
//#endregion
|
|
157
|
+
export { AdvisoryLock, ConnectionCheckResult, DefaultPostgreSQLMigratorOptions, PgAmbientClientPool, PgAmbientConnectionPool, PgClient, PgClientConnection, PgClientConnectionOptions, PgClientOptions, PgClientOrPoolClient, PgConnection, PgConnectionOptions, PgDriverType, PgDumboOptions, PgIsolationLevel, PgNativePool, PgPool, PgPoolClient, PgPoolClientConnection, PgPoolClientConnectionOptions, PgPoolClientOptions, PgPoolNotPooledOptions, PgPoolOptions, PgPoolOrClient, PgPoolPooledOptions, PgSQLExecutor, PgTransaction, PgTransactionOptions, PostgreSQLArrayProcessor, PostgreSQLConnectionString, PostgreSQLDatabaseName, PostgreSQLDriverType, PostgreSQLExpandSQLInProcessor, acquireAdvisoryLock, advisoryLock, checkConnection, defaultPostgreSQLConnectionString, defaultPostgreSqlDatabase, endAllPgPools, endPgPool, functionExists, functionExistsSQL, getPgPool, isPgClient, isPgNativePool, isPgPoolClient, mapPostgresError, onEndPool, parseDatabaseName, pgAmbientClientPool, pgAmbientConnectionPool, pgAmbientNativePool, pgClientConnection, pgClientPool, pgConnection, pgDumboDriver, pgExecute, pgFormatter, pgNativePool, pgPool, pgPoolClientConnection, pgSQLExecutor, pgTransaction, postgreSQLColumnProcessors, postgreSQLMetadata, releaseAdvisoryLock, setPgTypeParser, tableExists, tableExistsSQL, tryAcquireAdvisoryLock, usePgDumboDriver };
|
|
158
|
+
//# sourceMappingURL=pg.d.cts.map
|
package/dist/pg.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
import pg from 'pg';
|
|
5
|
-
import './columnProcessors-D0ivj_SU.js';
|
|
1
|
+
import { D as Connection, E as AnyConnection, Gt as DbSQLExecutor, K as DatabaseTransaction, co as JSONSerializer, ft as DumboDatabaseDriver, oo as JSONSerializationOptions, p as ConnectionPool, q as DatabaseTransactionOptions, r as postgreSQLMetadata } from "./index-zkszkJqP.js";
|
|
2
|
+
import { _ as tryAcquireAdvisoryLock, a as PostgreSQLExpandSQLInProcessor, b as defaultPostgreSQLConnectionString, c as functionExists, d as tableExistsSQL, f as DefaultPostgreSQLMigratorOptions, g as releaseAdvisoryLock, h as advisoryLock, i as PostgreSQLArrayProcessor, l as functionExistsSQL, m as acquireAdvisoryLock, n as PostgreSQLDriverType, o as pgFormatter, p as AdvisoryLock, r as postgreSQLColumnProcessors, s as defaultPostgreSqlDatabase, t as PostgreSQLDatabaseName, u as tableExists, v as mapPostgresError, x as parseDatabaseName, y as PostgreSQLConnectionString } from "./index-cxtbLiju.js";
|
|
3
|
+
import pg from "pg";
|
|
6
4
|
|
|
5
|
+
//#region src/storage/postgresql/pg/connections/transaction.d.ts
|
|
7
6
|
type PgTransaction = DatabaseTransaction<PgConnection, PgTransactionOptions>;
|
|
8
7
|
type PgIsolationLevel = 'READ UNCOMMITTED' | 'READ COMMITTED' | 'REPEATABLE READ' | 'SERIALIZABLE';
|
|
9
8
|
type PgTransactionOptions = DatabaseTransactionOptions & {
|
|
10
|
-
|
|
9
|
+
isolationLevel?: PgIsolationLevel;
|
|
11
10
|
};
|
|
12
11
|
declare const pgTransaction: <ConnectionType extends AnyConnection = AnyConnection>(connection: () => ConnectionType, serializer: JSONSerializer) => <DbClient extends PgPoolOrClient = PgPoolOrClient>(getClient: Promise<DbClient>, options?: {
|
|
13
|
-
|
|
12
|
+
close: (client: DbClient, error?: unknown) => Promise<void>;
|
|
14
13
|
} & PgTransactionOptions) => DatabaseTransaction<ConnectionType>;
|
|
15
|
-
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region src/storage/postgresql/pg/connections/connection.d.ts
|
|
16
16
|
type PgDriverType = PostgreSQLDriverType<'pg'>;
|
|
17
17
|
declare const PgDriverType: PgDriverType;
|
|
18
18
|
type PgPoolClient = pg.PoolClient;
|
|
@@ -23,20 +23,20 @@ type PgClientConnection = Connection<PgClientConnection, PgDriverType, PgClient,
|
|
|
23
23
|
type PgPoolClientConnection = Connection<PgPoolClientConnection, PgDriverType, PgPoolClient, DatabaseTransaction<PgPoolClientConnection, PgTransactionOptions>>;
|
|
24
24
|
type PgConnection = PgPoolClientConnection | PgClientConnection;
|
|
25
25
|
type PgPoolClientOptions = {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
type: 'PoolClient';
|
|
27
|
+
connect: () => Promise<PgPoolClient>;
|
|
28
|
+
close: (client: PgPoolClient) => Promise<void>;
|
|
29
29
|
};
|
|
30
30
|
type PgClientOptions = {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
type: 'Client';
|
|
32
|
+
connect: () => Promise<PgClient>;
|
|
33
|
+
close: (client: PgClient) => Promise<void>;
|
|
34
34
|
};
|
|
35
35
|
type PgClientConnectionOptions = PgClientOptions & {
|
|
36
|
-
|
|
36
|
+
serializer: JSONSerializer;
|
|
37
37
|
};
|
|
38
38
|
type PgPoolClientConnectionOptions = PgPoolClientOptions & {
|
|
39
|
-
|
|
39
|
+
serializer: JSONSerializer;
|
|
40
40
|
};
|
|
41
41
|
declare const pgClientConnection: (options: PgClientConnectionOptions) => PgClientConnection;
|
|
42
42
|
declare const pgPoolClientConnection: (options: PgPoolClientConnectionOptions) => PgPoolClientConnection;
|
|
@@ -44,104 +44,115 @@ type PgConnectionOptions = PgPoolClientConnectionOptions | PgClientConnectionOpt
|
|
|
44
44
|
declare function pgConnection(options: PgPoolClientConnectionOptions): PgPoolClientConnection;
|
|
45
45
|
declare function pgConnection(options: PgClientConnectionOptions): PgClientConnection;
|
|
46
46
|
type ConnectionCheckResult = {
|
|
47
|
-
|
|
47
|
+
successful: true;
|
|
48
48
|
} | {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
successful: false;
|
|
50
|
+
code: string | undefined;
|
|
51
|
+
errorType: 'ConnectionRefused' | 'Authentication' | 'Unknown';
|
|
52
|
+
error: unknown;
|
|
53
53
|
};
|
|
54
54
|
declare const checkConnection: (connectionString: string) => Promise<ConnectionCheckResult>;
|
|
55
|
-
|
|
55
|
+
//#endregion
|
|
56
|
+
//#region src/storage/postgresql/pg/connections/pool.d.ts
|
|
56
57
|
type PgNativePool = ConnectionPool<PgPoolClientConnection>;
|
|
57
58
|
type PgAmbientClientPool = ConnectionPool<PgClientConnection>;
|
|
58
59
|
type PgAmbientConnectionPool = ConnectionPool<PgPoolClientConnection | PgClientConnection>;
|
|
59
60
|
type PgPool = PgNativePool | PgAmbientClientPool | PgAmbientConnectionPool;
|
|
60
61
|
declare const pgNativePool: (options: {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
connectionString: string;
|
|
63
|
+
database?: string | undefined;
|
|
64
|
+
serializer: JSONSerializer;
|
|
64
65
|
}) => PgNativePool;
|
|
65
66
|
declare const pgAmbientNativePool: (options: {
|
|
66
|
-
|
|
67
|
-
|
|
67
|
+
pool: pg.Pool;
|
|
68
|
+
serializer: JSONSerializer;
|
|
68
69
|
}) => PgNativePool;
|
|
69
70
|
declare const pgAmbientConnectionPool: (options: {
|
|
70
|
-
|
|
71
|
+
connection: PgPoolClientConnection | PgClientConnection;
|
|
71
72
|
}) => PgAmbientConnectionPool;
|
|
72
73
|
declare const pgClientPool: (options: {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
connectionString: string;
|
|
75
|
+
database?: string | undefined;
|
|
76
|
+
serializer: JSONSerializer;
|
|
76
77
|
}) => PgAmbientClientPool;
|
|
77
78
|
declare const pgAmbientClientPool: (options: {
|
|
78
|
-
|
|
79
|
-
|
|
79
|
+
client: pg.Client;
|
|
80
|
+
serializer: JSONSerializer;
|
|
80
81
|
}) => PgAmbientClientPool;
|
|
81
82
|
type PgPoolPooledOptions = {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
connectionString: string;
|
|
84
|
+
database?: string;
|
|
85
|
+
pooled: true;
|
|
86
|
+
pool: pg.Pool;
|
|
86
87
|
} | {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
connectionString: string;
|
|
89
|
+
database?: string;
|
|
90
|
+
pool: pg.Pool;
|
|
90
91
|
} | {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
connectionString: string;
|
|
93
|
+
database?: string;
|
|
94
|
+
pooled: true;
|
|
94
95
|
} | {
|
|
95
|
-
|
|
96
|
-
|
|
96
|
+
connectionString: string;
|
|
97
|
+
database?: string;
|
|
97
98
|
};
|
|
98
99
|
type PgPoolNotPooledOptions = {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
100
|
+
connectionString: string;
|
|
101
|
+
database?: string;
|
|
102
|
+
pooled: false;
|
|
103
|
+
client: pg.Client;
|
|
103
104
|
} | {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
connectionString: string;
|
|
106
|
+
database?: string;
|
|
107
|
+
client: pg.Client;
|
|
107
108
|
} | {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
109
|
+
connectionString: string;
|
|
110
|
+
database?: string;
|
|
111
|
+
pooled: false;
|
|
111
112
|
} | {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
113
|
+
connectionString: string;
|
|
114
|
+
database?: string;
|
|
115
|
+
connection: PgPoolClientConnection | PgClientConnection;
|
|
116
|
+
pooled?: false;
|
|
116
117
|
};
|
|
117
118
|
type PgPoolOptions = (PgPoolPooledOptions | PgPoolNotPooledOptions) & JSONSerializationOptions;
|
|
118
119
|
declare function pgPool(options: PgPoolPooledOptions): PgNativePool;
|
|
119
120
|
declare function pgPool(options: PgPoolNotPooledOptions): PgAmbientClientPool;
|
|
120
121
|
declare const getPgPool: (connectionStringOrOptions: string | pg.PoolConfig) => pg.Pool;
|
|
121
|
-
declare const endPgPool: ({
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
122
|
+
declare const endPgPool: ({
|
|
123
|
+
connectionString,
|
|
124
|
+
database,
|
|
125
|
+
force
|
|
126
|
+
}: {
|
|
127
|
+
connectionString: string;
|
|
128
|
+
database?: string | undefined;
|
|
129
|
+
force?: boolean;
|
|
125
130
|
}) => Promise<void>;
|
|
126
131
|
declare const onEndPool: (lookupKey: string, pool: pg.Pool) => Promise<void>;
|
|
127
132
|
declare const endAllPgPools: () => Promise<void[]>;
|
|
128
|
-
|
|
133
|
+
//#endregion
|
|
134
|
+
//#region src/storage/postgresql/pg/execute/execute.d.ts
|
|
129
135
|
declare const isPgNativePool: (poolOrClient: pg.Pool | pg.PoolClient | pg.Client) => poolOrClient is pg.Pool;
|
|
130
136
|
declare const isPgClient: (poolOrClient: pg.Pool | pg.PoolClient | pg.Client) => poolOrClient is pg.Client;
|
|
131
137
|
declare const isPgPoolClient: (poolOrClient: pg.Pool | pg.PoolClient | pg.Client) => poolOrClient is pg.PoolClient;
|
|
132
138
|
declare const pgExecute: <Result = void>(poolOrClient: pg.Pool | pg.PoolClient | pg.Client, handle: (client: pg.PoolClient | pg.Client) => Promise<Result>) => Promise<Result>;
|
|
133
139
|
type PgSQLExecutor = DbSQLExecutor<PgDriverType, PgClientOrPoolClient>;
|
|
134
|
-
declare const pgSQLExecutor: ({
|
|
135
|
-
|
|
140
|
+
declare const pgSQLExecutor: ({
|
|
141
|
+
serializer
|
|
142
|
+
}: {
|
|
143
|
+
serializer: JSONSerializer;
|
|
136
144
|
}) => PgSQLExecutor;
|
|
137
|
-
|
|
145
|
+
//#endregion
|
|
146
|
+
//#region src/storage/postgresql/pg/serialization/index.d.ts
|
|
138
147
|
declare const setPgTypeParser: (client: pg.Client | pg.PoolClient, options?: {
|
|
139
|
-
|
|
140
|
-
|
|
148
|
+
parseBigInts?: boolean;
|
|
149
|
+
serializer: JSONSerializer;
|
|
141
150
|
}) => void;
|
|
142
|
-
|
|
151
|
+
//#endregion
|
|
152
|
+
//#region src/storage/postgresql/pg/index.d.ts
|
|
143
153
|
declare const pgDumboDriver: DumboDatabaseDriver<PgConnection, PgPoolOptions, PgPool>;
|
|
144
154
|
declare const usePgDumboDriver: () => void;
|
|
145
155
|
type PgDumboOptions = PgPoolOptions;
|
|
146
|
-
|
|
147
|
-
export {
|
|
156
|
+
//#endregion
|
|
157
|
+
export { AdvisoryLock, ConnectionCheckResult, DefaultPostgreSQLMigratorOptions, PgAmbientClientPool, PgAmbientConnectionPool, PgClient, PgClientConnection, PgClientConnectionOptions, PgClientOptions, PgClientOrPoolClient, PgConnection, PgConnectionOptions, PgDriverType, PgDumboOptions, PgIsolationLevel, PgNativePool, PgPool, PgPoolClient, PgPoolClientConnection, PgPoolClientConnectionOptions, PgPoolClientOptions, PgPoolNotPooledOptions, PgPoolOptions, PgPoolOrClient, PgPoolPooledOptions, PgSQLExecutor, PgTransaction, PgTransactionOptions, PostgreSQLArrayProcessor, PostgreSQLConnectionString, PostgreSQLDatabaseName, PostgreSQLDriverType, PostgreSQLExpandSQLInProcessor, acquireAdvisoryLock, advisoryLock, checkConnection, defaultPostgreSQLConnectionString, defaultPostgreSqlDatabase, endAllPgPools, endPgPool, functionExists, functionExistsSQL, getPgPool, isPgClient, isPgNativePool, isPgPoolClient, mapPostgresError, onEndPool, parseDatabaseName, pgAmbientClientPool, pgAmbientConnectionPool, pgAmbientNativePool, pgClientConnection, pgClientPool, pgConnection, pgDumboDriver, pgExecute, pgFormatter, pgNativePool, pgPool, pgPoolClientConnection, pgSQLExecutor, pgTransaction, postgreSQLColumnProcessors, postgreSQLMetadata, releaseAdvisoryLock, setPgTypeParser, tableExists, tableExistsSQL, tryAcquireAdvisoryLock, usePgDumboDriver };
|
|
158
|
+
//# sourceMappingURL=pg.d.ts.map
|