pqb 0.56.7 → 0.56.8

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.
@@ -24,7 +24,8 @@ for (const key in types.builtins) {
24
24
  types.builtins.DATE,
25
25
  types.builtins.TIMESTAMP,
26
26
  types.builtins.TIMESTAMPTZ,
27
- types.builtins.CIRCLE
27
+ types.builtins.CIRCLE,
28
+ types.builtins.BYTEA
28
29
  ].forEach((id) => {
29
30
  delete defaultTypeParsers[id];
30
31
  });
@@ -1 +1 @@
1
- {"version":3,"file":"node-postgres.js","sources":["../src/adapters/node-postgres.ts"],"sourcesContent":["import pg, { DatabaseError, Pool, PoolClient, PoolConfig } from 'pg';\nimport {\n AdapterBase,\n AdapterConfigBase,\n ColumnSchemaConfig,\n emptyObject,\n QueryArraysResult,\n QueryError,\n QueryResult,\n QueryResultRow,\n returnArg,\n setConnectRetryConfig,\n wrapAdapterFnWithConnectRetry,\n} from 'orchid-core';\nimport {\n DefaultColumnTypes,\n DefaultSchemaConfig,\n DbOptions,\n DbResult,\n createDbWithAdapter,\n} from 'pqb';\n\nexport const createDb = <\n SchemaConfig extends ColumnSchemaConfig = DefaultSchemaConfig,\n ColumnTypes = DefaultColumnTypes<SchemaConfig>,\n>({\n log,\n ...options\n}: DbOptions<SchemaConfig, ColumnTypes> &\n Omit<NodePostgresAdapterOptions, 'log'>): DbResult<ColumnTypes> => {\n return createDbWithAdapter({\n ...options,\n log,\n adapter: new NodePostgresAdapter(options),\n });\n};\n\nconst { types } = pg;\n\nexport interface TypeParsers {\n [K: number]: (input: string) => unknown;\n}\n\nconst defaultTypeParsers: TypeParsers = {};\n\nfor (const key in types.builtins) {\n const id = types.builtins[key as keyof typeof types.builtins];\n defaultTypeParsers[id] = types.getTypeParser(id);\n}\n\n[\n types.builtins.DATE,\n types.builtins.TIMESTAMP,\n types.builtins.TIMESTAMPTZ,\n types.builtins.CIRCLE,\n].forEach((id) => {\n delete defaultTypeParsers[id];\n});\n\nexport interface AdapterConfig\n extends AdapterConfigBase,\n Omit<PoolConfig, 'types' | 'connectionString'> {\n schema?: string;\n databaseURL?: string;\n}\n\nexport type NodePostgresAdapterOptions = Omit<AdapterConfig, 'log'>;\n\nexport class NodePostgresAdapter implements AdapterBase {\n pool: Pool;\n schema?: string;\n errorClass = DatabaseError;\n\n constructor(public config: NodePostgresAdapterOptions) {\n let schema = config.schema;\n if (config.databaseURL) {\n const url = new URL(config.databaseURL);\n\n const ssl = url.searchParams.get('ssl');\n\n if (ssl === 'false') {\n url.searchParams.delete('ssl');\n } else if (!config.ssl && ssl === 'true') {\n config.ssl = true;\n }\n\n if (!schema) {\n schema = url.searchParams.get('schema') || undefined;\n }\n\n config.databaseURL = url.toString();\n (config as PoolConfig).connectionString = config.databaseURL;\n }\n\n if (schema) this.schema = schema === 'public' ? undefined : schema;\n\n this.config = config;\n this.pool = new pg.Pool(config);\n\n if (config.connectRetry) {\n setConnectRetryConfig(\n this,\n config.connectRetry === true ? emptyObject : config.connectRetry,\n );\n\n this.connect = wrapAdapterFnWithConnectRetry(this, () =>\n this.pool.connect(),\n );\n }\n }\n\n private getURL(): URL | undefined {\n return this.config.databaseURL\n ? new URL(this.config.databaseURL)\n : undefined;\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): NodePostgresAdapter {\n const url = this.getURL();\n if (url) {\n if ('database' in params) {\n url.pathname = `/${params.database}`;\n }\n\n if (params.user !== undefined) {\n url.username = params.user;\n }\n\n if (params.password !== undefined) {\n url.password = params.password;\n }\n\n if (params.schema !== undefined) {\n url.searchParams.set('schema', params.schema);\n }\n\n return new NodePostgresAdapter({\n ...this.config,\n databaseURL: url.toString(),\n });\n } else {\n return new NodePostgresAdapter({ ...this.config, ...params });\n }\n }\n\n getDatabase(): string {\n const url = this.getURL();\n return url ? url.pathname.slice(1) : (this.config.database as string);\n }\n\n getUser(): string {\n const url = this.getURL();\n return url ? url.username : (this.config.user as string);\n }\n\n getSchema(): string | undefined {\n return this.schema;\n }\n\n getHost(): string {\n const url = this.getURL();\n return url ? url.hostname : (this.config.host as string);\n }\n\n connect(): Promise<PoolClient> {\n return this.pool.connect();\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return performQuery(this, text, values) as never;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return performQuery(this, text, values, 'array') as never;\n }\n\n async transaction<Result>(\n options: string | undefined,\n cb: (adapter: NodePostgresTransactionAdapter) => Promise<Result>,\n ): Promise<Result> {\n const client = await this.connect();\n try {\n await setSearchPath(client, this.schema);\n await performQueryOnClient(\n client,\n options ? 'BEGIN ' + options : 'BEGIN',\n );\n let result;\n try {\n result = await cb(new NodePostgresTransactionAdapter(this, client));\n } catch (err) {\n await performQueryOnClient(client, 'ROLLBACK');\n throw err;\n }\n await performQueryOnClient(client, 'COMMIT');\n return result;\n } finally {\n client.release();\n }\n }\n\n close(): Promise<void> {\n const { pool } = this;\n this.pool = new pg.Pool(this.config);\n return pool.end();\n }\n\n assignError(to: QueryError, dbError: Error) {\n const from = dbError as DatabaseError;\n to.message = from.message;\n (to as { length?: number }).length = from.length;\n (to as { name?: string }).name = from.name;\n to.severity = from.severity;\n to.code = from.code;\n to.detail = from.detail;\n to.hint = from.hint;\n to.position = from.position;\n to.internalPosition = from.internalPosition;\n to.internalQuery = from.internalQuery;\n to.where = from.where;\n to.schema = from.schema;\n to.table = from.table;\n to.column = from.column;\n to.dataType = from.dataType;\n to.constraint = from.constraint;\n to.file = from.file;\n to.line = from.line;\n to.routine = from.routine;\n }\n}\n\nconst defaultTypesConfig = {\n getTypeParser(id: number) {\n return defaultTypeParsers[id] || returnArg;\n },\n};\n\ninterface ConnectionSchema {\n connection: { schema?: string };\n}\n\nconst setSearchPath = (client: PoolClient, schema?: string) => {\n if ((client as unknown as ConnectionSchema).connection.schema !== schema) {\n (client as unknown as ConnectionSchema).connection.schema = schema;\n return client.query(`SET search_path = ${schema || 'public'}`);\n }\n return;\n};\n\nconst performQuery = async (\n adapter: NodePostgresAdapter,\n text: string,\n values?: unknown[],\n rowMode?: 'array',\n) => {\n const client = await adapter.connect();\n try {\n await setSearchPath(client, adapter.schema);\n return await performQueryOnClient(client, text, values, rowMode);\n } finally {\n client.release();\n }\n};\n\nconst performQueryOnClient = (\n client: PoolClient,\n text: string,\n values?: unknown[],\n rowMode?: 'array',\n) => {\n const params = {\n text,\n values,\n rowMode,\n types: defaultTypesConfig,\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return client.query(params as any);\n};\n\nexport class NodePostgresTransactionAdapter implements AdapterBase {\n pool: Pool;\n config: PoolConfig;\n schema?: string;\n errorClass = DatabaseError;\n\n constructor(public adapter: NodePostgresAdapter, public client: PoolClient) {\n this.pool = adapter.pool;\n this.config = adapter.config;\n this.schema = adapter.schema;\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): AdapterBase {\n return this.adapter.reconfigure(params);\n }\n\n getDatabase(): string {\n return this.adapter.getDatabase();\n }\n\n getUser(): string {\n return this.adapter.getUser();\n }\n\n getSchema(): string | undefined {\n return this.adapter.getSchema();\n }\n\n getHost(): string {\n return this.adapter.getHost();\n }\n\n connect(): Promise<PoolClient> {\n return Promise.resolve(this.client);\n }\n\n async query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return await performQueryOnClient(this.client, text, values);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return await performQueryOnClient(this.client, text, values, 'array');\n }\n\n async transaction<Result>(\n _options: string | undefined,\n cb: (adapter: NodePostgresTransactionAdapter) => Promise<Result>,\n ): Promise<Result> {\n return await cb(this);\n }\n\n close() {\n return this.adapter.close();\n }\n\n assignError(to: QueryError, from: Error) {\n return this.adapter.assignError(to, from);\n }\n}\n"],"names":["createDbWithAdapter","DatabaseError","setConnectRetryConfig","emptyObject","wrapAdapterFnWithConnectRetry","returnArg"],"mappings":"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"}
1
+ {"version":3,"file":"node-postgres.js","sources":["../src/adapters/node-postgres.ts"],"sourcesContent":["import pg, { DatabaseError, Pool, PoolClient, PoolConfig } from 'pg';\nimport {\n AdapterBase,\n AdapterConfigBase,\n ColumnSchemaConfig,\n emptyObject,\n QueryArraysResult,\n QueryError,\n QueryResult,\n QueryResultRow,\n returnArg,\n setConnectRetryConfig,\n wrapAdapterFnWithConnectRetry,\n} from 'orchid-core';\nimport {\n DefaultColumnTypes,\n DefaultSchemaConfig,\n DbOptions,\n DbResult,\n createDbWithAdapter,\n} from 'pqb';\n\nexport const createDb = <\n SchemaConfig extends ColumnSchemaConfig = DefaultSchemaConfig,\n ColumnTypes = DefaultColumnTypes<SchemaConfig>,\n>({\n log,\n ...options\n}: DbOptions<SchemaConfig, ColumnTypes> &\n Omit<NodePostgresAdapterOptions, 'log'>): DbResult<ColumnTypes> => {\n return createDbWithAdapter({\n ...options,\n log,\n adapter: new NodePostgresAdapter(options),\n });\n};\n\nconst { types } = pg;\n\nexport interface TypeParsers {\n [K: number]: (input: string) => unknown;\n}\n\nconst defaultTypeParsers: TypeParsers = {};\n\nfor (const key in types.builtins) {\n const id = types.builtins[key as keyof typeof types.builtins];\n defaultTypeParsers[id] = types.getTypeParser(id);\n}\n\n[\n types.builtins.DATE,\n types.builtins.TIMESTAMP,\n types.builtins.TIMESTAMPTZ,\n types.builtins.CIRCLE,\n types.builtins.BYTEA,\n].forEach((id) => {\n delete defaultTypeParsers[id];\n});\n\nexport interface AdapterConfig\n extends AdapterConfigBase,\n Omit<PoolConfig, 'types' | 'connectionString'> {\n schema?: string;\n databaseURL?: string;\n}\n\nexport type NodePostgresAdapterOptions = Omit<AdapterConfig, 'log'>;\n\nexport class NodePostgresAdapter implements AdapterBase {\n pool: Pool;\n schema?: string;\n errorClass = DatabaseError;\n\n constructor(public config: NodePostgresAdapterOptions) {\n let schema = config.schema;\n if (config.databaseURL) {\n const url = new URL(config.databaseURL);\n\n const ssl = url.searchParams.get('ssl');\n\n if (ssl === 'false') {\n url.searchParams.delete('ssl');\n } else if (!config.ssl && ssl === 'true') {\n config.ssl = true;\n }\n\n if (!schema) {\n schema = url.searchParams.get('schema') || undefined;\n }\n\n config.databaseURL = url.toString();\n (config as PoolConfig).connectionString = config.databaseURL;\n }\n\n if (schema) this.schema = schema === 'public' ? undefined : schema;\n\n this.config = config;\n this.pool = new pg.Pool(config);\n\n if (config.connectRetry) {\n setConnectRetryConfig(\n this,\n config.connectRetry === true ? emptyObject : config.connectRetry,\n );\n\n this.connect = wrapAdapterFnWithConnectRetry(this, () =>\n this.pool.connect(),\n );\n }\n }\n\n private getURL(): URL | undefined {\n return this.config.databaseURL\n ? new URL(this.config.databaseURL)\n : undefined;\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): NodePostgresAdapter {\n const url = this.getURL();\n if (url) {\n if ('database' in params) {\n url.pathname = `/${params.database}`;\n }\n\n if (params.user !== undefined) {\n url.username = params.user;\n }\n\n if (params.password !== undefined) {\n url.password = params.password;\n }\n\n if (params.schema !== undefined) {\n url.searchParams.set('schema', params.schema);\n }\n\n return new NodePostgresAdapter({\n ...this.config,\n databaseURL: url.toString(),\n });\n } else {\n return new NodePostgresAdapter({ ...this.config, ...params });\n }\n }\n\n getDatabase(): string {\n const url = this.getURL();\n return url ? url.pathname.slice(1) : (this.config.database as string);\n }\n\n getUser(): string {\n const url = this.getURL();\n return url ? url.username : (this.config.user as string);\n }\n\n getSchema(): string | undefined {\n return this.schema;\n }\n\n getHost(): string {\n const url = this.getURL();\n return url ? url.hostname : (this.config.host as string);\n }\n\n connect(): Promise<PoolClient> {\n return this.pool.connect();\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return performQuery(this, text, values) as never;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return performQuery(this, text, values, 'array') as never;\n }\n\n async transaction<Result>(\n options: string | undefined,\n cb: (adapter: NodePostgresTransactionAdapter) => Promise<Result>,\n ): Promise<Result> {\n const client = await this.connect();\n try {\n await setSearchPath(client, this.schema);\n await performQueryOnClient(\n client,\n options ? 'BEGIN ' + options : 'BEGIN',\n );\n let result;\n try {\n result = await cb(new NodePostgresTransactionAdapter(this, client));\n } catch (err) {\n await performQueryOnClient(client, 'ROLLBACK');\n throw err;\n }\n await performQueryOnClient(client, 'COMMIT');\n return result;\n } finally {\n client.release();\n }\n }\n\n close(): Promise<void> {\n const { pool } = this;\n this.pool = new pg.Pool(this.config);\n return pool.end();\n }\n\n assignError(to: QueryError, dbError: Error) {\n const from = dbError as DatabaseError;\n to.message = from.message;\n (to as { length?: number }).length = from.length;\n (to as { name?: string }).name = from.name;\n to.severity = from.severity;\n to.code = from.code;\n to.detail = from.detail;\n to.hint = from.hint;\n to.position = from.position;\n to.internalPosition = from.internalPosition;\n to.internalQuery = from.internalQuery;\n to.where = from.where;\n to.schema = from.schema;\n to.table = from.table;\n to.column = from.column;\n to.dataType = from.dataType;\n to.constraint = from.constraint;\n to.file = from.file;\n to.line = from.line;\n to.routine = from.routine;\n }\n}\n\nconst defaultTypesConfig = {\n getTypeParser(id: number) {\n return defaultTypeParsers[id] || returnArg;\n },\n};\n\ninterface ConnectionSchema {\n connection: { schema?: string };\n}\n\nconst setSearchPath = (client: PoolClient, schema?: string) => {\n if ((client as unknown as ConnectionSchema).connection.schema !== schema) {\n (client as unknown as ConnectionSchema).connection.schema = schema;\n return client.query(`SET search_path = ${schema || 'public'}`);\n }\n return;\n};\n\nconst performQuery = async (\n adapter: NodePostgresAdapter,\n text: string,\n values?: unknown[],\n rowMode?: 'array',\n) => {\n const client = await adapter.connect();\n try {\n await setSearchPath(client, adapter.schema);\n return await performQueryOnClient(client, text, values, rowMode);\n } finally {\n client.release();\n }\n};\n\nconst performQueryOnClient = (\n client: PoolClient,\n text: string,\n values?: unknown[],\n rowMode?: 'array',\n) => {\n const params = {\n text,\n values,\n rowMode,\n types: defaultTypesConfig,\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return client.query(params as any);\n};\n\nexport class NodePostgresTransactionAdapter implements AdapterBase {\n pool: Pool;\n config: PoolConfig;\n schema?: string;\n errorClass = DatabaseError;\n\n constructor(public adapter: NodePostgresAdapter, public client: PoolClient) {\n this.pool = adapter.pool;\n this.config = adapter.config;\n this.schema = adapter.schema;\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): AdapterBase {\n return this.adapter.reconfigure(params);\n }\n\n getDatabase(): string {\n return this.adapter.getDatabase();\n }\n\n getUser(): string {\n return this.adapter.getUser();\n }\n\n getSchema(): string | undefined {\n return this.adapter.getSchema();\n }\n\n getHost(): string {\n return this.adapter.getHost();\n }\n\n connect(): Promise<PoolClient> {\n return Promise.resolve(this.client);\n }\n\n async query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return await performQueryOnClient(this.client, text, values);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return await performQueryOnClient(this.client, text, values, 'array');\n }\n\n async transaction<Result>(\n _options: string | undefined,\n cb: (adapter: NodePostgresTransactionAdapter) => Promise<Result>,\n ): Promise<Result> {\n return await cb(this);\n }\n\n close() {\n return this.adapter.close();\n }\n\n assignError(to: QueryError, from: Error) {\n return this.adapter.assignError(to, from);\n }\n}\n"],"names":["createDbWithAdapter","DatabaseError","setConnectRetryConfig","emptyObject","wrapAdapterFnWithConnectRetry","returnArg"],"mappings":"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"}
@@ -22,7 +22,8 @@ for (const key in types.builtins) {
22
22
  types.builtins.DATE,
23
23
  types.builtins.TIMESTAMP,
24
24
  types.builtins.TIMESTAMPTZ,
25
- types.builtins.CIRCLE
25
+ types.builtins.CIRCLE,
26
+ types.builtins.BYTEA
26
27
  ].forEach((id) => {
27
28
  delete defaultTypeParsers[id];
28
29
  });
