@breautek/storm 3.1.0 → 3.2.1

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 (88) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/docs/classes/Application.Application-1.md +54 -24
  3. package/docs/classes/BackendAuthenticationMiddleware.BackendAuthenticationMiddleware-1.md +3 -4
  4. package/docs/classes/CORSMiddleware.CORSMiddleware-1.md +6 -6
  5. package/docs/classes/ConfigLoader.ConfigLoader-1.md +1 -1
  6. package/docs/classes/Database.Database-1.md +40 -10
  7. package/docs/classes/DatabaseConnection.DatabaseConnection-1.md +19 -19
  8. package/docs/classes/DatabaseQueryError.DatabaseQueryError-1.md +8 -8
  9. package/docs/classes/DiskSpaceError.DiskSpaceError-1.md +8 -8
  10. package/docs/classes/DropTemporaryTableQuery.DropTemporaryTableQuery-1.md +8 -8
  11. package/docs/classes/DumpStream.DumpStream-1.md +1 -1
  12. package/docs/classes/DuplicateEntryError.DuplicateEntryError-1.md +8 -8
  13. package/docs/classes/EntityNotFoundError.EntityNotFoundError-1.md +8 -8
  14. package/docs/classes/ExpiredTokenError.ExpiredTokenError-1.md +8 -8
  15. package/docs/classes/Handler.Handler-1.md +13 -13
  16. package/docs/classes/InternalError.InternalError-1.md +8 -8
  17. package/docs/classes/InvalidConfigError.InvalidConfigError-1.md +8 -8
  18. package/docs/classes/InvalidCredentialsError.InvalidCredentialsError-1.md +8 -8
  19. package/docs/classes/InvalidValueError.InvalidValueError-1.md +8 -8
  20. package/docs/classes/JWTVerifyOptionsParser.JWTVerifyOptionsParser-1.md +2 -2
  21. package/docs/classes/ManagedDatabaseConnection.ManagedDatabaseConnection-1.md +19 -19
  22. package/docs/classes/Middleware.Middleware-1.md +3 -3
  23. package/docs/classes/MissingConfigError.MissingConfigError-1.md +8 -8
  24. package/docs/classes/MissingParameterError.MissingParameterError-1.md +8 -8
  25. package/docs/classes/MySQLConnection.MySQLConnection-1.md +20 -20
  26. package/docs/classes/MySQLDatabase.MySQLDatabase-1.md +49 -11
  27. package/docs/classes/Query.Query-1.md +8 -8
  28. package/docs/classes/RawQuery.RawQuery-1.md +8 -8
  29. package/docs/classes/Request.Request-1.md +18 -18
  30. package/docs/classes/Response.Response-1.md +11 -11
  31. package/docs/classes/ResponseData.ResponseData-1.md +7 -7
  32. package/docs/classes/ServiceProvider.ServiceProvider-1.md +15 -15
  33. package/docs/classes/ServiceResponse.ServiceResponse-1.md +4 -4
  34. package/docs/classes/StormError.StormError-1.md +8 -8
  35. package/docs/classes/TemporaryTableQuery.TemporaryTableQuery-1.md +8 -8
  36. package/docs/classes/Token.Token-1.md +2 -2
  37. package/docs/classes/TokenManager.TokenManager-1.md +4 -4
  38. package/docs/classes/UnauthorizedAccessError.UnauthorizedAccessError-1.md +8 -8
  39. package/docs/classes/private_CommitQuery.CommitQuery.md +8 -8
  40. package/docs/classes/private_RollbackQuery.RollbackQuery.md +8 -8
  41. package/docs/classes/private_StartTransactionQuery.StartTransactionQuery.md +8 -8
  42. package/docs/enums/ApplicationEvent.ApplicationEvent-1.md +1 -1
  43. package/docs/enums/ErrorCode.ErrorCode-1.md +9 -9
  44. package/docs/enums/ExitCode.ExitCode-1.md +2 -2
  45. package/docs/enums/HTTPMethod.HTTPMethod-1.md +4 -4
  46. package/docs/enums/JWTError.JWTError-1.md +2 -2
  47. package/docs/enums/StatusCode.StatusCode-1.md +48 -48
  48. package/docs/interfaces/DropTemporaryTableQuery.IDropTemporaryTableQueryInput.md +1 -1
  49. package/docs/interfaces/IConfig.IConfig-1.md +8 -8
  50. package/docs/interfaces/IDatabaseConfig.IDatabaseConfig-1.md +6 -6
  51. package/docs/interfaces/IDatabaseConnection.IDatabaseConnection-1.md +14 -14
  52. package/docs/interfaces/IFormData.IFormData-1.md +2 -2
  53. package/docs/interfaces/IHandler.IHandler-1.md +1 -1
  54. package/docs/interfaces/IInsertQueryResult.IInsertQueryResult-1.md +3 -3
  55. package/docs/interfaces/IJWTVerifyOptions.IJWTVerifyOptions-1.md +1 -1
  56. package/docs/interfaces/IRequestResponse.IRequestResponse-1.md +2 -2
  57. package/docs/interfaces/IUpdateQueryResult.IUpdateQueryResult-1.md +2 -2
  58. package/docs/interfaces/StormError.IErrorResponse.md +4 -4
  59. package/docs/interfaces/TemporaryTableQuery.ITemporaryTableQueryInput.md +2 -2
  60. package/docs/modules/DatabaseConnection.md +2 -2
  61. package/docs/modules/Handler.md +2 -2
  62. package/docs/modules/IDeleteQueryResult.md +1 -1
  63. package/docs/modules/Response.md +1 -1
  64. package/docs/modules/instance.md +2 -2
  65. package/lib/Application.d.ts +2 -0
  66. package/lib/Application.js +9 -1
  67. package/lib/Application.js.map +1 -1
  68. package/lib/BackendAuthenticationMiddleware.d.ts +1 -2
  69. package/lib/BackendAuthenticationMiddleware.js +1 -1
  70. package/lib/BackendAuthenticationMiddleware.js.map +1 -1
  71. package/lib/ConfigLoader.js +1 -1
  72. package/lib/ConfigLoader.js.map +1 -1
  73. package/lib/Database.d.ts +2 -0
  74. package/lib/Database.js +3 -0
  75. package/lib/Database.js.map +1 -1
  76. package/lib/Handler.js +1 -3
  77. package/lib/Handler.js.map +1 -1
  78. package/lib/MySQLDatabase.d.ts +1 -0
  79. package/lib/MySQLDatabase.js +11 -0
  80. package/lib/MySQLDatabase.js.map +1 -1
  81. package/package.json +17 -17
  82. package/src/Application.ts +11 -1
  83. package/src/BackendAuthenticationMiddleware.ts +1 -2
  84. package/src/ConfigLoader.ts +1 -1
  85. package/src/Database.ts +5 -0
  86. package/src/Handler.ts +1 -3
  87. package/src/MySQLDatabase.ts +13 -0
  88. package/src/defs/merge-change.d.ts +1 -1
