Home / Class/ NeonPreparedQuery Class — drizzle-orm Architecture

NeonPreparedQuery Class — drizzle-orm Architecture

Architecture documentation for the NeonPreparedQuery class in session.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  eff3d8ee_672b_46f7_9a12_e937f96e0d1b["NeonPreparedQuery"]
  bd67ed5b_8d2f_60fd_725e_a8b2ea44664c["session.ts"]
  eff3d8ee_672b_46f7_9a12_e937f96e0d1b -->|defined in| bd67ed5b_8d2f_60fd_725e_a8b2ea44664c
  6410909d_78ed_cdee_f394_9db37fe12ac3["constructor()"]
  eff3d8ee_672b_46f7_9a12_e937f96e0d1b -->|method| 6410909d_78ed_cdee_f394_9db37fe12ac3
  afed55a9_87b6_c85c_1288_688d4915117f["execute()"]
  eff3d8ee_672b_46f7_9a12_e937f96e0d1b -->|method| afed55a9_87b6_c85c_1288_688d4915117f
  17de7b4d_9052_e7cd_dbd6_f08f6b950d33["all()"]
  eff3d8ee_672b_46f7_9a12_e937f96e0d1b -->|method| 17de7b4d_9052_e7cd_dbd6_f08f6b950d33
  bebf416e_9b7b_2c08_8ce0_7fb016182277["values()"]
  eff3d8ee_672b_46f7_9a12_e937f96e0d1b -->|method| bebf416e_9b7b_2c08_8ce0_7fb016182277
  300e4114_5d4c_687a_401b_73d638292ea3["isResponseInArrayMode()"]
  eff3d8ee_672b_46f7_9a12_e937f96e0d1b -->|method| 300e4114_5d4c_687a_401b_73d638292ea3

Relationship Graph

Source Code

drizzle-orm/src/neon-serverless/session.ts lines 27–181

export class NeonPreparedQuery<T extends PreparedQueryConfig> extends PgPreparedQuery<T> {
	static override readonly [entityKind]: string = 'NeonPreparedQuery';

	private rawQueryConfig: QueryConfig;
	private queryConfig: QueryArrayConfig;

	constructor(
		private client: NeonClient,
		queryString: string,
		private params: unknown[],
		private logger: Logger,
		cache: Cache,
		queryMetadata: {
			type: 'select' | 'update' | 'delete' | 'insert';
			tables: string[];
		} | undefined,
		cacheConfig: WithCacheConfig | undefined,
		private fields: SelectedFieldsOrdered | undefined,
		name: string | undefined,
		private _isResponseInArrayMode: boolean,
		private customResultMapper?: (rows: unknown[][]) => T['execute'],
	) {
		super({ sql: queryString, params }, cache, queryMetadata, cacheConfig);
		this.rawQueryConfig = {
			name,
			text: queryString,
			types: {
				// @ts-ignore
				getTypeParser: (typeId, format) => {
					if (typeId === types.builtins.TIMESTAMPTZ) {
						return (val: any) => val;
					}
					if (typeId === types.builtins.TIMESTAMP) {
						return (val: any) => val;
					}
					if (typeId === types.builtins.DATE) {
						return (val: any) => val;
					}
					if (typeId === types.builtins.INTERVAL) {
						return (val: any) => val;
					}
					// numeric[]
					if (typeId === 1231) {
						return (val: any) => val;
					}
					// timestamp[]
					if (typeId === 1115) {
						return (val) => val;
					}
					// timestamp with timezone[]
					if (typeId === 1185) {
						return (val) => val;
					}
					// interval[]
					if (typeId === 1187) {
						return (val) => val;
					}
					// date[]
					if (typeId === 1182) {
						return (val) => val;
					}
					// @ts-ignore
					return types.getTypeParser(typeId, format);
				},
			},
		};
		this.queryConfig = {
			name,
			text: queryString,
			rowMode: 'array',
			types: {
				// @ts-ignore
				getTypeParser: (typeId, format) => {
					if (typeId === types.builtins.TIMESTAMPTZ) {
						return (val: any) => val;
					}
					if (typeId === types.builtins.TIMESTAMP) {
						return (val: any) => val;
					}
					if (typeId === types.builtins.DATE) {
						return (val: any) => val;

Domain

Frequently Asked Questions

What is the NeonPreparedQuery class?
NeonPreparedQuery is a class in the drizzle-orm codebase, defined in drizzle-orm/src/neon-serverless/session.ts.
Where is NeonPreparedQuery defined?
NeonPreparedQuery is defined in drizzle-orm/src/neon-serverless/session.ts at line 27.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free