@@ -1 +1 @@
1
- {"version":3,"file":"node-postgres.mjs","sources":["../src/adapters/node-postgres.ts"],"sourcesContent":["import pg, { DatabaseError, Pool, PoolClient, PoolConfig } from 'pg';\nimport {\n AdapterBase,\n AdapterConfigBase,\n ColumnSchemaConfig,\n emptyObject,\n QueryArraysResult,\n QueryError,\n QueryResult,\n QueryResultRow,\n returnArg,\n setConnectRetryConfig,\n wrapAdapterFnWithConnectRetry,\n} from 'orchid-core';\nimport {\n DefaultColumnTypes,\n DefaultSchemaConfig,\n DbOptions,\n DbResult,\n createDbWithAdapter,\n} from 'pqb';\n\nexport const createDb = <\n SchemaConfig extends ColumnSchemaConfig = DefaultSchemaConfig,\n ColumnTypes = DefaultColumnTypes<SchemaConfig>,\n>({\n log,\n ...options\n}: DbOptions<SchemaConfig, ColumnTypes> &\n Omit<NodePostgresAdapterOptions, 'log'>): DbResult<ColumnTypes> => {\n return createDbWithAdapter({\n ...options,\n log,\n adapter: new NodePostgresAdapter(options),\n });\n};\n\nconst { types } = pg;\n\nexport interface TypeParsers {\n [K: number]: (input: string) => unknown;\n}\n\nconst defaultTypeParsers: TypeParsers = {};\n\nfor (const key in types.builtins) {\n const id = types.builtins[key as keyof typeof types.builtins];\n defaultTypeParsers[id] = types.getTypeParser(id);\n}\n\n[\n types.builtins.DATE,\n types.builtins.TIMESTAMP,\n types.builtins.TIMESTAMPTZ,\n types.builtins.CIRCLE,\n].forEach((id) => {\n delete defaultTypeParsers[id];\n});\n\nexport interface AdapterConfig\n extends AdapterConfigBase,\n Omit<PoolConfig, 'types' | 'connectionString'> {\n schema?: string;\n databaseURL?: string;\n}\n\nexport type NodePostgresAdapterOptions = Omit<AdapterConfig, 'log'>;\n\nexport class NodePostgresAdapter implements AdapterBase {\n pool: Pool;\n schema?: string;\n errorClass = DatabaseError;\n\n constructor(public config: NodePostgresAdapterOptions) {\n let schema = config.schema;\n if (config.databaseURL) {\n const url = new URL(config.databaseURL);\n\n const ssl = url.searchParams.get('ssl');\n\n if (ssl === 'false') {\n url.searchParams.delete('ssl');\n } else if (!config.ssl && ssl === 'true') {\n config.ssl = true;\n }\n\n if (!schema) {\n schema = url.searchParams.get('schema') || undefined;\n }\n\n config.databaseURL = url.toString();\n (config as PoolConfig).connectionString = config.databaseURL;\n }\n\n if (schema) this.schema = schema === 'public' ? undefined : schema;\n\n this.config = config;\n this.pool = new pg.Pool(config);\n\n if (config.connectRetry) {\n setConnectRetryConfig(\n this,\n config.connectRetry === true ? emptyObject : config.connectRetry,\n );\n\n this.connect = wrapAdapterFnWithConnectRetry(this, () =>\n this.pool.connect(),\n );\n }\n }\n\n private getURL(): URL | undefined {\n return this.config.databaseURL\n ? new URL(this.config.databaseURL)\n : undefined;\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): NodePostgresAdapter {\n const url = this.getURL();\n if (url) {\n if ('database' in params) {\n url.pathname = `/${params.database}`;\n }\n\n if (params.user !== undefined) {\n url.username = params.user;\n }\n\n if (params.password !== undefined) {\n url.password = params.password;\n }\n\n if (params.schema !== undefined) {\n url.searchParams.set('schema', params.schema);\n }\n\n return new NodePostgresAdapter({\n ...this.config,\n databaseURL: url.toString(),\n });\n } else {\n return new NodePostgresAdapter({ ...this.config, ...params });\n }\n }\n\n getDatabase(): string {\n const url = this.getURL();\n return url ? url.pathname.slice(1) : (this.config.database as string);\n }\n\n getUser(): string {\n const url = this.getURL();\n return url ? url.username : (this.config.user as string);\n }\n\n getSchema(): string | undefined {\n return this.schema;\n }\n\n getHost(): string {\n const url = this.getURL();\n return url ? url.hostname : (this.config.host as string);\n }\n\n connect(): Promise<PoolClient> {\n return this.pool.connect();\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return performQuery(this, text, values) as never;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return performQuery(this, text, values, 'array') as never;\n }\n\n async transaction<Result>(\n options: string | undefined,\n cb: (adapter: NodePostgresTransactionAdapter) => Promise<Result>,\n ): Promise<Result> {\n const client = await this.connect();\n try {\n await setSearchPath(client, this.schema);\n await performQueryOnClient(\n client,\n options ? 'BEGIN ' + options : 'BEGIN',\n );\n let result;\n try {\n result = await cb(new NodePostgresTransactionAdapter(this, client));\n } catch (err) {\n await performQueryOnClient(client, 'ROLLBACK');\n throw err;\n }\n await performQueryOnClient(client, 'COMMIT');\n return result;\n } finally {\n client.release();\n }\n }\n\n close(): Promise<void> {\n const { pool } = this;\n this.pool = new pg.Pool(this.config);\n return pool.end();\n }\n\n assignError(to: QueryError, dbError: Error) {\n const from = dbError as DatabaseError;\n to.message = from.message;\n (to as { length?: number }).length = from.length;\n (to as { name?: string }).name = from.name;\n to.severity = from.severity;\n to.code = from.code;\n to.detail = from.detail;\n to.hint = from.hint;\n to.position = from.position;\n to.internalPosition = from.internalPosition;\n to.internalQuery = from.internalQuery;\n to.where = from.where;\n to.schema = from.schema;\n to.table = from.table;\n to.column = from.column;\n to.dataType = from.dataType;\n to.constraint = from.constraint;\n to.file = from.file;\n to.line = from.line;\n to.routine = from.routine;\n }\n}\n\nconst defaultTypesConfig = {\n getTypeParser(id: number) {\n return defaultTypeParsers[id] || returnArg;\n },\n};\n\ninterface ConnectionSchema {\n connection: { schema?: string };\n}\n\nconst setSearchPath = (client: PoolClient, schema?: string) => {\n if ((client as unknown as ConnectionSchema).connection.schema !== schema) {\n (client as unknown as ConnectionSchema).connection.schema = schema;\n return client.query(`SET search_path = ${schema || 'public'}`);\n }\n return;\n};\n\nconst performQuery = async (\n adapter: NodePostgresAdapter,\n text: string,\n values?: unknown[],\n rowMode?: 'array',\n) => {\n const client = await adapter.connect();\n try {\n await setSearchPath(client, adapter.schema);\n return await performQueryOnClient(client, text, values, rowMode);\n } finally {\n client.release();\n }\n};\n\nconst performQueryOnClient = (\n client: PoolClient,\n text: string,\n values?: unknown[],\n rowMode?: 'array',\n) => {\n const params = {\n text,\n values,\n rowMode,\n types: defaultTypesConfig,\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return client.query(params as any);\n};\n\nexport class NodePostgresTransactionAdapter implements AdapterBase {\n pool: Pool;\n config: PoolConfig;\n schema?: string;\n errorClass = DatabaseError;\n\n constructor(public adapter: NodePostgresAdapter, public client: PoolClient) {\n this.pool = adapter.pool;\n this.config = adapter.config;\n this.schema = adapter.schema;\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): AdapterBase {\n return this.adapter.reconfigure(params);\n }\n\n getDatabase(): string {\n return this.adapter.getDatabase();\n }\n\n getUser(): string {\n return this.adapter.getUser();\n }\n\n getSchema(): string | undefined {\n return this.adapter.getSchema();\n }\n\n getHost(): string {\n return this.adapter.getHost();\n }\n\n connect(): Promise<PoolClient> {\n return Promise.resolve(this.client);\n }\n\n async query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return await performQueryOnClient(this.client, text, values);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return await performQueryOnClient(this.client, text, values, 'array');\n }\n\n async transaction<Result>(\n _options: string | undefined,\n cb: (adapter: NodePostgresTransactionAdapter) => Promise<Result>,\n ): Promise<Result> {\n return await cb(this);\n }\n\n close() {\n return this.adapter.close();\n }\n\n assignError(to: QueryError, from: Error) {\n return this.adapter.assignError(to, from);\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-postgres.mjs","sources":["../src/adapters/node-postgres.ts"],"sourcesContent":["import pg, { DatabaseError, Pool, PoolClient, PoolConfig } from 'pg';\nimport {\n AdapterBase,\n AdapterConfigBase,\n ColumnSchemaConfig,\n emptyObject,\n QueryArraysResult,\n QueryError,\n QueryResult,\n QueryResultRow,\n returnArg,\n setConnectRetryConfig,\n wrapAdapterFnWithConnectRetry,\n} from 'orchid-core';\nimport {\n DefaultColumnTypes,\n DefaultSchemaConfig,\n DbOptions,\n DbResult,\n createDbWithAdapter,\n} from 'pqb';\n\nexport const createDb = <\n SchemaConfig extends ColumnSchemaConfig = DefaultSchemaConfig,\n ColumnTypes = DefaultColumnTypes<SchemaConfig>,\n>({\n log,\n ...options\n}: DbOptions<SchemaConfig, ColumnTypes> &\n Omit<NodePostgresAdapterOptions, 'log'>): DbResult<ColumnTypes> => {\n return createDbWithAdapter({\n ...options,\n log,\n adapter: new NodePostgresAdapter(options),\n });\n};\n\nconst { types } = pg;\n\nexport interface TypeParsers {\n [K: number]: (input: string) => unknown;\n}\n\nconst defaultTypeParsers: TypeParsers = {};\n\nfor (const key in types.builtins) {\n const id = types.builtins[key as keyof typeof types.builtins];\n defaultTypeParsers[id] = types.getTypeParser(id);\n}\n\n[\n types.builtins.DATE,\n types.builtins.TIMESTAMP,\n types.builtins.TIMESTAMPTZ,\n types.builtins.CIRCLE,\n types.builtins.BYTEA,\n].forEach((id) => {\n delete defaultTypeParsers[id];\n});\n\nexport interface AdapterConfig\n extends AdapterConfigBase,\n Omit<PoolConfig, 'types' | 'connectionString'> {\n schema?: string;\n databaseURL?: string;\n}\n\nexport type NodePostgresAdapterOptions = Omit<AdapterConfig, 'log'>;\n\nexport class NodePostgresAdapter implements AdapterBase {\n pool: Pool;\n schema?: string;\n errorClass = DatabaseError;\n\n constructor(public config: NodePostgresAdapterOptions) {\n let schema = config.schema;\n if (config.databaseURL) {\n const url = new URL(config.databaseURL);\n\n const ssl = url.searchParams.get('ssl');\n\n if (ssl === 'false') {\n url.searchParams.delete('ssl');\n } else if (!config.ssl && ssl === 'true') {\n config.ssl = true;\n }\n\n if (!schema) {\n schema = url.searchParams.get('schema') || undefined;\n }\n\n config.databaseURL = url.toString();\n (config as PoolConfig).connectionString = config.databaseURL;\n }\n\n if (schema) this.schema = schema === 'public' ? undefined : schema;\n\n this.config = config;\n this.pool = new pg.Pool(config);\n\n if (config.connectRetry) {\n setConnectRetryConfig(\n this,\n config.connectRetry === true ? emptyObject : config.connectRetry,\n );\n\n this.connect = wrapAdapterFnWithConnectRetry(this, () =>\n this.pool.connect(),\n );\n }\n }\n\n private getURL(): URL | undefined {\n return this.config.databaseURL\n ? new URL(this.config.databaseURL)\n : undefined;\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): NodePostgresAdapter {\n const url = this.getURL();\n if (url) {\n if ('database' in params) {\n url.pathname = `/${params.database}`;\n }\n\n if (params.user !== undefined) {\n url.username = params.user;\n }\n\n if (params.password !== undefined) {\n url.password = params.password;\n }\n\n if (params.schema !== undefined) {\n url.searchParams.set('schema', params.schema);\n }\n\n return new NodePostgresAdapter({\n ...this.config,\n databaseURL: url.toString(),\n });\n } else {\n return new NodePostgresAdapter({ ...this.config, ...params });\n }\n }\n\n getDatabase(): string {\n const url = this.getURL();\n return url ? url.pathname.slice(1) : (this.config.database as string);\n }\n\n getUser(): string {\n const url = this.getURL();\n return url ? url.username : (this.config.user as string);\n }\n\n getSchema(): string | undefined {\n return this.schema;\n }\n\n getHost(): string {\n const url = this.getURL();\n return url ? url.hostname : (this.config.host as string);\n }\n\n connect(): Promise<PoolClient> {\n return this.pool.connect();\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return performQuery(this, text, values) as never;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return performQuery(this, text, values, 'array') as never;\n }\n\n async transaction<Result>(\n options: string | undefined,\n cb: (adapter: NodePostgresTransactionAdapter) => Promise<Result>,\n ): Promise<Result> {\n const client = await this.connect();\n try {\n await setSearchPath(client, this.schema);\n await performQueryOnClient(\n client,\n options ? 'BEGIN ' + options : 'BEGIN',\n );\n let result;\n try {\n result = await cb(new NodePostgresTransactionAdapter(this, client));\n } catch (err) {\n await performQueryOnClient(client, 'ROLLBACK');\n throw err;\n }\n await performQueryOnClient(client, 'COMMIT');\n return result;\n } finally {\n client.release();\n }\n }\n\n close(): Promise<void> {\n const { pool } = this;\n this.pool = new pg.Pool(this.config);\n return pool.end();\n }\n\n assignError(to: QueryError, dbError: Error) {\n const from = dbError as DatabaseError;\n to.message = from.message;\n (to as { length?: number }).length = from.length;\n (to as { name?: string }).name = from.name;\n to.severity = from.severity;\n to.code = from.code;\n to.detail = from.detail;\n to.hint = from.hint;\n to.position = from.position;\n to.internalPosition = from.internalPosition;\n to.internalQuery = from.internalQuery;\n to.where = from.where;\n to.schema = from.schema;\n to.table = from.table;\n to.column = from.column;\n to.dataType = from.dataType;\n to.constraint = from.constraint;\n to.file = from.file;\n to.line = from.line;\n to.routine = from.routine;\n }\n}\n\nconst defaultTypesConfig = {\n getTypeParser(id: number) {\n return defaultTypeParsers[id] || returnArg;\n },\n};\n\ninterface ConnectionSchema {\n connection: { schema?: string };\n}\n\nconst setSearchPath = (client: PoolClient, schema?: string) => {\n if ((client as unknown as ConnectionSchema).connection.schema !== schema) {\n (client as unknown as ConnectionSchema).connection.schema = schema;\n return client.query(`SET search_path = ${schema || 'public'}`);\n }\n return;\n};\n\nconst performQuery = async (\n adapter: NodePostgresAdapter,\n text: string,\n values?: unknown[],\n rowMode?: 'array',\n) => {\n const client = await adapter.connect();\n try {\n await setSearchPath(client, adapter.schema);\n return await performQueryOnClient(client, text, values, rowMode);\n } finally {\n client.release();\n }\n};\n\nconst performQueryOnClient = (\n client: PoolClient,\n text: string,\n values?: unknown[],\n rowMode?: 'array',\n) => {\n const params = {\n text,\n values,\n rowMode,\n types: defaultTypesConfig,\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return client.query(params as any);\n};\n\nexport class NodePostgresTransactionAdapter implements AdapterBase {\n pool: Pool;\n config: PoolConfig;\n schema?: string;\n errorClass = DatabaseError;\n\n constructor(public adapter: NodePostgresAdapter, public client: PoolClient) {\n this.pool = adapter.pool;\n this.config = adapter.config;\n this.schema = adapter.schema;\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): AdapterBase {\n return this.adapter.reconfigure(params);\n }\n\n getDatabase(): string {\n return this.adapter.getDatabase();\n }\n\n getUser(): string {\n return this.adapter.getUser();\n }\n\n getSchema(): string | undefined {\n return this.adapter.getSchema();\n }\n\n getHost(): string {\n return this.adapter.getHost();\n }\n\n connect(): Promise<PoolClient> {\n return Promise.resolve(this.client);\n }\n\n async query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return await performQueryOnClient(this.client, text, values);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return await performQueryOnClient(this.client, text, values, 'array');\n }\n\n async transaction<Result>(\n _options: string | undefined,\n cb: (adapter: NodePostgresTransactionAdapter) => Promise<Result>,\n ): Promise<Result> {\n return await cb(this);\n }\n\n close() {\n return this.adapter.close();\n }\n\n assignError(to: QueryError, from: Error) {\n return this.adapter.assignError(to, from);\n }\n}\n"],"names":[],"mappings":";;;;AAsBO,MAAM,WAAW,CAGtB;AAAA,EACA,GAAA;AAAA,EACA,GAAG,OAAA;AACL,CACqE,KAAA;AACnE,EAAA,OAAO,mBAAoB,CAAA;AAAA,IACzB,GAAG,OAAA;AAAA,IACH,GAAA;AAAA,IACA,OAAA,EAAS,IAAI,mBAAA,CAAoB,OAAO,CAAA;AAAA,GACzC,CAAA,CAAA;AACH,EAAA;AAEA,MAAM,EAAE,OAAU,GAAA,EAAA,CAAA;AAMlB,MAAM,qBAAkC,EAAC,CAAA;AAEzC,KAAW,MAAA,GAAA,IAAO,MAAM,QAAU,EAAA;AAChC,EAAM,MAAA,EAAA,GAAK,KAAM,CAAA,QAAA,CAAS,GAAkC,CAAA,CAAA;AAC5D,EAAA,kBAAA,CAAmB,EAAE,CAAA,GAAI,KAAM,CAAA,aAAA,CAAc,EAAE,CAAA,CAAA;AACjD,CAAA;AAEA;AAAA,EACE,MAAM,QAAS,CAAA,IAAA;AAAA,EACf,MAAM,QAAS,CAAA,SAAA;AAAA,EACf,MAAM,QAAS,CAAA,WAAA;AAAA,EACf,MAAM,QAAS,CAAA,MAAA;AAAA,EACf,MAAM,QAAS,CAAA,KAAA;AACjB,CAAE,CAAA,OAAA,CAAQ,CAAC,EAAO,KAAA;AAChB,EAAA,OAAO,mBAAmB,EAAE,CAAA,CAAA;AAC9B,CAAC,CAAA,CAAA;AAWM,MAAM,mBAA2C,CAAA;AAAA,EAKtD,YAAmB,MAAoC,EAAA;AAApC,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA,CAAA;AAFnB,IAAa,IAAA,CAAA,UAAA,GAAA,aAAA,CAAA;AAGX,IAAA,IAAI,SAAS,MAAO,CAAA,MAAA,CAAA;AACpB,IAAA,IAAI,OAAO,WAAa,EAAA;AACtB,MAAA,MAAM,GAAM,GAAA,IAAI,GAAI,CAAA,MAAA,CAAO,WAAW,CAAA,CAAA;AAEtC,MAAA,MAAM,GAAM,GAAA,GAAA,CAAI,YAAa,CAAA,GAAA,CAAI,KAAK,CAAA,CAAA;AAEtC,MAAA,IAAI,QAAQ,OAAS,EAAA;AACnB,QAAI,GAAA,CAAA,YAAA,CAAa,OAAO,KAAK,CAAA,CAAA;AAAA,OACpB,MAAA,IAAA,CAAC,MAAO,CAAA,GAAA,IAAO,QAAQ,MAAQ,EAAA;AACxC,QAAA,MAAA,CAAO,GAAM,GAAA,IAAA,CAAA;AAAA,OACf;AAEA,MAAA,IAAI,CAAC,MAAQ,EAAA;AACX,QAAA,MAAA,GAAS,GAAI,CAAA,YAAA,CAAa,GAAI,CAAA,QAAQ,CAAK,IAAA,KAAA,CAAA,CAAA;AAAA,OAC7C;AAEA,MAAO,MAAA,CAAA,WAAA,GAAc,IAAI,QAAS,EAAA,CAAA;AAClC,MAAC,MAAA,CAAsB,mBAAmB,MAAO,CAAA,WAAA,CAAA;AAAA,KACnD;AAEA,IAAA,IAAI,MAAQ,EAAA,IAAA,CAAK,MAAS,GAAA,MAAA,KAAW,WAAW,KAAY,CAAA,GAAA,MAAA,CAAA;AAE5D,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA,CAAA;AACd,IAAA,IAAA,CAAK,IAAO,GAAA,IAAI,EAAG,CAAA,IAAA,CAAK,MAAM,CAAA,CAAA;AAE9B,IAAA,IAAI,OAAO,YAAc,EAAA;AACvB,MAAA,qBAAA;AAAA,QACE,IAAA;AAAA,QACA,MAAO,CAAA,YAAA,KAAiB,IAAO,GAAA,WAAA,GAAc,MAAO,CAAA,YAAA;AAAA,OACtD,CAAA;AAEA,MAAA,IAAA,CAAK,OAAU,GAAA,6BAAA;AAAA,QAA8B,IAAA;AAAA,QAAM,MACjD,IAAK,CAAA,IAAA,CAAK,OAAQ,EAAA;AAAA,OACpB,CAAA;AAAA,KACF;AAAA,GACF;AAAA,EAEQ,MAA0B,GAAA;AAChC,IAAO,OAAA,IAAA,CAAK,OAAO,WACf,GAAA,IAAI,IAAI,IAAK,CAAA,MAAA,CAAO,WAAW,CAC/B,GAAA,KAAA,CAAA,CAAA;AAAA,GACN;AAAA,EAEA,YAAY,MAKY,EAAA;AACtB,IAAM,MAAA,GAAA,GAAM,KAAK,MAAO,EAAA,CAAA;AACxB,IAAA,IAAI,GAAK,EAAA;AACP,MAAA,IAAI,cAAc,MAAQ,EAAA;AACxB,QAAI,GAAA,CAAA,QAAA,GAAW,CAAI,CAAA,EAAA,MAAA,CAAO,QAAQ,CAAA,CAAA,CAAA;AAAA,OACpC;AAEA,MAAI,IAAA,MAAA,CAAO,SAAS,KAAW,CAAA,EAAA;AAC7B,QAAA,GAAA,CAAI,WAAW,MAAO,CAAA,IAAA,CAAA;AAAA,OACxB;AAEA,MAAI,IAAA,MAAA,CAAO,aAAa,KAAW,CAAA,EAAA;AACjC,QAAA,GAAA,CAAI,WAAW,MAAO,CAAA,QAAA,CAAA;AAAA,OACxB;AAEA,MAAI,IAAA,MAAA,CAAO,WAAW,KAAW,CAAA,EAAA;AAC/B,QAAA,GAAA,CAAI,YAAa,CAAA,GAAA,CAAI,QAAU,EAAA,MAAA,CAAO,MAAM,CAAA,CAAA;AAAA,OAC9C;AAEA,MAAA,OAAO,IAAI,mBAAoB,CAAA;AAAA,QAC7B,GAAG,IAAK,CAAA,MAAA;AAAA,QACR,WAAA,EAAa,IAAI,QAAS,EAAA;AAAA,OAC3B,CAAA,CAAA;AAAA,KACI,MAAA;AACL,MAAO,OAAA,IAAI,oBAAoB,EAAE,GAAG,KAAK,MAAQ,EAAA,GAAG,QAAQ,CAAA,CAAA;AAAA,KAC9D;AAAA,GACF;AAAA,EAEA,WAAsB,GAAA;AACpB,IAAM,MAAA,GAAA,GAAM,KAAK,MAAO,EAAA,CAAA;AACxB,IAAA,OAAO,MAAM,GAAI,CAAA,QAAA,CAAS,MAAM,CAAC,CAAA,GAAK,KAAK,MAAO,CAAA,QAAA,CAAA;AAAA,GACpD;AAAA,EAEA,OAAkB,GAAA;AAChB,IAAM,MAAA,GAAA,GAAM,KAAK,MAAO,EAAA,CAAA;AACxB,IAAA,OAAO,GAAM,GAAA,GAAA,CAAI,QAAY,GAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAA;AAAA,GAC3C;AAAA,EAEA,SAAgC,GAAA;AAC9B,IAAA,OAAO,IAAK,CAAA,MAAA,CAAA;AAAA,GACd;AAAA,EAEA,OAAkB,GAAA;AAChB,IAAM,MAAA,GAAA,GAAM,KAAK,MAAO,EAAA,CAAA;AACxB,IAAA,OAAO,GAAM,GAAA,GAAA,CAAI,QAAY,GAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAA;AAAA,GAC3C;AAAA,EAEA,OAA+B,GAAA;AAC7B,IAAO,OAAA,IAAA,CAAK,KAAK,OAAQ,EAAA,CAAA;AAAA,GAC3B;AAAA,EAEA,KAAA,CACE,MACA,MACyB,EAAA;AACzB,IAAO,OAAA,YAAA,CAAa,IAAM,EAAA,IAAA,EAAM,MAAM,CAAA,CAAA;AAAA,GACxC;AAAA;AAAA,EAGA,MAAA,CACE,MACA,MAC+B,EAAA;AAC/B,IAAA,OAAO,YAAa,CAAA,IAAA,EAAM,IAAM,EAAA,MAAA,EAAQ,OAAO,CAAA,CAAA;AAAA,GACjD;AAAA,EAEA,MAAM,WACJ,CAAA,OAAA,EACA,EACiB,EAAA;AACjB,IAAM,MAAA,MAAA,GAAS,MAAM,IAAA,CAAK,OAAQ,EAAA,CAAA;AAClC,IAAI,IAAA;AACF,MAAM,MAAA,aAAA,CAAc,MAAQ,EAAA,IAAA,CAAK,MAAM,CAAA,CAAA;AACvC,MAAM,MAAA,oBAAA;AAAA,QACJ,MAAA;AAAA,QACA,OAAA,GAAU,WAAW,OAAU,GAAA,OAAA;AAAA,OACjC,CAAA;AACA,MAAI,IAAA,MAAA,CAAA;AACJ,MAAI,IAAA;AACF,QAAA,MAAA,GAAS,MAAM,EAAG,CAAA,IAAI,8BAA+B,CAAA,IAAA,EAAM,MAAM,CAAC,CAAA,CAAA;AAAA,eAC3D,GAAK,EAAA;AACZ,QAAM,MAAA,oBAAA,CAAqB,QAAQ,UAAU,CAAA,CAAA;AAC7C,QAAM,MAAA,GAAA,CAAA;AAAA,OACR;AACA,MAAM,MAAA,oBAAA,CAAqB,QAAQ,QAAQ,CAAA,CAAA;AAC3C,MAAO,OAAA,MAAA,CAAA;AAAA,KACP,SAAA;AACA,MAAA,MAAA,CAAO,OAAQ,EAAA,CAAA;AAAA,KACjB;AAAA,GACF;AAAA,EAEA,KAAuB,GAAA;AACrB,IAAM,MAAA,EAAE,MAAS,GAAA,IAAA,CAAA;AACjB,IAAA,IAAA,CAAK,IAAO,GAAA,IAAI,EAAG,CAAA,IAAA,CAAK,KAAK,MAAM,CAAA,CAAA;AACnC,IAAA,OAAO,KAAK,GAAI,EAAA,CAAA;AAAA,GAClB;AAAA,EAEA,WAAA,CAAY,IAAgB,OAAgB,EAAA;AAC1C,IAAA,MAAM,IAAO,GAAA,OAAA,CAAA;AACb,IAAA,EAAA,CAAG,UAAU,IAAK,CAAA,OAAA,CAAA;AAClB,IAAC,EAAA,CAA2B,SAAS,IAAK,CAAA,MAAA,CAAA;AAC1C,IAAC,EAAA,CAAyB,OAAO,IAAK,CAAA,IAAA,CAAA;AACtC,IAAA,EAAA,CAAG,WAAW,IAAK,CAAA,QAAA,CAAA;AACnB,IAAA,EAAA,CAAG,OAAO,IAAK,CAAA,IAAA,CAAA;AACf,IAAA,EAAA,CAAG,SAAS,IAAK,CAAA,MAAA,CAAA;AACjB,IAAA,EAAA,CAAG,OAAO,IAAK,CAAA,IAAA,CAAA;AACf,IAAA,EAAA,CAAG,WAAW,IAAK,CAAA,QAAA,CAAA;AACnB,IAAA,EAAA,CAAG,mBAAmB,IAAK,CAAA,gBAAA,CAAA;AAC3B,IAAA,EAAA,CAAG,gBAAgB,IAAK,CAAA,aAAA,CAAA;AACxB,IAAA,EAAA,CAAG,QAAQ,IAAK,CAAA,KAAA,CAAA;AAChB,IAAA,EAAA,CAAG,SAAS,IAAK,CAAA,MAAA,CAAA;AACjB,IAAA,EAAA,CAAG,QAAQ,IAAK,CAAA,KAAA,CAAA;AAChB,IAAA,EAAA,CAAG,SAAS,IAAK,CAAA,MAAA,CAAA;AACjB,IAAA,EAAA,CAAG,WAAW,IAAK,CAAA,QAAA,CAAA;AACnB,IAAA,EAAA,CAAG,aAAa,IAAK,CAAA,UAAA,CAAA;AACrB,IAAA,EAAA,CAAG,OAAO,IAAK,CAAA,IAAA,CAAA;AACf,IAAA,EAAA,CAAG,OAAO,IAAK,CAAA,IAAA,CAAA;AACf,IAAA,EAAA,CAAG,UAAU,IAAK,CAAA,OAAA,CAAA;AAAA,GACpB;AACF,CAAA;AAEA,MAAM,kBAAqB,GAAA;AAAA,EACzB,cAAc,EAAY,EAAA;AACxB,IAAO,OAAA,kBAAA,CAAmB,EAAE,CAAK,IAAA,SAAA,CAAA;AAAA,GACnC;AACF,CAAA,CAAA;AAMA,MAAM,aAAA,GAAgB,CAAC,MAAA,EAAoB,MAAoB,KAAA;AAC7D,EAAK,IAAA,MAAA,CAAuC,UAAW,CAAA,MAAA,KAAW,MAAQ,EAAA;AACxE,IAAC,MAAA,CAAuC,WAAW,MAAS,GAAA,MAAA,CAAA;AAC5D,IAAA,OAAO,MAAO,CAAA,KAAA,CAAM,CAAqB,kBAAA,EAAA,MAAA,IAAU,QAAQ,CAAE,CAAA,CAAA,CAAA;AAAA,GAC/D;AACA,EAAA,OAAA;AACF,CAAA,CAAA;AAEA,MAAM,YAAe,GAAA,OACnB,OACA,EAAA,IAAA,EACA,QACA,OACG,KAAA;AACH,EAAM,MAAA,MAAA,GAAS,MAAM,OAAA,CAAQ,OAAQ,EAAA,CAAA;AACrC,EAAI,IAAA;AACF,IAAM,MAAA,aAAA,CAAc,MAAQ,EAAA,OAAA,CAAQ,MAAM,CAAA,CAAA;AAC1C,IAAA,OAAO,MAAM,oBAAA,CAAqB,MAAQ,EAAA,IAAA,EAAM,QAAQ,OAAO,CAAA,CAAA;AAAA,GAC/D,SAAA;AACA,IAAA,MAAA,CAAO,OAAQ,EAAA,CAAA;AAAA,GACjB;AACF,CAAA,CAAA;AAEA,MAAM,oBAAuB,GAAA,CAC3B,MACA,EAAA,IAAA,EACA,QACA,OACG,KAAA;AACH,EAAA,MAAM,MAAS,GAAA;AAAA,IACb,IAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAO,EAAA,kBAAA;AAAA,GACT,CAAA;AAGA,EAAO,OAAA,MAAA,CAAO,MAAM,MAAa,CAAA,CAAA;AACnC,CAAA,CAAA;AAEO,MAAM,8BAAsD,CAAA;AAAA,EAMjE,WAAA,CAAmB,SAAqC,MAAoB,EAAA;AAAzD,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA,CAAA;AAAqC,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA,CAAA;AAFxD,IAAa,IAAA,CAAA,UAAA,GAAA,aAAA,CAAA;AAGX,IAAA,IAAA,CAAK,OAAO,OAAQ,CAAA,IAAA,CAAA;AACpB,IAAA,IAAA,CAAK,SAAS,OAAQ,CAAA,MAAA,CAAA;AACtB,IAAA,IAAA,CAAK,SAAS,OAAQ,CAAA,MAAA,CAAA;AAAA,GACxB;AAAA,EAEA,YAAY,MAKI,EAAA;AACd,IAAO,OAAA,IAAA,CAAK,OAAQ,CAAA,WAAA,CAAY,MAAM,CAAA,CAAA;AAAA,GACxC;AAAA,EAEA,WAAsB,GAAA;AACpB,IAAO,OAAA,IAAA,CAAK,QAAQ,WAAY,EAAA,CAAA;AAAA,GAClC;AAAA,EAEA,OAAkB,GAAA;AAChB,IAAO,OAAA,IAAA,CAAK,QAAQ,OAAQ,EAAA,CAAA;AAAA,GAC9B;AAAA,EAEA,SAAgC,GAAA;AAC9B,IAAO,OAAA,IAAA,CAAK,QAAQ,SAAU,EAAA,CAAA;AAAA,GAChC;AAAA,EAEA,OAAkB,GAAA;AAChB,IAAO,OAAA,IAAA,CAAK,QAAQ,OAAQ,EAAA,CAAA;AAAA,GAC9B;AAAA,EAEA,OAA+B,GAAA;AAC7B,IAAO,OAAA,OAAA,CAAQ,OAAQ,CAAA,IAAA,CAAK,MAAM,CAAA,CAAA;AAAA,GACpC;AAAA,EAEA,MAAM,KACJ,CAAA,IAAA,EACA,MACyB,EAAA;AACzB,IAAA,OAAO,MAAM,oBAAA,CAAqB,IAAK,CAAA,MAAA,EAAQ,MAAM,MAAM,CAAA,CAAA;AAAA,GAC7D;AAAA;AAAA,EAGA,MAAM,MACJ,CAAA,IAAA,EACA,MAC+B,EAAA;AAC/B,IAAA,OAAO,MAAM,oBAAqB,CAAA,IAAA,CAAK,MAAQ,EAAA,IAAA,EAAM,QAAQ,OAAO,CAAA,CAAA;AAAA,GACtE;AAAA,EAEA,MAAM,WACJ,CAAA,QAAA,EACA,EACiB,EAAA;AACjB,IAAO,OAAA,MAAM,GAAG,IAAI,CAAA,CAAA;AAAA,GACtB;AAAA,EAEA,KAAQ,GAAA;AACN,IAAO,OAAA,IAAA,CAAK,QAAQ,KAAM,EAAA,CAAA;AAAA,GAC5B;AAAA,EAEA,WAAA,CAAY,IAAgB,IAAa,EAAA;AACvC,IAAA,OAAO,IAAK,CAAA,OAAA,CAAQ,WAAY,CAAA,EAAA,EAAI,IAAI,CAAA,CAAA;AAAA,GAC1C;AACF;;;;"}
@@ -27,6 +27,12 @@ const wrapResult = (result) => {
27
27
  }
28
28
  };
