typeorm 0.3.12-dev.0eb7441 → 0.3.12-dev.12fdd73

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +6 -0
  2. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  3. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +3 -1
  4. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  5. package/browser/driver/mongodb/MongoDriver.d.ts +1 -1
  6. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  7. package/browser/driver/oracle/OracleDriver.d.ts +1 -1
  8. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  9. package/browser/driver/postgres/PostgresQueryRunner.js +1 -1
  10. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  11. package/browser/driver/sap/SapDriver.d.ts +1 -1
  12. package/browser/driver/sap/SapDriver.js.map +1 -1
  13. package/browser/driver/spanner/SpannerDriver.d.ts +1 -1
  14. package/browser/driver/spanner/SpannerDriver.js.map +1 -1
  15. package/browser/driver/sqlserver/SqlServerDriver.d.ts +1 -1
  16. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  17. package/browser/find-options/FindOperatorType.d.ts +1 -1
  18. package/browser/find-options/FindOperatorType.js.map +1 -1
  19. package/browser/find-options/operator/JsonContains.d.ts +6 -0
  20. package/browser/find-options/operator/JsonContains.js +10 -0
  21. package/browser/find-options/operator/JsonContains.js.map +1 -0
  22. package/browser/index.d.ts +2 -0
  23. package/browser/index.js +2 -0
  24. package/browser/index.js.map +1 -1
  25. package/browser/logger/AbstractLogger.d.ts +49 -0
  26. package/browser/logger/AbstractLogger.js +230 -0
  27. package/browser/logger/AbstractLogger.js.map +1 -0
  28. package/browser/logger/AdvancedConsoleLogger.d.ts +5 -33
  29. package/browser/logger/AdvancedConsoleLogger.js +41 -106
  30. package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
  31. package/browser/logger/DebugLogger.d.ts +9 -29
  32. package/browser/logger/DebugLogger.js +56 -74
  33. package/browser/logger/DebugLogger.js.map +1 -1
  34. package/browser/logger/FileLogger.d.ts +6 -32
  35. package/browser/logger/FileLogger.js +50 -97
  36. package/browser/logger/FileLogger.js.map +1 -1
  37. package/browser/logger/Logger.d.ts +31 -0
  38. package/browser/logger/Logger.js.map +1 -1
  39. package/browser/logger/LoggerOptions.d.ts +2 -1
  40. package/browser/logger/LoggerOptions.js.map +1 -1
  41. package/browser/logger/SimpleConsoleLogger.d.ts +5 -33
  42. package/browser/logger/SimpleConsoleLogger.js +43 -106
  43. package/browser/logger/SimpleConsoleLogger.js.map +1 -1
  44. package/browser/persistence/SubjectTopoligicalSorter.js +2 -6
  45. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  46. package/browser/platform/PlatformTools.d.ts +2 -0
  47. package/browser/platform/PlatformTools.js +6 -0
  48. package/browser/platform/PlatformTools.js.map +1 -1
  49. package/browser/query-builder/QueryBuilder.js +2 -0
  50. package/browser/query-builder/QueryBuilder.js.map +1 -1
  51. package/browser/query-builder/WhereClause.d.ts +1 -1
  52. package/browser/query-builder/WhereClause.js.map +1 -1
  53. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +6 -0
  54. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  55. package/driver/better-sqlite3/BetterSqlite3Driver.js +3 -1
  56. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  57. package/driver/mongodb/MongoDriver.d.ts +1 -1
  58. package/driver/mongodb/MongoDriver.js.map +1 -1
  59. package/driver/oracle/OracleDriver.d.ts +1 -1
  60. package/driver/oracle/OracleDriver.js.map +1 -1
  61. package/driver/postgres/PostgresQueryRunner.js +1 -1
  62. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  63. package/driver/sap/SapDriver.d.ts +1 -1
  64. package/driver/sap/SapDriver.js.map +1 -1
  65. package/driver/spanner/SpannerDriver.d.ts +1 -1
  66. package/driver/spanner/SpannerDriver.js.map +1 -1
  67. package/driver/sqlserver/SqlServerDriver.d.ts +1 -1
  68. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  69. package/find-options/FindOperatorType.d.ts +1 -1
  70. package/find-options/FindOperatorType.js.map +1 -1
  71. package/find-options/operator/JsonContains.d.ts +6 -0
  72. package/find-options/operator/JsonContains.js +14 -0
  73. package/find-options/operator/JsonContains.js.map +1 -0
  74. package/index.d.ts +2 -0
  75. package/index.js +2 -0
  76. package/index.js.map +1 -1
  77. package/index.mjs +4 -0
  78. package/logger/AbstractLogger.d.ts +49 -0
  79. package/logger/AbstractLogger.js +234 -0
  80. package/logger/AbstractLogger.js.map +1 -0
  81. package/logger/AdvancedConsoleLogger.d.ts +5 -33
  82. package/logger/AdvancedConsoleLogger.js +41 -106
  83. package/logger/AdvancedConsoleLogger.js.map +1 -1
  84. package/logger/DebugLogger.d.ts +9 -29
  85. package/logger/DebugLogger.js +56 -75
  86. package/logger/DebugLogger.js.map +1 -1
  87. package/logger/FileLogger.d.ts +6 -32
  88. package/logger/FileLogger.js +50 -97
  89. package/logger/FileLogger.js.map +1 -1
  90. package/logger/Logger.d.ts +31 -0
  91. package/logger/Logger.js.map +1 -1
  92. package/logger/LoggerOptions.d.ts +2 -1
  93. package/logger/LoggerOptions.js.map +1 -1
  94. package/logger/SimpleConsoleLogger.d.ts +5 -33
  95. package/logger/SimpleConsoleLogger.js +43 -106
  96. package/logger/SimpleConsoleLogger.js.map +1 -1
  97. package/package.json +1 -1
  98. package/persistence/SubjectTopoligicalSorter.js +2 -6
  99. package/persistence/SubjectTopoligicalSorter.js.map +1 -1
  100. package/platform/PlatformTools.d.ts +2 -0
  101. package/platform/PlatformTools.js +6 -0
  102. package/platform/PlatformTools.js.map +1 -1
  103. package/query-builder/QueryBuilder.js +2 -0
  104. package/query-builder/QueryBuilder.js.map +1 -1
  105. package/query-builder/WhereClause.d.ts +1 -1
  106. package/query-builder/WhereClause.js.map +1 -1
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractLogger = void 0;
4
+ const PlatformTools_1 = require("../platform/PlatformTools");
5
+ class AbstractLogger {
6
+ // -------------------------------------------------------------------------
7
+ // Constructor
8
+ // -------------------------------------------------------------------------
9
+ constructor(options) {
10
+ this.options = options;
11
+ }
12
+ // -------------------------------------------------------------------------
13
+ // Public Methods
14
+ // -------------------------------------------------------------------------
15
+ /**
16
+ * Logs query and parameters used in it.
17
+ */
18
+ logQuery(query, parameters, queryRunner) {
19
+ if (!this.isLogEnabledFor("query")) {
20
+ return;
21
+ }
22
+ this.writeLog("query", {
23
+ type: "query",
24
+ prefix: "query",
25
+ message: query,
26
+ format: "sql",
27
+ parameters,
28
+ }, queryRunner);
29
+ }
30
+ /**
31
+ * Logs query that is failed.
32
+ */
33
+ logQueryError(error, query, parameters, queryRunner) {
34
+ if (!this.isLogEnabledFor("query-error")) {
35
+ return;
36
+ }
37
+ this.writeLog("warn", [
38
+ {
39
+ type: "query-error",
40
+ prefix: "query failed",
41
+ message: query,
42
+ format: "sql",
43
+ parameters,
44
+ },
45
+ {
46
+ type: "query-error",
47
+ prefix: "error",
48
+ message: error,
49
+ },
50
+ ], queryRunner);
51
+ }
52
+ /**
53
+ * Logs query that is slow.
54
+ */
55
+ logQuerySlow(time, query, parameters, queryRunner) {
56
+ if (!this.isLogEnabledFor("query-slow")) {
57
+ return;
58
+ }
59
+ this.writeLog("warn", [
60
+ {
61
+ type: "query-slow",
62
+ prefix: "query is slow",
63
+ message: query,
64
+ format: "sql",
65
+ parameters,
66
+ additionalInfo: {
67
+ time,
68
+ },
69
+ },
70
+ {
71
+ type: "query-slow",
72
+ prefix: "execution time",
73
+ message: time,
74
+ },
75
+ ], queryRunner);
76
+ }
77
+ /**
78
+ * Logs events from the schema build process.
79
+ */
80
+ logSchemaBuild(message, queryRunner) {
81
+ if (!this.isLogEnabledFor("schema-build")) {
82
+ return;
83
+ }
84
+ this.writeLog("schema", {
85
+ type: "schema-build",
86
+ message,
87
+ }, queryRunner);
88
+ }
89
+ /**
90
+ * Logs events from the migration run process.
91
+ */
92
+ logMigration(message, queryRunner) {
93
+ if (this.isLogEnabledFor("migration")) {
94
+ return;
95
+ }
96
+ this.writeLog("log", {
97
+ type: "migration",
98
+ message,
99
+ }, queryRunner);
100
+ }
101
+ /**
102
+ * Perform logging using given logger, or by default to the console.
103
+ * Log has its own level and message.
104
+ */
105
+ log(level, message, queryRunner) {
106
+ switch (level) {
107
+ case "log":
108
+ if (!this.isLogEnabledFor("log")) {
109
+ return;
110
+ }
111
+ this.writeLog("log", {
112
+ type: "log",
113
+ message,
114
+ }, queryRunner);
115
+ break;
116
+ case "info":
117
+ if (!this.isLogEnabledFor("info")) {
118
+ return;
119
+ }
120
+ this.writeLog("info", {
121
+ type: "info",
122
+ prefix: "info",
123
+ message,
124
+ }, queryRunner);
125
+ break;
126
+ case "warn":
127
+ if (!this.isLogEnabledFor("warn")) {
128
+ return;
129
+ }
130
+ this.writeLog("warn", {
131
+ type: "warn",
132
+ message,
133
+ }, queryRunner);
134
+ break;
135
+ }
136
+ }
137
+ // -------------------------------------------------------------------------
138
+ // Protected Methods
139
+ // -------------------------------------------------------------------------
140
+ /**
141
+ * Check is logging for level or message type is enabled.
142
+ */
143
+ isLogEnabledFor(type) {
144
+ switch (type) {
145
+ case "query":
146
+ return (this.options === "all" ||
147
+ this.options === true ||
148
+ (Array.isArray(this.options) &&
149
+ this.options.indexOf("query") !== -1));
150
+ case "error":
151
+ case "query-error":
152
+ return (this.options === "all" ||
153
+ this.options === true ||
154
+ (Array.isArray(this.options) &&
155
+ this.options.indexOf("error") !== -1));
156
+ case "query-slow":
157
+ return true;
158
+ case "schema":
159
+ case "schema-build":
160
+ return (this.options === "all" ||
161
+ (Array.isArray(this.options) &&
162
+ this.options.indexOf("schema") !== -1));
163
+ case "migration":
164
+ return true;
165
+ case "log":
166
+ return (this.options === "all" ||
167
+ (Array.isArray(this.options) &&
168
+ this.options.indexOf("log") !== -1));
169
+ case "info":
170
+ return (this.options === "all" ||
171
+ (Array.isArray(this.options) &&
172
+ this.options.indexOf("info") !== -1));
173
+ case "warn":
174
+ return (this.options === "all" ||
175
+ (Array.isArray(this.options) &&
176
+ this.options.indexOf("warn") !== -1));
177
+ default:
178
+ return false;
179
+ }
180
+ }
181
+ /**
182
+ * Prepare and format log messages
183
+ */
184
+ prepareLogMessages(logMessage, options) {
185
+ options = {
186
+ ...{
187
+ addColonToPrefix: true,
188
+ appendParameterAsComment: true,
189
+ highlightSql: true,
190
+ },
191
+ ...options,
192
+ };
193
+ const messages = Array.isArray(logMessage) ? logMessage : [logMessage];
194
+ for (let message of messages) {
195
+ if (typeof message !== "object") {
196
+ message = {
197
+ message,
198
+ };
199
+ }
200
+ if (message.format === "sql") {
201
+ let sql = String(message.message);
202
+ if (options.appendParameterAsComment &&
203
+ message.parameters &&
204
+ message.parameters.length) {
205
+ sql += ` -- PARAMETERS: ${this.stringifyParams(message.parameters)}`;
206
+ }
207
+ if (options.highlightSql) {
208
+ sql = PlatformTools_1.PlatformTools.highlightSql(sql);
209
+ }
210
+ message.message = sql;
211
+ }
212
+ if (options.addColonToPrefix && message.prefix) {
213
+ message.prefix += ":";
214
+ }
215
+ }
216
+ return messages;
217
+ }
218
+ /**
219
+ * Converts parameters to a string.
220
+ * Sometimes parameters can have circular objects and therefor we are handle this case too.
221
+ */
222
+ stringifyParams(parameters) {
223
+ try {
224
+ return JSON.stringify(parameters);
225
+ }
226
+ catch (error) {
227
+ // most probably circular objects in parameters
228
+ return parameters;
229
+ }
230
+ }
231
+ }
232
+ exports.AbstractLogger = AbstractLogger;
233
+
234
+ //# sourceMappingURL=AbstractLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/logger/AbstractLogger.ts"],"names":[],"mappings":"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","file":"AbstractLogger.js","sourcesContent":["import {\n Logger,\n LogLevel,\n LogMessage,\n LogMessageType,\n PrepareLogMessagesOptions,\n} from \"./Logger\"\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\nimport { LoggerOptions } from \"./LoggerOptions\"\nimport { PlatformTools } from \"../platform/PlatformTools\"\n\nexport abstract class AbstractLogger implements Logger {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected options?: LoggerOptions) {}\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Logs query and parameters used in it.\n */\n logQuery(query: string, parameters?: any[], queryRunner?: QueryRunner) {\n if (!this.isLogEnabledFor(\"query\")) {\n return\n }\n\n this.writeLog(\n \"query\",\n {\n type: \"query\",\n prefix: \"query\",\n message: query,\n format: \"sql\",\n parameters,\n },\n queryRunner,\n )\n }\n\n /**\n * Logs query that is failed.\n */\n logQueryError(\n error: string,\n query: string,\n parameters?: any[],\n queryRunner?: QueryRunner,\n ) {\n if (!this.isLogEnabledFor(\"query-error\")) {\n return\n }\n\n this.writeLog(\n \"warn\",\n [\n {\n type: \"query-error\",\n prefix: \"query failed\",\n message: query,\n format: \"sql\",\n parameters,\n },\n {\n type: \"query-error\",\n prefix: \"error\",\n message: error,\n },\n ],\n queryRunner,\n )\n }\n\n /**\n * Logs query that is slow.\n */\n logQuerySlow(\n time: number,\n query: string,\n parameters?: any[],\n queryRunner?: QueryRunner,\n ) {\n if (!this.isLogEnabledFor(\"query-slow\")) {\n return\n }\n\n this.writeLog(\n \"warn\",\n [\n {\n type: \"query-slow\",\n prefix: \"query is slow\",\n message: query,\n format: \"sql\",\n parameters,\n additionalInfo: {\n time,\n },\n },\n {\n type: \"query-slow\",\n prefix: \"execution time\",\n message: time,\n },\n ],\n queryRunner,\n )\n }\n\n /**\n * Logs events from the schema build process.\n */\n logSchemaBuild(message: string, queryRunner?: QueryRunner) {\n if (!this.isLogEnabledFor(\"schema-build\")) {\n return\n }\n\n this.writeLog(\n \"schema\",\n {\n type: \"schema-build\",\n message,\n },\n queryRunner,\n )\n }\n\n /**\n * Logs events from the migration run process.\n */\n logMigration(message: string, queryRunner?: QueryRunner) {\n if (this.isLogEnabledFor(\"migration\")) {\n return\n }\n\n this.writeLog(\n \"log\",\n {\n type: \"migration\",\n message,\n },\n queryRunner,\n )\n }\n\n /**\n * Perform logging using given logger, or by default to the console.\n * Log has its own level and message.\n */\n log(\n level: \"log\" | \"info\" | \"warn\",\n message: any,\n queryRunner?: QueryRunner,\n ) {\n switch (level) {\n case \"log\":\n if (!this.isLogEnabledFor(\"log\")) {\n return\n }\n\n this.writeLog(\n \"log\",\n {\n type: \"log\",\n message,\n },\n queryRunner,\n )\n break\n\n case \"info\":\n if (!this.isLogEnabledFor(\"info\")) {\n return\n }\n\n this.writeLog(\n \"info\",\n {\n type: \"info\",\n prefix: \"info\",\n message,\n },\n queryRunner,\n )\n break\n\n case \"warn\":\n if (!this.isLogEnabledFor(\"warn\")) {\n return\n }\n\n this.writeLog(\n \"warn\",\n {\n type: \"warn\",\n message,\n },\n queryRunner,\n )\n break\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Check is logging for level or message type is enabled.\n */\n protected isLogEnabledFor(type?: LogLevel | LogMessageType) {\n switch (type) {\n case \"query\":\n return (\n this.options === \"all\" ||\n this.options === true ||\n (Array.isArray(this.options) &&\n this.options.indexOf(\"query\") !== -1)\n )\n\n case \"error\":\n case \"query-error\":\n return (\n this.options === \"all\" ||\n this.options === true ||\n (Array.isArray(this.options) &&\n this.options.indexOf(\"error\") !== -1)\n )\n\n case \"query-slow\":\n return true\n\n case \"schema\":\n case \"schema-build\":\n return (\n this.options === \"all\" ||\n (Array.isArray(this.options) &&\n this.options.indexOf(\"schema\") !== -1)\n )\n\n case \"migration\":\n return true\n\n case \"log\":\n return (\n this.options === \"all\" ||\n (Array.isArray(this.options) &&\n this.options.indexOf(\"log\") !== -1)\n )\n\n case \"info\":\n return (\n this.options === \"all\" ||\n (Array.isArray(this.options) &&\n this.options.indexOf(\"info\") !== -1)\n )\n\n case \"warn\":\n return (\n this.options === \"all\" ||\n (Array.isArray(this.options) &&\n this.options.indexOf(\"warn\") !== -1)\n )\n\n default:\n return false\n }\n }\n\n /**\n * Write log to specific output.\n */\n protected abstract writeLog(\n level: LogLevel,\n message:\n | LogMessage\n | string\n | number\n | (LogMessage | string | number)[],\n queryRunner?: QueryRunner,\n ): void\n\n /**\n * Prepare and format log messages\n */\n protected prepareLogMessages(\n logMessage:\n | LogMessage\n | string\n | number\n | (LogMessage | string | number)[],\n options?: Partial<PrepareLogMessagesOptions>,\n ): LogMessage[] {\n options = {\n ...{\n addColonToPrefix: true,\n appendParameterAsComment: true,\n highlightSql: true,\n },\n ...options,\n }\n const messages = Array.isArray(logMessage) ? logMessage : [logMessage]\n\n for (let message of messages) {\n if (typeof message !== \"object\") {\n message = {\n message,\n }\n }\n\n if (message.format === \"sql\") {\n let sql = String(message.message)\n\n if (\n options.appendParameterAsComment &&\n message.parameters &&\n message.parameters.length\n ) {\n sql += ` -- PARAMETERS: ${this.stringifyParams(\n message.parameters,\n )}`\n }\n\n if (options.highlightSql) {\n sql = PlatformTools.highlightSql(sql)\n }\n\n message.message = sql\n }\n\n if (options.addColonToPrefix && message.prefix) {\n message.prefix += \":\"\n }\n }\n\n return messages as LogMessage[]\n }\n\n /**\n * Converts parameters to a string.\n * Sometimes parameters can have circular objects and therefor we are handle this case too.\n */\n protected stringifyParams(parameters: any[]) {\n try {\n return JSON.stringify(parameters)\n } catch (error) {\n // most probably circular objects in parameters\n return parameters\n }\n }\n}\n"],"sourceRoot":".."}
@@ -1,41 +1,13 @@
1
- import { LoggerOptions } from "./LoggerOptions";
1
+ import { AbstractLogger } from "./AbstractLogger";
2
+ import { LogLevel, LogMessage } from "./Logger";
2
3
  import { QueryRunner } from "../query-runner/QueryRunner";
