Skip to content

Commit 9073d9b

Browse files
committed
feat: integrate @sqltools/formatter
1 parent 303a9b8 commit 9073d9b

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

src/enhanced-query-logger.ts

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { format } from "@sqltools/formatter";
12
import type { Logger } from "drizzle-orm/logger";
23
import { colors } from "./colors";
34

@@ -104,16 +105,16 @@ export class EnhancedQueryLogger implements Logger {
104105
return `${colors.dim}$${index + 1}:${colors.reset} ${value}`;
105106
});
106107

107-
return `\n${colors.gray} ├─ Parameters: ${
108-
colors.reset
109-
}${formattedParams.join(", ")}`;
108+
return `${colors.gray}├─ Parameters: ${colors.reset}${
109+
formattedParams.join(", ")
110+
}`;
110111
}
111112

112113
private formatQuery(query: string): string {
113114
return query
114115
.replace(
115116
/\b(SELECT|FROM|WHERE|JOIN|INSERT|INTO|UPDATE|SET|DELETE|CREATE|DROP|ALTER|TABLE|INDEX|PRIMARY|KEY|FOREIGN|REFERENCES|NOT|NULL|DEFAULT|UNIQUE|AUTO_INCREMENT|IF|EXISTS|ON|DUPLICATE|KEY|UPDATE|VALUES|ORDER|BY|GROUP|HAVING|LIMIT|OFFSET|INNER|LEFT|RIGHT|OUTER|UNION|CASE|WHEN|THEN|ELSE|END|AS|DISTINCT|COUNT|SUM|AVG|MAX|MIN|AND|OR|IN|LIKE|BETWEEN|IS)\b/gi,
116-
match => `${colors.blue}${match.toUpperCase()}${colors.reset}`
117+
(match) => `${colors.blue}${match.toUpperCase()}${colors.reset}`,
117118
)
118119
.replace(/('[^']*'|"[^"]*")/g, `${colors.green}$1${colors.reset}`)
119120
.replace(/\b(\d+)\b/g, `${colors.cyan}$1${colors.reset}`);
@@ -136,7 +137,10 @@ export class EnhancedQueryLogger implements Logger {
136137
const typeColor = this.getQueryTypeColor(queryType);
137138
const icon = this.getQueryTypeIcon(queryType);
138139
const paramsStr = this.formatParams(params);
139-
const formattedQuery = this.formatQuery(query);
140+
const formattedQuery = this.formatQuery(
141+
`\n${format(query)}`
142+
.replaceAll("\n", `\n${colors.gray}│\t`),
143+
);
140144

141145
const header = `${colors.bright}${colors.cyan}╭─ Database Query ${colors.dim}#${this.queryCount}${colors.reset}`;
142146
const timeInfo = `${colors.gray}${colors.dim}Time: ${timestamp}${colors.reset}`;
@@ -149,15 +153,15 @@ export class EnhancedQueryLogger implements Logger {
149153
}`;
150154
const queryLine = `${colors.gray}${colors.dim}SQL:${colors.reset} ${formattedQuery}`;
151155
const footer = `${colors.gray}╰─${colors.dim}${"─".repeat(50)}${
152-
colors.reset
153-
}`;
156+
colors.reset}
157+
`;
154158

155159
this.options.log("\n" + header);
156160
this.options.log(timeInfo);
157161
this.options.log(queryInfo);
158162
this.options.log(queryLine);
159163
if (paramsStr) {
160-
this.options.log(`${colors.gray} ${paramsStr}`);
164+
this.options.log(paramsStr);
161165
}
162166
this.options.log(footer);
163167

0 commit comments

Comments
 (0)