29
29
  const types = {
30
+ bytea: {
31
+ to: 17,
32
+ from: 17,
33
+ serialize: (x) => "\\x" + Buffer.from(x).toString("hex")
34
+ // omit parse, let bytea return a string, so it remains consistent with when it's selected via JSON
35
+ },
30
36
  dateAndTimestampAsStrings: {
31
37
  to: 25,
32
38
  from: [1082, 1114, 1184],
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-js.js","sources":["../src/adapters/postgres-js.ts"],"sourcesContent":["import {\n AdapterBase,\n AdapterConfigBase,\n ColumnSchemaConfig,\n emptyObject,\n MaybeArray,\n QueryArraysResult,\n QueryError,\n QueryResult,\n QueryResultRow,\n returnArg,\n setConnectRetryConfig,\n wrapAdapterFnWithConnectRetry,\n} from 'orchid-core';\nimport postgres, { Error, Row, RowList } from 'postgres';\nimport {\n DbOptions,\n DefaultColumnTypes,\n DefaultSchemaConfig,\n createDbWithAdapter,\n DbResult,\n} from 'pqb';\n\nexport interface CreatePostgresJsDbOptions<\n SchemaConfig extends ColumnSchemaConfig,\n ColumnTypes,\n> extends PostgresJsAdapterOptions,\n DbOptions<SchemaConfig, ColumnTypes> {}\n\nexport const createDb = <\n SchemaConfig extends ColumnSchemaConfig = DefaultSchemaConfig,\n ColumnTypes = DefaultColumnTypes<SchemaConfig>,\n>(\n options: CreatePostgresJsDbOptions<SchemaConfig, ColumnTypes>,\n): DbResult<ColumnTypes> => {\n return createDbWithAdapter({\n ...options,\n adapter: new PostgresJsAdapter(options as never),\n });\n};\n\nexport interface PostgresJsAdapterOptions\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n extends postgres.Options<any>,\n AdapterConfigBase {\n databaseURL?: string;\n schema?: string;\n}\n\ntype RawResult = RowList<(Row & Iterable<Row>)[]>;\n\nclass PostgresJsResult<T extends QueryResultRow> implements QueryResult<T> {\n rowCount: number;\n rows: T[];\n fields: QueryResult<T>['fields'];\n\n constructor(result: RawResult) {\n this.rowCount = result.count;\n this.rows = result as never;\n this.fields = result.statement.columns;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst wrapResult = (result: MaybeArray<RawResult>): QueryArraysResult<any> => {\n if (result.constructor === Array) {\n return (result as RawResult[]).map(\n (res) => new PostgresJsResult(res),\n ) as never;\n } else {\n return new PostgresJsResult(result as RawResult);\n }\n};\n\nconst types: Record<string, Partial<postgres.PostgresType>> = {\n dateAndTimestampAsStrings: {\n to: 25,\n from: [1082, 1114, 1184],\n parse: returnArg,\n },\n interval: {\n from: [1186],\n serialize: returnArg,\n parse(str: string) {\n const [years, , months, , days, , time] = str.split(' ');\n const [hours, minutes, seconds] = time.split(':');\n\n return {\n years: years ? Number(years) : 0,\n months: months ? Number(months) : 0,\n days: days ? Number(days) : 0,\n hours: hours ? Number(hours) : 0,\n minutes: minutes ? Number(minutes) : 0,\n seconds: seconds ? Number(seconds) : 0,\n };\n },\n },\n // overrides the built-in json type to not serialize it, because it incorrectly serializes\n json: {\n to: 114,\n from: [114, 3802],\n serialize: returnArg,\n parse: (x) => {\n return JSON.parse(x);\n },\n },\n};\n\nexport class PostgresJsAdapter implements AdapterBase {\n sql: postgres.Sql;\n schema?: string;\n config: PostgresJsAdapterOptions;\n errorClass = postgres.PostgresError;\n\n constructor(config: PostgresJsAdapterOptions) {\n this.config = { ...config, types };\n\n this.schema = config.schema;\n if (this.schema) {\n this.config.connection = {\n ...config.connection,\n search_path: this.schema,\n };\n }\n\n if (this.config.databaseURL) {\n const urlString = this.config.databaseURL;\n const url = new URL(urlString);\n\n const ssl = url.searchParams.get('ssl');\n if (ssl === 'false' || ssl === 'true') {\n this.config.ssl = ssl === 'true';\n }\n\n const schema = url.searchParams.get('schema');\n if (schema) {\n this.schema = schema;\n url.searchParams.delete('schema');\n this.config.connection = {\n ...config.connection,\n search_path: schema,\n };\n }\n\n this.sql = postgres(url.toString(), this.config);\n } else {\n this.sql = postgres(this.config);\n }\n\n if (config.connectRetry) {\n setConnectRetryConfig(\n this,\n config.connectRetry === true ? emptyObject : config.connectRetry,\n );\n\n this.query = wrapAdapterFnWithConnectRetry(this, this.query);\n this.arrays = wrapAdapterFnWithConnectRetry(this, this.arrays);\n }\n }\n\n private getURL(): URL | undefined {\n return this.config.databaseURL\n ? new URL(this.config.databaseURL)\n : undefined;\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): AdapterBase {\n const url = this.getURL();\n if (url) {\n if ('database' in params) {\n url.pathname = `/${params.database}`;\n }\n\n if (params.user !== undefined) {\n url.username = params.user;\n }\n\n if (params.password !== undefined) {\n url.password = params.password;\n }\n\n if (params.schema !== undefined) {\n url.searchParams.set('schema', params.schema);\n }\n\n return new PostgresJsAdapter({\n ...this.config,\n databaseURL: url.toString(),\n });\n } else {\n return new PostgresJsAdapter({ ...this.config, ...params });\n }\n }\n\n getDatabase(): string {\n const url = this.getURL();\n return url ? url.pathname.slice(1) : (this.config.database as string);\n }\n\n getUser(): string {\n const url = this.getURL();\n return url ? url.username : (this.config.user as string);\n }\n\n getSchema(): string | undefined {\n return this.schema;\n }\n\n getHost(): string {\n const url = this.getURL();\n return url ? url.hostname : (this.config.host as string);\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values);\n }\n\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return arrays(this.sql, text, values);\n }\n\n async transaction<Result>(\n options: string | undefined,\n cb: (adapter: AdapterBase) => Promise<Result>,\n ): Promise<Result> {\n return (\n options\n ? this.sql.begin(options, (sql) =>\n cb(new PostgresJsTransactionAdapter(this, sql)),\n )\n : this.sql.begin((sql) =>\n cb(new PostgresJsTransactionAdapter(this, sql)),\n )\n ) as never;\n }\n\n close(): Promise<void> {\n return this.sql.end();\n }\n\n assignError(to: QueryError, dbError: Error) {\n const from = dbError as postgres.PostgresError;\n to.message = from.message;\n to.severity = from.severity;\n to.code = from.code;\n to.detail = from.detail;\n to.hint = from.hint;\n to.position = from.position;\n to.where = from.where;\n to.file = from.file;\n to.line = from.line;\n to.routine = from.routine;\n }\n}\n\nconst query = <T extends QueryResultRow = QueryResultRow>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n): Promise<QueryResult<T>> => {\n return sql.unsafe(text, values as never).then(wrapResult);\n};\n\nconst arrays = <R extends any[] = any[]>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n): Promise<QueryArraysResult<R>> => {\n return sql\n .unsafe(text, values as never)\n .values()\n .then(wrapResult);\n};\n\nexport class PostgresJsTransactionAdapter implements AdapterBase {\n errorClass = postgres.PostgresError;\n\n constructor(public adapter: PostgresJsAdapter, public sql: postgres.Sql) {}\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): AdapterBase {\n return this.adapter.reconfigure(params);\n }\n\n getDatabase(): string {\n return this.adapter.getDatabase();\n }\n\n getUser(): string {\n return this.adapter.getUser();\n }\n\n getSchema(): string | undefined {\n return this.adapter.schema;\n }\n\n getHost(): string {\n return this.adapter.getHost();\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return arrays(this.sql, text, values);\n }\n\n async transaction<Result>(\n _options: string | undefined,\n cb: (adapter: PostgresJsTransactionAdapter) => Promise<Result>,\n ): Promise<Result> {\n return await cb(this);\n }\n\n close(): Promise<void> {\n return this.sql.end();\n }\n\n assignError(to: QueryError, from: Error) {\n return this.adapter.assignError(to, from);\n }\n}\n"],"names":["createDbWithAdapter","returnArg","setConnectRetryConfig","emptyObject","wrapAdapterFnWithConnectRetry"],"mappings":"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"}
1
+ {"version":3,"file":"postgres-js.js","sources":["../src/adapters/postgres-js.ts"],"sourcesContent":["import {\n AdapterBase,\n AdapterConfigBase,\n ColumnSchemaConfig,\n emptyObject,\n MaybeArray,\n QueryArraysResult,\n QueryError,\n QueryResult,\n QueryResultRow,\n returnArg,\n setConnectRetryConfig,\n wrapAdapterFnWithConnectRetry,\n} from 'orchid-core';\nimport postgres, { Error, Row, RowList } from 'postgres';\nimport {\n DbOptions,\n DefaultColumnTypes,\n DefaultSchemaConfig,\n createDbWithAdapter,\n DbResult,\n} from 'pqb';\n\nexport interface CreatePostgresJsDbOptions<\n SchemaConfig extends ColumnSchemaConfig,\n ColumnTypes,\n> extends PostgresJsAdapterOptions,\n DbOptions<SchemaConfig, ColumnTypes> {}\n\nexport const createDb = <\n SchemaConfig extends ColumnSchemaConfig = DefaultSchemaConfig,\n ColumnTypes = DefaultColumnTypes<SchemaConfig>,\n>(\n options: CreatePostgresJsDbOptions<SchemaConfig, ColumnTypes>,\n): DbResult<ColumnTypes> => {\n return createDbWithAdapter({\n ...options,\n adapter: new PostgresJsAdapter(options as never),\n });\n};\n\nexport interface PostgresJsAdapterOptions\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n extends postgres.Options<any>,\n AdapterConfigBase {\n databaseURL?: string;\n schema?: string;\n}\n\ntype RawResult = RowList<(Row & Iterable<Row>)[]>;\n\nclass PostgresJsResult<T extends QueryResultRow> implements QueryResult<T> {\n rowCount: number;\n rows: T[];\n fields: QueryResult<T>['fields'];\n\n constructor(result: RawResult) {\n this.rowCount = result.count;\n this.rows = result as never;\n this.fields = result.statement.columns;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst wrapResult = (result: MaybeArray<RawResult>): QueryArraysResult<any> => {\n if (result.constructor === Array) {\n return (result as RawResult[]).map(\n (res) => new PostgresJsResult(res),\n ) as never;\n } else {\n return new PostgresJsResult(result as RawResult);\n }\n};\n\nconst types: Record<string, Partial<postgres.PostgresType>> = {\n bytea: {\n to: 17,\n from: 17 as never,\n serialize: (x) => '\\\\x' + Buffer.from(x).toString('hex'),\n // omit parse, let bytea return a string, so it remains consistent with when it's selected via JSON\n },\n dateAndTimestampAsStrings: {\n to: 25,\n from: [1082, 1114, 1184],\n parse: returnArg,\n },\n interval: {\n from: [1186],\n serialize: returnArg,\n parse(str: string) {\n const [years, , months, , days, , time] = str.split(' ');\n const [hours, minutes, seconds] = time.split(':');\n\n return {\n years: years ? Number(years) : 0,\n months: months ? Number(months) : 0,\n days: days ? Number(days) : 0,\n hours: hours ? Number(hours) : 0,\n minutes: minutes ? Number(minutes) : 0,\n seconds: seconds ? Number(seconds) : 0,\n };\n },\n },\n // overrides the built-in json type to not serialize it, because it incorrectly serializes\n json: {\n to: 114,\n from: [114, 3802],\n serialize: returnArg,\n parse: (x) => {\n return JSON.parse(x);\n },\n },\n};\n\nexport class PostgresJsAdapter implements AdapterBase {\n sql: postgres.Sql;\n schema?: string;\n config: PostgresJsAdapterOptions;\n errorClass = postgres.PostgresError;\n\n constructor(config: PostgresJsAdapterOptions) {\n this.config = { ...config, types };\n\n this.schema = config.schema;\n if (this.schema) {\n this.config.connection = {\n ...config.connection,\n search_path: this.schema,\n };\n }\n\n if (this.config.databaseURL) {\n const urlString = this.config.databaseURL;\n const url = new URL(urlString);\n\n const ssl = url.searchParams.get('ssl');\n if (ssl === 'false' || ssl === 'true') {\n this.config.ssl = ssl === 'true';\n }\n\n const schema = url.searchParams.get('schema');\n if (schema) {\n this.schema = schema;\n url.searchParams.delete('schema');\n this.config.connection = {\n ...config.connection,\n search_path: schema,\n };\n }\n\n this.sql = postgres(url.toString(), this.config);\n } else {\n this.sql = postgres(this.config);\n }\n\n if (config.connectRetry) {\n setConnectRetryConfig(\n this,\n config.connectRetry === true ? emptyObject : config.connectRetry,\n );\n\n this.query = wrapAdapterFnWithConnectRetry(this, this.query);\n this.arrays = wrapAdapterFnWithConnectRetry(this, this.arrays);\n }\n }\n\n private getURL(): URL | undefined {\n return this.config.databaseURL\n ? new URL(this.config.databaseURL)\n : undefined;\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): AdapterBase {\n const url = this.getURL();\n if (url) {\n if ('database' in params) {\n url.pathname = `/${params.database}`;\n }\n\n if (params.user !== undefined) {\n url.username = params.user;\n }\n\n if (params.password !== undefined) {\n url.password = params.password;\n }\n\n if (params.schema !== undefined) {\n url.searchParams.set('schema', params.schema);\n }\n\n return new PostgresJsAdapter({\n ...this.config,\n databaseURL: url.toString(),\n });\n } else {\n return new PostgresJsAdapter({ ...this.config, ...params });\n }\n }\n\n getDatabase(): string {\n const url = this.getURL();\n return url ? url.pathname.slice(1) : (this.config.database as string);\n }\n\n getUser(): string {\n const url = this.getURL();\n return url ? url.username : (this.config.user as string);\n }\n\n getSchema(): string | undefined {\n return this.schema;\n }\n\n getHost(): string {\n const url = this.getURL();\n return url ? url.hostname : (this.config.host as string);\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values);\n }\n\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return arrays(this.sql, text, values);\n }\n\n async transaction<Result>(\n options: string | undefined,\n cb: (adapter: AdapterBase) => Promise<Result>,\n ): Promise<Result> {\n return (\n options\n ? this.sql.begin(options, (sql) =>\n cb(new PostgresJsTransactionAdapter(this, sql)),\n )\n : this.sql.begin((sql) =>\n cb(new PostgresJsTransactionAdapter(this, sql)),\n )\n ) as never;\n }\n\n close(): Promise<void> {\n return this.sql.end();\n }\n\n assignError(to: QueryError, dbError: Error) {\n const from = dbError as postgres.PostgresError;\n to.message = from.message;\n to.severity = from.severity;\n to.code = from.code;\n to.detail = from.detail;\n to.hint = from.hint;\n to.position = from.position;\n to.where = from.where;\n to.file = from.file;\n to.line = from.line;\n to.routine = from.routine;\n }\n}\n\nconst query = <T extends QueryResultRow = QueryResultRow>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n): Promise<QueryResult<T>> => {\n return sql.unsafe(text, values as never).then(wrapResult);\n};\n\nconst arrays = <R extends any[] = any[]>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n): Promise<QueryArraysResult<R>> => {\n return sql\n .unsafe(text, values as never)\n .values()\n .then(wrapResult);\n};\n\nexport class PostgresJsTransactionAdapter implements AdapterBase {\n errorClass = postgres.PostgresError;\n\n constructor(public adapter: PostgresJsAdapter, public sql: postgres.Sql) {}\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): AdapterBase {\n return this.adapter.reconfigure(params);\n }\n\n getDatabase(): string {\n return this.adapter.getDatabase();\n }\n\n getUser(): string {\n return this.adapter.getUser();\n }\n\n getSchema(): string | undefined {\n return this.adapter.schema;\n }\n\n getHost(): string {\n return this.adapter.getHost();\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return arrays(this.sql, text, values);\n }\n\n async transaction<Result>(\n _options: string | undefined,\n cb: (adapter: PostgresJsTransactionAdapter) => Promise<Result>,\n ): Promise<Result> {\n return await cb(this);\n }\n\n close(): Promise<void> {\n return this.sql.end();\n }\n\n assignError(to: QueryError, from: Error) {\n return this.adapter.assignError(to, from);\n }\n}\n"],"names":["createDbWithAdapter","returnArg","setConnectRetryConfig","emptyObject","wrapAdapterFnWithConnectRetry"],"mappings":"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"}
@@ -25,6 +25,12 @@ const wrapResult = (result) => {
25
25
  }
26
26
  };
27
27
  const types = {
28
+ bytea: {
29
+ to: 17,
30
+ from: 17,
31
+ serialize: (x) => "\\x" + Buffer.from(x).toString("hex")
32
+ // omit parse, let bytea return a string, so it remains consistent with when it's selected via JSON
33
+ },
28
34
  dateAndTimestampAsStrings: {
29
35
  to: 25,
30
36
  from: [1082, 1114, 1184],
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-js.mjs","sources":["../src/adapters/postgres-js.ts"],"sourcesContent":["import {\n AdapterBase,\n AdapterConfigBase,\n ColumnSchemaConfig,\n emptyObject,\n MaybeArray,\n QueryArraysResult,\n QueryError,\n QueryResult,\n QueryResultRow,\n returnArg,\n setConnectRetryConfig,\n wrapAdapterFnWithConnectRetry,\n} from 'orchid-core';\nimport postgres, { Error, Row, RowList } from 'postgres';\nimport {\n DbOptions,\n DefaultColumnTypes,\n DefaultSchemaConfig,\n createDbWithAdapter,\n DbResult,\n} from 'pqb';\n\nexport interface CreatePostgresJsDbOptions<\n SchemaConfig extends ColumnSchemaConfig,\n ColumnTypes,\n> extends PostgresJsAdapterOptions,\n DbOptions<SchemaConfig, ColumnTypes> {}\n\nexport const createDb = <\n SchemaConfig extends ColumnSchemaConfig = DefaultSchemaConfig,\n ColumnTypes = DefaultColumnTypes<SchemaConfig>,\n>(\n options: CreatePostgresJsDbOptions<SchemaConfig, ColumnTypes>,\n): DbResult<ColumnTypes> => {\n return createDbWithAdapter({\n ...options,\n adapter: new PostgresJsAdapter(options as never),\n });\n};\n\nexport interface PostgresJsAdapterOptions\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n extends postgres.Options<any>,\n AdapterConfigBase {\n databaseURL?: string;\n schema?: string;\n}\n\ntype RawResult = RowList<(Row & Iterable<Row>)[]>;\n\nclass PostgresJsResult<T extends QueryResultRow> implements QueryResult<T> {\n rowCount: number;\n rows: T[];\n fields: QueryResult<T>['fields'];\n\n constructor(result: RawResult) {\n this.rowCount = result.count;\n this.rows = result as never;\n this.fields = result.statement.columns;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst wrapResult = (result: MaybeArray<RawResult>): QueryArraysResult<any> => {\n if (result.constructor === Array) {\n return (result as RawResult[]).map(\n (res) => new PostgresJsResult(res),\n ) as never;\n } else {\n return new PostgresJsResult(result as RawResult);\n }\n};\n\nconst types: Record<string, Partial<postgres.PostgresType>> = {\n dateAndTimestampAsStrings: {\n to: 25,\n from: [1082, 1114, 1184],\n parse: returnArg,\n },\n interval: {\n from: [1186],\n serialize: returnArg,\n parse(str: string) {\n const [years, , months, , days, , time] = str.split(' ');\n const [hours, minutes, seconds] = time.split(':');\n\n return {\n years: years ? Number(years) : 0,\n months: months ? Number(months) : 0,\n days: days ? Number(days) : 0,\n hours: hours ? Number(hours) : 0,\n minutes: minutes ? Number(minutes) : 0,\n seconds: seconds ? Number(seconds) : 0,\n };\n },\n },\n // overrides the built-in json type to not serialize it, because it incorrectly serializes\n json: {\n to: 114,\n from: [114, 3802],\n serialize: returnArg,\n parse: (x) => {\n return JSON.parse(x);\n },\n },\n};\n\nexport class PostgresJsAdapter implements AdapterBase {\n sql: postgres.Sql;\n schema?: string;\n config: PostgresJsAdapterOptions;\n errorClass = postgres.PostgresError;\n\n constructor(config: PostgresJsAdapterOptions) {\n this.config = { ...config, types };\n\n this.schema = config.schema;\n if (this.schema) {\n this.config.connection = {\n ...config.connection,\n search_path: this.schema,\n };\n }\n\n if (this.config.databaseURL) {\n const urlString = this.config.databaseURL;\n const url = new URL(urlString);\n\n const ssl = url.searchParams.get('ssl');\n if (ssl === 'false' || ssl === 'true') {\n this.config.ssl = ssl === 'true';\n }\n\n const schema = url.searchParams.get('schema');\n if (schema) {\n this.schema = schema;\n url.searchParams.delete('schema');\n this.config.connection = {\n ...config.connection,\n search_path: schema,\n };\n }\n\n this.sql = postgres(url.toString(), this.config);\n } else {\n this.sql = postgres(this.config);\n }\n\n if (config.connectRetry) {\n setConnectRetryConfig(\n this,\n config.connectRetry === true ? emptyObject : config.connectRetry,\n );\n\n this.query = wrapAdapterFnWithConnectRetry(this, this.query);\n this.arrays = wrapAdapterFnWithConnectRetry(this, this.arrays);\n }\n }\n\n private getURL(): URL | undefined {\n return this.config.databaseURL\n ? new URL(this.config.databaseURL)\n : undefined;\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): AdapterBase {\n const url = this.getURL();\n if (url) {\n if ('database' in params) {\n url.pathname = `/${params.database}`;\n }\n\n if (params.user !== undefined) {\n url.username = params.user;\n }\n\n if (params.password !== undefined) {\n url.password = params.password;\n }\n\n if (params.schema !== undefined) {\n url.searchParams.set('schema', params.schema);\n }\n\n return new PostgresJsAdapter({\n ...this.config,\n databaseURL: url.toString(),\n });\n } else {\n return new PostgresJsAdapter({ ...this.config, ...params });\n }\n }\n\n getDatabase(): string {\n const url = this.getURL();\n return url ? url.pathname.slice(1) : (this.config.database as string);\n }\n\n getUser(): string {\n const url = this.getURL();\n return url ? url.username : (this.config.user as string);\n }\n\n getSchema(): string | undefined {\n return this.schema;\n }\n\n getHost(): string {\n const url = this.getURL();\n return url ? url.hostname : (this.config.host as string);\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values);\n }\n\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return arrays(this.sql, text, values);\n }\n\n async transaction<Result>(\n options: string | undefined,\n cb: (adapter: AdapterBase) => Promise<Result>,\n ): Promise<Result> {\n return (\n options\n ? this.sql.begin(options, (sql) =>\n cb(new PostgresJsTransactionAdapter(this, sql)),\n )\n : this.sql.begin((sql) =>\n cb(new PostgresJsTransactionAdapter(this, sql)),\n )\n ) as never;\n }\n\n close(): Promise<void> {\n return this.sql.end();\n }\n\n assignError(to: QueryError, dbError: Error) {\n const from = dbError as postgres.PostgresError;\n to.message = from.message;\n to.severity = from.severity;\n to.code = from.code;\n to.detail = from.detail;\n to.hint = from.hint;\n to.position = from.position;\n to.where = from.where;\n to.file = from.file;\n to.line = from.line;\n to.routine = from.routine;\n }\n}\n\nconst query = <T extends QueryResultRow = QueryResultRow>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n): Promise<QueryResult<T>> => {\n return sql.unsafe(text, values as never).then(wrapResult);\n};\n\nconst arrays = <R extends any[] = any[]>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n): Promise<QueryArraysResult<R>> => {\n return sql\n .unsafe(text, values as never)\n .values()\n .then(wrapResult);\n};\n\nexport class PostgresJsTransactionAdapter implements AdapterBase {\n errorClass = postgres.PostgresError;\n\n constructor(public adapter: PostgresJsAdapter, public sql: postgres.Sql) {}\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): AdapterBase {\n return this.adapter.reconfigure(params);\n }\n\n getDatabase(): string {\n return this.adapter.getDatabase();\n }\n\n getUser(): string {\n return this.adapter.getUser();\n }\n\n getSchema(): string | undefined {\n return this.adapter.schema;\n }\n\n getHost(): string {\n return this.adapter.getHost();\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return arrays(this.sql, text, values);\n }\n\n async transaction<Result>(\n _options: string | undefined,\n cb: (adapter: PostgresJsTransactionAdapter) => Promise<Result>,\n ): Promise<Result> {\n return await cb(this);\n }\n\n close(): Promise<void> {\n return this.sql.end();\n }\n\n assignError(to: QueryError, from: Error) {\n return this.adapter.assignError(to, from);\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-js.mjs","sources":["../src/adapters/postgres-js.ts"],"sourcesContent":["import {\n AdapterBase,\n AdapterConfigBase,\n ColumnSchemaConfig,\n emptyObject,\n MaybeArray,\n QueryArraysResult,\n QueryError,\n QueryResult,\n QueryResultRow,\n returnArg,\n setConnectRetryConfig,\n wrapAdapterFnWithConnectRetry,\n} from 'orchid-core';\nimport postgres, { Error, Row, RowList } from 'postgres';\nimport {\n DbOptions,\n DefaultColumnTypes,\n DefaultSchemaConfig,\n createDbWithAdapter,\n DbResult,\n} from 'pqb';\n\nexport interface CreatePostgresJsDbOptions<\n SchemaConfig extends ColumnSchemaConfig,\n ColumnTypes,\n> extends PostgresJsAdapterOptions,\n DbOptions<SchemaConfig, ColumnTypes> {}\n\nexport const createDb = <\n SchemaConfig extends ColumnSchemaConfig = DefaultSchemaConfig,\n ColumnTypes = DefaultColumnTypes<SchemaConfig>,\n>(\n options: CreatePostgresJsDbOptions<SchemaConfig, ColumnTypes>,\n): DbResult<ColumnTypes> => {\n return createDbWithAdapter({\n ...options,\n adapter: new PostgresJsAdapter(options as never),\n });\n};\n\nexport interface PostgresJsAdapterOptions\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n extends postgres.Options<any>,\n AdapterConfigBase {\n databaseURL?: string;\n schema?: string;\n}\n\ntype RawResult = RowList<(Row & Iterable<Row>)[]>;\n\nclass PostgresJsResult<T extends QueryResultRow> implements QueryResult<T> {\n rowCount: number;\n rows: T[];\n fields: QueryResult<T>['fields'];\n\n constructor(result: RawResult) {\n this.rowCount = result.count;\n this.rows = result as never;\n this.fields = result.statement.columns;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst wrapResult = (result: MaybeArray<RawResult>): QueryArraysResult<any> => {\n if (result.constructor === Array) {\n return (result as RawResult[]).map(\n (res) => new PostgresJsResult(res),\n ) as never;\n } else {\n return new PostgresJsResult(result as RawResult);\n }\n};\n\nconst types: Record<string, Partial<postgres.PostgresType>> = {\n bytea: {\n to: 17,\n from: 17 as never,\n serialize: (x) => '\\\\x' + Buffer.from(x).toString('hex'),\n // omit parse, let bytea return a string, so it remains consistent with when it's selected via JSON\n },\n dateAndTimestampAsStrings: {\n to: 25,\n from: [1082, 1114, 1184],\n parse: returnArg,\n },\n interval: {\n from: [1186],\n serialize: returnArg,\n parse(str: string) {\n const [years, , months, , days, , time] = str.split(' ');\n const [hours, minutes, seconds] = time.split(':');\n\n return {\n years: years ? Number(years) : 0,\n months: months ? Number(months) : 0,\n days: days ? Number(days) : 0,\n hours: hours ? Number(hours) : 0,\n minutes: minutes ? Number(minutes) : 0,\n seconds: seconds ? Number(seconds) : 0,\n };\n },\n },\n // overrides the built-in json type to not serialize it, because it incorrectly serializes\n json: {\n to: 114,\n from: [114, 3802],\n serialize: returnArg,\n parse: (x) => {\n return JSON.parse(x);\n },\n },\n};\n\nexport class PostgresJsAdapter implements AdapterBase {\n sql: postgres.Sql;\n schema?: string;\n config: PostgresJsAdapterOptions;\n errorClass = postgres.PostgresError;\n\n constructor(config: PostgresJsAdapterOptions) {\n this.config = { ...config, types };\n\n this.schema = config.schema;\n if (this.schema) {\n this.config.connection = {\n ...config.connection,\n search_path: this.schema,\n };\n }\n\n if (this.config.databaseURL) {\n const urlString = this.config.databaseURL;\n const url = new URL(urlString);\n\n const ssl = url.searchParams.get('ssl');\n if (ssl === 'false' || ssl === 'true') {\n this.config.ssl = ssl === 'true';\n }\n\n const schema = url.searchParams.get('schema');\n if (schema) {\n this.schema = schema;\n url.searchParams.delete('schema');\n this.config.connection = {\n ...config.connection,\n search_path: schema,\n };\n }\n\n this.sql = postgres(url.toString(), this.config);\n } else {\n this.sql = postgres(this.config);\n }\n\n if (config.connectRetry) {\n setConnectRetryConfig(\n this,\n config.connectRetry === true ? emptyObject : config.connectRetry,\n );\n\n this.query = wrapAdapterFnWithConnectRetry(this, this.query);\n this.arrays = wrapAdapterFnWithConnectRetry(this, this.arrays);\n }\n }\n\n private getURL(): URL | undefined {\n return this.config.databaseURL\n ? new URL(this.config.databaseURL)\n : undefined;\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): AdapterBase {\n const url = this.getURL();\n if (url) {\n if ('database' in params) {\n url.pathname = `/${params.database}`;\n }\n\n if (params.user !== undefined) {\n url.username = params.user;\n }\n\n if (params.password !== undefined) {\n url.password = params.password;\n }\n\n if (params.schema !== undefined) {\n url.searchParams.set('schema', params.schema);\n }\n\n return new PostgresJsAdapter({\n ...this.config,\n databaseURL: url.toString(),\n });\n } else {\n return new PostgresJsAdapter({ ...this.config, ...params });\n }\n }\n\n getDatabase(): string {\n const url = this.getURL();\n return url ? url.pathname.slice(1) : (this.config.database as string);\n }\n\n getUser(): string {\n const url = this.getURL();\n return url ? url.username : (this.config.user as string);\n }\n\n getSchema(): string | undefined {\n return this.schema;\n }\n\n getHost(): string {\n const url = this.getURL();\n return url ? url.hostname : (this.config.host as string);\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values);\n }\n\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return arrays(this.sql, text, values);\n }\n\n async transaction<Result>(\n options: string | undefined,\n cb: (adapter: AdapterBase) => Promise<Result>,\n ): Promise<Result> {\n return (\n options\n ? this.sql.begin(options, (sql) =>\n cb(new PostgresJsTransactionAdapter(this, sql)),\n )\n : this.sql.begin((sql) =>\n cb(new PostgresJsTransactionAdapter(this, sql)),\n )\n ) as never;\n }\n\n close(): Promise<void> {\n return this.sql.end();\n }\n\n assignError(to: QueryError, dbError: Error) {\n const from = dbError as postgres.PostgresError;\n to.message = from.message;\n to.severity = from.severity;\n to.code = from.code;\n to.detail = from.detail;\n to.hint = from.hint;\n to.position = from.position;\n to.where = from.where;\n to.file = from.file;\n to.line = from.line;\n to.routine = from.routine;\n }\n}\n\nconst query = <T extends QueryResultRow = QueryResultRow>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n): Promise<QueryResult<T>> => {\n return sql.unsafe(text, values as never).then(wrapResult);\n};\n\nconst arrays = <R extends any[] = any[]>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n): Promise<QueryArraysResult<R>> => {\n return sql\n .unsafe(text, values as never)\n .values()\n .then(wrapResult);\n};\n\nexport class PostgresJsTransactionAdapter implements AdapterBase {\n errorClass = postgres.PostgresError;\n\n constructor(public adapter: PostgresJsAdapter, public sql: postgres.Sql) {}\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n schema?: string;\n }): AdapterBase {\n return this.adapter.reconfigure(params);\n }\n\n getDatabase(): string {\n return this.adapter.getDatabase();\n }\n\n getUser(): string {\n return this.adapter.getUser();\n }\n\n getSchema(): string | undefined {\n return this.adapter.schema;\n }\n\n getHost(): string {\n return this.adapter.getHost();\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return arrays(this.sql, text, values);\n }\n\n async transaction<Result>(\n _options: string | undefined,\n cb: (adapter: PostgresJsTransactionAdapter) => Promise<Result>,\n ): Promise<Result> {\n return await cb(this);\n }\n\n close(): Promise<void> {\n return this.sql.end();\n }\n\n assignError(to: QueryError, from: Error) {\n return this.adapter.assignError(to, from);\n }\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pqb",
3
- "version": "0.56.7",
3
+ "version": "0.56.8",
4
4
  "description": "Postgres query builder",
5
5
  "homepage": "https://orchid-orm.netlify.app/guide/orm-and-query-builder.html",
6
6
  "repository": {
@@ -39,7 +39,7 @@
39
39
  "license": "ISC",
40
40
  "dependencies": {
41
41
  "@types/pg": ">=8",
42
- "orchid-core": "0.29.3"
42
+ "orchid-core": "0.29.4"
43
43
  },
44
44
  "devDependencies": {
45
45
  "zod": "^3.25.42",