3
- import { Logger } from "./Logger";
4
4
  /**
5
5
  * Performs logging of the events in TypeORM.
6
6
  * This version of logger uses console to log events and use syntax highlighting.
7
7
  */
8
- export declare class AdvancedConsoleLogger implements Logger {
9
- private options?;
10
- constructor(options?: LoggerOptions | undefined);
8
+ export declare class AdvancedConsoleLogger extends AbstractLogger {
11
9
  /**
12
- * Logs query and parameters used in it.
10
+ * Write log to specific output.
13
11
  */
14
- logQuery(query: string, parameters?: any[], queryRunner?: QueryRunner): void;
15
- /**
16
- * Logs query that is failed.
17
- */
18
- logQueryError(error: string, query: string, parameters?: any[], queryRunner?: QueryRunner): void;
19
- /**
20
- * Logs query that is slow.
21
- */
22
- logQuerySlow(time: number, query: string, parameters?: any[], queryRunner?: QueryRunner): void;
23
- /**
24
- * Logs events from the schema build process.
25
- */
26
- logSchemaBuild(message: string, queryRunner?: QueryRunner): void;
27
- /**
28
- * Logs events from the migration run process.
29
- */
30
- logMigration(message: string, queryRunner?: QueryRunner): void;
31
- /**
32
- * Perform logging using given logger, or by default to the console.
33
- * Log has its own level and message.
34
- */
35
- log(level: "log" | "info" | "warn", message: any, queryRunner?: QueryRunner): void;
36
- /**
37
- * Converts parameters to a string.
38
- * Sometimes parameters can have circular objects and therefore we are handle this case too.
39
- */
40
- protected stringifyParams(parameters: any[]): string | any[];
12
+ protected writeLog(level: LogLevel, logMessage: LogMessage | LogMessage[], queryRunner?: QueryRunner): void;
41
13
  }
@@ -2,118 +2,53 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AdvancedConsoleLogger = void 0;
4
4
  const PlatformTools_1 = require("../platform/PlatformTools");
5
+ const AbstractLogger_1 = require("./AbstractLogger");
5
6
  /**
6
7
  * Performs logging of the events in TypeORM.
7
8
  * This version of logger uses console to log events and use syntax highlighting.
8
9
  */
9
- class AdvancedConsoleLogger {
10
- // -------------------------------------------------------------------------
11
- // Constructor
12
- // -------------------------------------------------------------------------
13
- constructor(options) {
14
- this.options = options;
15
- }
16
- // -------------------------------------------------------------------------
17
- // Public Methods
18
- // -------------------------------------------------------------------------
19
- /**
20
- * Logs query and parameters used in it.
21
- */
22
- logQuery(query, parameters, queryRunner) {
23
- if (this.options === "all" ||
24
- this.options === true ||
25
- (Array.isArray(this.options) &&
26
- this.options.indexOf("query") !== -1)) {
27
- const sql = query +
28
- (parameters && parameters.length
29
- ? " -- PARAMETERS: " + this.stringifyParams(parameters)
30
- : "");
31
- PlatformTools_1.PlatformTools.logInfo("query:", PlatformTools_1.PlatformTools.highlightSql(sql));
32
- }
33
- }
34
- /**
35
- * Logs query that is failed.
36
- */
37
- logQueryError(error, query, parameters, queryRunner) {
38
- if (this.options === "all" ||
39
- this.options === true ||
40
- (Array.isArray(this.options) &&
41
- this.options.indexOf("error") !== -1)) {
42
- const sql = query +
43
- (parameters && parameters.length
44
- ? " -- PARAMETERS: " + this.stringifyParams(parameters)
45
- : "");
46
- PlatformTools_1.PlatformTools.logError(`query failed:`, PlatformTools_1.PlatformTools.highlightSql(sql));
47
- PlatformTools_1.PlatformTools.logError(`error:`, error);
48
- }
49
- }
50
- /**
51
- * Logs query that is slow.
52
- */
53
- logQuerySlow(time, query, parameters, queryRunner) {
54
- const sql = query +
55
- (parameters && parameters.length
56
- ? " -- PARAMETERS: " + this.stringifyParams(parameters)
57
- : "");
58
- PlatformTools_1.PlatformTools.logWarn(`query is slow:`, PlatformTools_1.PlatformTools.highlightSql(sql));
59
- PlatformTools_1.PlatformTools.logWarn(`execution time:`, time);
60
- }
10
+ class AdvancedConsoleLogger extends AbstractLogger_1.AbstractLogger {
61
11
  /**
62
- * Logs events from the schema build process.
12
+ * Write log to specific output.
63
13
  */
64
- logSchemaBuild(message, queryRunner) {
65
- if (this.options === "all" ||
66
- (Array.isArray(this.options) &&
67
- this.options.indexOf("schema") !== -1)) {
68
- PlatformTools_1.PlatformTools.log(message);
69
- }
70
- }
71
- /**
72
- * Logs events from the migration run process.
73
- */
74
- logMigration(message, queryRunner) {
75
- PlatformTools_1.PlatformTools.log(message);
76
- }
77
- /**
78
- * Perform logging using given logger, or by default to the console.
79
- * Log has its own level and message.
80
- */
81
- log(level, message, queryRunner) {
82
- switch (level) {
83
- case "log":
84
- if (this.options === "all" ||
85
- (Array.isArray(this.options) &&
86
- this.options.indexOf("log") !== -1))
87
- PlatformTools_1.PlatformTools.log(message);
88
- break;
89
- case "info":
90
- if (this.options === "all" ||
91
- (Array.isArray(this.options) &&
92
- this.options.indexOf("info") !== -1))
93
- PlatformTools_1.PlatformTools.logInfo("INFO:", message);
94
- break;
95
- case "warn":
96
- if (this.options === "all" ||
97
- (Array.isArray(this.options) &&
98
- this.options.indexOf("warn") !== -1))
99
- console.warn(PlatformTools_1.PlatformTools.warn(message));
100
- break;
101
- }
102
- }
103
- // -------------------------------------------------------------------------
104
- // Protected Methods
105
- // -------------------------------------------------------------------------
106
- /**
107
- * Converts parameters to a string.
108
- * Sometimes parameters can have circular objects and therefore we are handle this case too.
109
- */
110
- stringifyParams(parameters) {
111
- try {
112
- return JSON.stringify(parameters);
113
- }
114
- catch (error) {
115
- // most probably circular objects in parameters
116
- return parameters;
14
+ writeLog(level, logMessage, queryRunner) {
15
+ var _a;
16
+ const messages = this.prepareLogMessages(logMessage);
17
+ for (let message of messages) {
18
+ switch ((_a = message.type) !== null && _a !== void 0 ? _a : level) {
19
+ case "log":
20
+ case "schema-build":
21
+ case "migration":
22
+ PlatformTools_1.PlatformTools.log(String(message.message));
23
+ break;
24
+ case "info":
25
+ case "query":
26
+ if (message.prefix) {
27
+ PlatformTools_1.PlatformTools.logInfo(message.prefix, message.message);
28
+ }
29
+ else {
30
+ PlatformTools_1.PlatformTools.log(String(message.message));
31
+ }
32
+ break;
33
+ case "warn":
34
+ case "query-slow":
35
+ if (message.prefix) {
36
+ PlatformTools_1.PlatformTools.logWarn(message.prefix, message.message);
37
+ }
38
+ else {
39
+ console.warn(PlatformTools_1.PlatformTools.warn(String(message.message)));
40
+ }
41
+ break;
42
+ case "error":
43
+ case "query-error":
44
+ if (message.prefix) {
45
+ PlatformTools_1.PlatformTools.logError(message.prefix, String(message.message));
46
+ }
47
+ else {
48
+ console.error(PlatformTools_1.PlatformTools.error(String(message.message)));
49
+ }
50
+ break;
51
+ }
117
52
  }
118
53
  }
119
54
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/logger/AdvancedConsoleLogger.ts"],"names":[],"mappings":"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","file":"AdvancedConsoleLogger.js","sourcesContent":["import { LoggerOptions } from \"./LoggerOptions\"\nimport { PlatformTools } from \"../platform/PlatformTools\"\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\nimport { Logger } from \"./Logger\"\n\n/**\n * Performs logging of the events in TypeORM.\n * This version of logger uses console to log events and use syntax highlighting.\n */\nexport class AdvancedConsoleLogger implements Logger {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(private options?: LoggerOptions) {}\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Logs query and parameters used in it.\n */\n logQuery(query: string, parameters?: any[], queryRunner?: QueryRunner) {\n if (\n this.options === \"all\" ||\n this.options === true ||\n (Array.isArray(this.options) &&\n this.options.indexOf(\"query\") !== -1)\n ) {\n const sql =\n query +\n (parameters && parameters.length\n ? \" -- PARAMETERS: \" + this.stringifyParams(parameters)\n : \"\")\n PlatformTools.logInfo(\"query:\", PlatformTools.highlightSql(sql))\n }\n }\n\n /**\n * Logs query that is failed.\n */\n logQueryError(\n error: string,\n query: string,\n parameters?: any[],\n queryRunner?: QueryRunner,\n ) {\n if (\n this.options === \"all\" ||\n this.options === true ||\n (Array.isArray(this.options) &&\n this.options.indexOf(\"error\") !== -1)\n ) {\n const sql =\n query +\n (parameters && parameters.length\n ? \" -- PARAMETERS: \" + this.stringifyParams(parameters)\n : \"\")\n PlatformTools.logError(\n `query failed:`,\n PlatformTools.highlightSql(sql),\n )\n PlatformTools.logError(`error:`, error)\n }\n }\n\n /**\n * Logs query that is slow.\n */\n logQuerySlow(\n time: number,\n query: string,\n parameters?: any[],\n queryRunner?: QueryRunner,\n ) {\n const sql =\n query +\n (parameters && parameters.length\n ? \" -- PARAMETERS: \" + this.stringifyParams(parameters)\n : \"\")\n PlatformTools.logWarn(`query is slow:`, PlatformTools.highlightSql(sql))\n PlatformTools.logWarn(`execution time:`, time)\n }\n\n /**\n * Logs events from the schema build process.\n */\n logSchemaBuild(message: string, queryRunner?: QueryRunner) {\n if (\n this.options === \"all\" ||\n (Array.isArray(this.options) &&\n this.options.indexOf(\"schema\") !== -1)\n ) {\n PlatformTools.log(message)\n }\n }\n\n /**\n * Logs events from the migration run process.\n */\n logMigration(message: string, queryRunner?: QueryRunner) {\n PlatformTools.log(message)\n }\n\n /**\n * Perform logging using given logger, or by default to the console.\n * Log has its own level and message.\n */\n log(\n level: \"log\" | \"info\" | \"warn\",\n message: any,\n queryRunner?: QueryRunner,\n ) {\n switch (level) {\n case \"log\":\n if (\n this.options === \"all\" ||\n (Array.isArray(this.options) &&\n this.options.indexOf(\"log\") !== -1)\n )\n PlatformTools.log(message)\n break\n case \"info\":\n if (\n this.options === \"all\" ||\n (Array.isArray(this.options) &&\n this.options.indexOf(\"info\") !== -1)\n )\n PlatformTools.logInfo(\"INFO:\", message)\n break\n case \"warn\":\n if (\n this.options === \"all\" ||\n (Array.isArray(this.options) &&\n this.options.indexOf(\"warn\") !== -1)\n )\n console.warn(PlatformTools.warn(message))\n break\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Converts parameters to a string.\n * Sometimes parameters can have circular objects and therefore we are handle this case too.\n */\n protected stringifyParams(parameters: any[]) {\n try {\n return JSON.stringify(parameters)\n } catch (error) {\n // most probably circular objects in parameters\n return parameters\n }\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/logger/AdvancedConsoleLogger.ts"],"names":[],"mappings":";;;AAAA,6DAAyD;AACzD,qDAAiD;AAIjD;;;GAGG;AACH,MAAa,qBAAsB,SAAQ,+BAAc;IACrD;;OAEG;IACO,QAAQ,CACd,KAAe,EACf,UAAqC,EACrC,WAAyB;;QAEzB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAA;QAEpD,KAAK,IAAI,OAAO,IAAI,QAAQ,EAAE;YAC1B,QAAQ,MAAA,OAAO,CAAC,IAAI,mCAAI,KAAK,EAAE;gBAC3B,KAAK,KAAK,CAAC;gBACX,KAAK,cAAc,CAAC;gBACpB,KAAK,WAAW;oBACZ,6BAAa,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;oBAC1C,MAAK;gBAET,KAAK,MAAM,CAAC;gBACZ,KAAK,OAAO;oBACR,IAAI,OAAO,CAAC,MAAM,EAAE;wBAChB,6BAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;qBACzD;yBAAM;wBACH,6BAAa,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;qBAC7C;oBACD,MAAK;gBAET,KAAK,MAAM,CAAC;gBACZ,KAAK,YAAY;oBACb,IAAI,OAAO,CAAC,MAAM,EAAE;wBAChB,6BAAa,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;qBACzD;yBAAM;wBACH,OAAO,CAAC,IAAI,CACR,6BAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAC9C,CAAA;qBACJ;oBACD,MAAK;gBAET,KAAK,OAAO,CAAC;gBACb,KAAK,aAAa;oBACd,IAAI,OAAO,CAAC,MAAM,EAAE;wBAChB,6BAAa,CAAC,QAAQ,CAClB,OAAO,CAAC,MAAM,EACd,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAC1B,CAAA;qBACJ;yBAAM;wBACH,OAAO,CAAC,KAAK,CACT,6BAAa,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAC/C,CAAA;qBACJ;oBACD,MAAK;aACZ;SACJ;IACL,CAAC;CACJ;AAvDD,sDAuDC","file":"AdvancedConsoleLogger.js","sourcesContent":["import { PlatformTools } from \"../platform/PlatformTools\"\nimport { AbstractLogger } from \"./AbstractLogger\"\nimport { LogLevel, LogMessage } from \"./Logger\"\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\n\n/**\n * Performs logging of the events in TypeORM.\n * This version of logger uses console to log events and use syntax highlighting.\n */\nexport class AdvancedConsoleLogger extends AbstractLogger {\n /**\n * Write log to specific output.\n */\n protected writeLog(\n level: LogLevel,\n logMessage: LogMessage | LogMessage[],\n queryRunner?: QueryRunner,\n ) {\n const messages = this.prepareLogMessages(logMessage)\n\n for (let message of messages) {\n switch (message.type ?? level) {\n case \"log\":\n case \"schema-build\":\n case \"migration\":\n PlatformTools.log(String(message.message))\n break\n\n case \"info\":\n case \"query\":\n if (message.prefix) {\n PlatformTools.logInfo(message.prefix, message.message)\n } else {\n PlatformTools.log(String(message.message))\n }\n break\n\n case \"warn\":\n case \"query-slow\":\n if (message.prefix) {\n PlatformTools.logWarn(message.prefix, message.message)\n } else {\n console.warn(\n PlatformTools.warn(String(message.message)),\n )\n }\n break\n\n case \"error\":\n case \"query-error\":\n if (message.prefix) {\n PlatformTools.logError(\n message.prefix,\n String(message.message),\n )\n } else {\n console.error(\n PlatformTools.error(String(message.message)),\n )\n }\n break\n }\n }\n }\n}\n"],"sourceRoot":".."}
@@ -1,40 +1,20 @@
1
- import { Logger } from "./Logger";
1
+ import { AbstractLogger } from "./AbstractLogger";
2
+ import { LogLevel, LogMessage, LogMessageType } from "./Logger";
2
3
  import { QueryRunner } from "../query-runner/QueryRunner";
3
4
  /**
4
5
  * Performs logging of the events in TypeORM via debug library.
5
6
  */
6
- export declare class DebugLogger implements Logger {
7
- private debugQueryLog;
8
- private debugQueryError;
9
- private debugQuerySlow;
10
- private debugSchemaBuild;
11
- private debugMigration;
12
- private debugLog;
13
- private debugInfo;
14
- private debugWarn;
7
+ export declare class DebugLogger extends AbstractLogger {
15
8
  /**
16
- * Logs query and parameters used in it.
9
+ * Object with all debug logger.
17
10
  */
18
- logQuery(query: string, parameters?: any[], queryRunner?: QueryRunner): void;
11
+ private logger;
19
12
  /**
20
- * Logs query that failed.
13
+ * Check is logging for level or message type is enabled.
21
14
  */
22
- logQueryError(error: string, query: string, parameters?: any[], queryRunner?: QueryRunner): void;
15
+ protected isLogEnabledFor(type?: LogLevel | LogMessageType): boolean;
23
16
  /**
24
- * Logs query that is slow.
17
+ * Write log to specific output.
25
18
  */
26
- logQuerySlow(time: number, query: string, parameters?: any[], queryRunner?: QueryRunner): void;
27
- /**
28
- * Logs events from the schema build process.
29
- */
30
- logSchemaBuild(message: string, queryRunner?: QueryRunner): void;
31
- /**
32
- * Logs events from the migration run process.
33
- */
34
- logMigration(message: string, queryRunner?: QueryRunner): void;
35
- /**
36
- * Perform logging using given logger.
37
- * Log has its own level and message.
38
- */
39
- log(level: "log" | "info" | "warn", message: any, queryRunner?: QueryRunner): void;
19
+ protected writeLog(level: LogLevel, logMessage: LogMessage | LogMessage[], queryRunner?: QueryRunner): void;
40
20
  }