{"version":3,"file":"driver-core.cjs","names":["PgAsyncDatabase","entityKind","PgDialect","minipgShapeCodecs","buildShape","DefaultLogger","PostgresHttpSession"],"sources":["../../../src/postgres/http/driver-core.ts"],"sourcesContent":["import type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgAsyncDatabase } from '~/pg-core/async/db.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { DrizzlePgConfig } from '~/pg-core/utils.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { jitCompatCheck } from '~/utils.ts';\nimport { minipgShapeCodecs } from '../codecs.ts';\nimport { buildShape } from '../shape.ts';\nimport type {\n\tPostgresHttpBatchOptions,\n\tPostgresHttpBatchRunner,\n\tPostgresHttpClient,\n\tPostgresHttpQueryResultHKT,\n} from './session.ts';\nimport { PostgresHttpSession } from './session.ts';\n\nexport class PostgresHttpDatabase<\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends PgAsyncDatabase<PostgresHttpQueryResultHKT, TRelations> {\n\tstatic override readonly [entityKind]: string = 'PostgresHttpDatabase';\n\n\t/** @internal */\n\tdeclare session: PostgresHttpSession<TRelations>;\n\n\tasync batch<U extends BatchItem<'pg'>, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t\toptions?: PostgresHttpBatchOptions,\n\t): Promise<BatchResponse<T>> {\n\t\treturn this.session.batch(batch, options) as Promise<BatchResponse<T>>;\n\t}\n}\n\n/** @internal */\nexport function construct<\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends PostgresHttpClient = PostgresHttpClient,\n>(\n\tclient: TClient,\n\trunBatch: PostgresHttpBatchRunner,\n\tconfig: DrizzlePgConfig<TRelations> = {},\n): PostgresHttpDatabase<TRelations> & {\n\t$client: TClient;\n} {\n\tconst clientConfig = (<any> client).cfg ?? client;\n\tif (config.codecs && clientConfig?.temporal) clientConfig.temporal = 'string';\n\n\tconst dialect = new PgDialect({\n\t\tcodecs: config.codecs ?? minipgShapeCodecs,\n\t\tuseJitMappers: jitCompatCheck(config.jit),\n\t\t// Shape generator is statically linked to own set of codecs\n\t\t// Overriden codecs are impossible to determine shape for\n\t\tshapeGenerator: config.codecs ? undefined : buildShape,\n\t});\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tconst relations = config.relations ?? {};\n\tconst session = new PostgresHttpSession(client, runBatch, dialect, relations, {\n\t\tlogger,\n\t\tcache: config.cache,\n\t});\n\n\tconst db = new PostgresHttpDatabase(\n\t\tdialect,\n\t\tsession,\n\t\trelations,\n\t) as PostgresHttpDatabase<TRelations>;\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n"],"mappings":";;;;;;;;;;;;AAkBA,IAAa,uBAAb,cAEUA,sCAAwD;CACjE,QAA0BC,0BAAsB;CAKhD,MAAM,MACL,OACA,SAC4B;AAC5B,SAAO,KAAK,QAAQ,MAAM,OAAO,QAAQ;;;;AAK3C,SAAgB,UAIf,QACA,UACA,SAAsC,EAAE,EAGvC;CACD,MAAM,eAAsB,OAAQ,OAAO;AAC3C,KAAI,OAAO,UAAU,cAAc,SAAU,cAAa,WAAW;CAErE,MAAM,UAAU,IAAIC,+BAAU;EAC7B,QAAQ,OAAO,UAAUC;EACzB,8CAA8B,OAAO,IAAI;EAGzC,gBAAgB,OAAO,SAAS,SAAYC;EAC5C,CAAC;CACF,IAAI;AACJ,KAAI,OAAO,WAAW,KACrB,UAAS,IAAIC,2BAAe;UAClB,OAAO,WAAW,MAC5B,UAAS,OAAO;CAGjB,MAAM,YAAY,OAAO,aAAa,EAAE;CAMxC,MAAM,KAAK,IAAI,qBACd,SANe,IAAIC,kDAAoB,QAAQ,UAAU,SAAS,WAAW;EAC7E;EACA,OAAO,OAAO;EACd,CAAC,EAKD,UACA;AACD,CAAO,GAAI,UAAU;AACrB,CAAO,GAAI,SAAS,OAAO;AAC3B,KAAW,GAAI,OACd,CAAO,GAAI,OAAO,gBAAgB,OAAO,OAAO;AAGjD,QAAO"}