Skip to content

Commit 903881e

Browse files
rtolsmaclaude
andcommitted
fix: Emit type-only imports in all driver preambles
Driver preambles imported types (QueryArrayConfig/QueryArrayResult from pg, Sql from postgres, Database from better-sqlite3, mysql/RowDataPacket/ ResultSetHeader from mysql2) as value imports, which fails to compile under `verbatimModuleSyntax` and forces the runtime driver package to be a hard dependency of the generated module. All preamble imports are now `import type`. The mysql2 default+named import is split into two declarations because a type-only import cannot combine a default import with named bindings. Verified the generated output for all drivers compiles under `tsc --strict` with `verbatimModuleSyntax: true`. Fixes #55. Fixes #61. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GFyrFwpJC2eivaBRyNBJqv
1 parent cd4421a commit 903881e

11 files changed

Lines changed: 26 additions & 12 deletions

File tree

‎examples/bun-mysql2/src/db/query_sql.ts‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
// Code generated by sqlc. DO NOT EDIT.
22

3-
import mysql, { RowDataPacket, ResultSetHeader } from "mysql2/promise";
3+
import type mysql from "mysql2/promise";
4+
5+
import type { RowDataPacket, ResultSetHeader } from "mysql2/promise";
46

57
type Client = mysql.Connection | mysql.Pool;
68

‎examples/bun-pg/src/db/query_sql.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Code generated by sqlc. DO NOT EDIT.
22

3-
import { QueryArrayConfig, QueryArrayResult } from "pg";
3+
import type { QueryArrayConfig, QueryArrayResult } from "pg";
44

55
interface Client {
66
query: (config: QueryArrayConfig) => Promise<QueryArrayResult>;

‎examples/bun-postgres/src/db/query_sql.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Code generated by sqlc. DO NOT EDIT.
22

3-
import { Sql } from "postgres";
3+
import type { Sql } from "postgres";
44

55
export const getAuthorQuery = `-- name: GetAuthor :one
66
SELECT id, name, bio FROM authors

‎examples/node-better-sqlite3/src/db/query_sql.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Code generated by sqlc. DO NOT EDIT.
22

3-
import { Database } from "better-sqlite3";
3+
import type { Database } from "better-sqlite3";
44

55
export const getAuthorQuery = `-- name: GetAuthor :one
66
SELECT id, name, bio FROM authors

‎examples/node-mysql2/src/db/query_sql.ts‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
// Code generated by sqlc. DO NOT EDIT.
22

3-
import mysql, { RowDataPacket, ResultSetHeader } from "mysql2/promise";
3+
import type mysql from "mysql2/promise";
4+
5+
import type { RowDataPacket, ResultSetHeader } from "mysql2/promise";
46

57
type Client = mysql.Connection | mysql.Pool;
68

‎examples/node-pg/src/db/query_sql.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Code generated by sqlc. DO NOT EDIT.
22

3-
import { QueryArrayConfig, QueryArrayResult } from "pg";
3+
import type { QueryArrayConfig, QueryArrayResult } from "pg";
44

55
interface Client {
66
query: (config: QueryArrayConfig) => Promise<QueryArrayResult>;

‎examples/node-postgres/src/db/query_sql.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Code generated by sqlc. DO NOT EDIT.
22

3-
import { Sql } from "postgres";
3+
import type { Sql } from "postgres";
44

55
export const getAuthorQuery = `-- name: GetAuthor :one
66
SELECT id, name, bio FROM authors

‎src/drivers/better-sqlite3.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ export class Driver {
125125
factory.createImportDeclaration(
126126
undefined,
127127
factory.createImportClause(
128-
false,
128+
true,
129129
undefined,
130130
factory.createNamedImports([
131131
factory.createImportSpecifier(

‎src/drivers/mysql2.ts‎

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,8 +237,18 @@ export class Driver {
237237
factory.createImportDeclaration(
238238
undefined,
239239
factory.createImportClause(
240-
false,
240+
true,
241241
factory.createIdentifier("mysql"),
242+
undefined
243+
),
244+
factory.createStringLiteral("mysql2/promise"),
245+
undefined
246+
),
247+
factory.createImportDeclaration(
248+
undefined,
249+
factory.createImportClause(
250+
true,
251+
undefined,
242252
factory.createNamedImports([
243253
factory.createImportSpecifier(
244254
false,

‎src/drivers/pg.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ export class Driver {
350350
factory.createImportDeclaration(
351351
undefined,
352352
factory.createImportClause(
353-
false,
353+
true,
354354
undefined,
355355
factory.createNamedImports([
356356
factory.createImportSpecifier(
@@ -381,7 +381,7 @@ export class Driver {
381381
factory.createImportDeclaration(
382382
undefined,
383383
factory.createImportClause(
384-
false,
384+
true,
385385
undefined,
386386
factory.createNamedImports([
387387
factory.createImportSpecifier(

0 commit comments

Comments
 (0)