@@ -238,7 +238,17 @@ export abstract class Application
238
238
  });
239
239
  }
240
240
 
241
- public close(): Promise<void> {
241
+ public async close(): Promise<void> {
242
+ await Promise.all([ this._closeSocket(), this._closeDatabase() ]);
243
+ }
244
+
245
+ protected async _closeDatabase(): Promise<void> {
246
+ if (this.$db) {
247
+ await this.$db.destroy();
248
+ }
249
+ }
250
+
251
+ protected async _closeSocket(): Promise<void> {
242
252
  return new Promise<void>((resolve, reject) => {
243
253
  if (this.$socket && this.$socket.listening) {
244
254
  this.$socket.close(() => {
@@ -16,7 +16,6 @@
16
16
 
17
17
  import {StatusCode} from './StatusCode';
18
18
  import {Request} from './Request';
19
- import {Response} from './Response';
20
19
  import {ResponseData} from './ResponseData';
21
20
  import {Logger} from '@arashi/logger';
22
21
  import {getInstance} from './instance';
@@ -44,7 +43,7 @@ export class BackendAuthenticationMiddleware {
44
43
  * @param options Arbituary object containing any relevant information used for authentication.
45
44
  */
46
45
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
47
- public execute(request: Request, response: Response, options?: any): Promise<any> {
46
+ public execute(request: Request, options?: any): Promise<any> {
48
47
  let config: IConfig = getInstance().getConfig();
49
48
 
50
49
  let backendAuthHeader: string = config.backend_authentication_header;
@@ -22,7 +22,7 @@ import * as Path from 'path';
22
22
  import {Application} from './Application';
23
23
  import {IConfig} from './IConfig';
24
24
  import Ajv from 'ajv';
25
- import * as MergeChange from 'merge-change';
25
+ import * as MergeChange from '@breautek/merge-change';
26
26
  import { InvalidConfigError } from './InvalidConfigError';
27
27
  import { MissingConfigError } from './MissingConfigError';
28
28
 
package/src/Database.ts CHANGED
@@ -75,6 +75,11 @@ export abstract class Database<TDatabaseConfig, TConnectionAPI> {
75
75
  return this._getConnection(query, requireWriteAccess);
76
76
  }
77
77
 
78
+ public destroy(): Promise<void> {
79
+ return this._destroy();
80
+ }
81
+
82
+ protected abstract _destroy(): Promise<void>;
78
83
  protected abstract _addNode(name: string, config: TDatabaseConfig): void;
79
84
  protected abstract _removeNode(name: string): void;
80
85
  protected abstract _getConnection(query: string, requireWriteAccess: boolean): Promise<DatabaseConnection<TConnectionAPI>>;
package/src/Handler.ts CHANGED
@@ -133,9 +133,7 @@ export class Handler<
133
133
  return Promise.resolve(result);
134
134
  }
135
135
 
136
- protected _onMiddlewareReject(request: Request, response: Response, error: StormError): void {
137
- response.error(error);
138
- }
136
+ protected _onMiddlewareReject(request: Request, response: Response, error: StormError): void {}
139
137
 
140
138
  private $handleResponse<TResponse>(response: Response<TResponse>, data: any): void {
141
139
  response.send(data);
@@ -56,6 +56,19 @@ export class MySQLDatabase extends Database<MySQL.PoolConfig, MySQL.PoolConnecti
56
56
  this.$cluster.remove(nodeID);
57
57
  }
58
58
 
59
+ protected _destroy(): Promise<void> {
60
+ return new Promise<void>((resolve, reject) => {
61
+ this.$cluster.end((err: MySQL.MysqlError) => {
62
+ if (err) {
63
+ reject(err);
64
+ return;
65
+ }
66
+
67
+ resolve();
68
+ });
69
+ });
70
+ }
71
+
59
72
  protected _getConnection(query: string, requireWriteAccess: boolean): Promise<MySQLConnection> {
60
73
  getInstance().getLogger().trace(TAG, `Querying connection pool for "${query}".`);
61
74
  return new Promise<MySQLConnection>((resolve, reject) => {
@@ -14,4 +14,4 @@
14
14
  limitations under the License.
15
15
  */
16
16
 
17
- declare module 'merge-change';
17
+ declare module '@breautek/merge-change';