@debugr/sql-common
Advanced tools
+3
-3
@@ -1,2 +0,2 @@ | ||
| // Generated by dts-bundle-generator v6.12.0 | ||
| // Generated by dts-bundle-generator v6.13.0 | ||
@@ -14,7 +14,7 @@ import { LogEntry, TContextBase, TContextShape } from '@debugr/core'; | ||
| } | ||
| export interface SqlLogEntry< | ||
| export interface SqlQueryLogEntry< | ||
| TTaskContext extends TContextBase = TContextBase, | ||
| TGlobalContext extends TContextShape = TContextShape, | ||
| > extends LogEntry<TTaskContext, TGlobalContext> { | ||
| format: 'sql'; | ||
| type: 'sql.query'; | ||
| data: SqlQueryData; | ||
@@ -21,0 +21,0 @@ } |
+3
-3
| { | ||
| "name": "@debugr/sql-common", | ||
| "version": "3.0.0-rc.2", | ||
| "version": "3.0.0-rc.3", | ||
| "description": "Common interfaces and utility functions for SQL plugins", | ||
@@ -14,3 +14,3 @@ "author": { | ||
| "dependencies": { | ||
| "@debugr/core": "3.0.0-rc.3" | ||
| "@debugr/core": "^3.0.0-rc.4" | ||
| }, | ||
@@ -48,3 +48,3 @@ "devDependencies": { | ||
| }, | ||
| "gitHead": "f3dc809097add9a2c417a17b3c0737061646894c" | ||
| "gitHead": "1ca31e1c028fa2ed1c70887c00f2243ceb655ffb" | ||
| } |
+42
-0
| Common SQL interfaces and utilities | ||
| =================================== | ||
| This package defines the shape of the `data` included in entries which | ||
| represent an SQL query. Plugins which produce or consume such entries | ||
| should conform to this shape. Unless you're developing a Debugr plugin | ||
| or log handler, you usually don't need to worry about this package, as it will | ||
| be installed and used automatically when required. | ||
| ## For plugin developers | ||
| The package exports the following type definitions: | ||
| ```typescript | ||
| export interface SqlQueryData { | ||
| query: string; // The SQL query | ||
| parameters?: any[]; // Any parameters passed to the SQL query | ||
| error?: string; // Any error message produced by the query | ||
| stack?: string; // Stack trace for the call which issued a query | ||
| affectedRows?: number; // The number of rows affected by a DML query | ||
| rows?: number; // The number of rows selected by a DQL query | ||
| time?: number; // The time the query took to execute | ||
| } | ||
| export interface SqlQueryLogEntry< | ||
| TTaskContext extends TContextBase = TContextBase, | ||
| TGlobalContext extends TContextShape = TContextShape, | ||
| > extends LogEntry<TTaskContext, TGlobalContext> { | ||
| type: 'sql.query'; | ||
| data: SqlQueryData; | ||
| } | ||
| ``` | ||
| There are also a couple of utility functions exported: | ||
| - `formatQueryTime(ms: number, html: boolean = false): string` - This function formats the duration of an SQL query | ||
| as a fraction of seconds if the duration was over 1000ms, or as milliseconds if the duration was lower, with the | ||
| numeric part optionally wrapped in a HTML `<strong>` tag when `html` is set to `true`. For example: `35.753241` | ||
| would result in `35.75 ms` or `<strong>35.75</strong> ms` and `5645.6768576` would result in `5.64 s` or | ||
| `<strong>5.64</strong> s`. | ||
| - `createQueryFormatter(): (query: string) => string` - This function attempts to load the `@sqltools/formatter` | ||
| package and returns a preconfigured callback which converts reserved words to uppercase and inserts some strategic | ||
| newlines to make the query easier to read; if the package isn't installed, it simply returns a noop callback which | ||
| just returns the passed query as-is. |
8186
34.86%45
1400%+ Added
+ Added
- Removed
- Removed
Updated