@rapidrest/service-core 1.0.0-beta.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.
- package/LICENSE +23 -0
- package/README.md +16 -0
- package/dist/lib/ApiErrors.js +41 -0
- package/dist/lib/ApiErrors.js.map +1 -0
- package/dist/lib/BackgroundService.js +16 -0
- package/dist/lib/BackgroundService.js.map +1 -0
- package/dist/lib/BackgroundServiceManager.js +135 -0
- package/dist/lib/BackgroundServiceManager.js.map +1 -0
- package/dist/lib/BulkError.js +24 -0
- package/dist/lib/BulkError.js.map +1 -0
- package/dist/lib/EventListenerManager.js +161 -0
- package/dist/lib/EventListenerManager.js.map +1 -0
- package/dist/lib/NetUtils.js +103 -0
- package/dist/lib/NetUtils.js.map +1 -0
- package/dist/lib/NotificationUtils.js +34 -0
- package/dist/lib/NotificationUtils.js.map +1 -0
- package/dist/lib/ObjectFactory.js +90 -0
- package/dist/lib/ObjectFactory.js.map +1 -0
- package/dist/lib/OpenApiSpec.js +748 -0
- package/dist/lib/OpenApiSpec.js.map +1 -0
- package/dist/lib/Server.js +549 -0
- package/dist/lib/Server.js.map +1 -0
- package/dist/lib/Types.js +2 -0
- package/dist/lib/Types.js.map +1 -0
- package/dist/lib/auth/AuthMiddleware.js +229 -0
- package/dist/lib/auth/AuthMiddleware.js.map +1 -0
- package/dist/lib/auth/AuthStrategy.js +2 -0
- package/dist/lib/auth/AuthStrategy.js.map +1 -0
- package/dist/lib/auth/BasicStrategy.js +106 -0
- package/dist/lib/auth/BasicStrategy.js.map +1 -0
- package/dist/lib/auth/JWTStrategy.js +161 -0
- package/dist/lib/auth/JWTStrategy.js.map +1 -0
- package/dist/lib/auth/index.js +5 -0
- package/dist/lib/auth/index.js.map +1 -0
- package/dist/lib/database/ConnectionKinds.js +14 -0
- package/dist/lib/database/ConnectionKinds.js.map +1 -0
- package/dist/lib/database/ConnectionManager.js +161 -0
- package/dist/lib/database/ConnectionManager.js.map +1 -0
- package/dist/lib/database/MongoConnection.js +86 -0
- package/dist/lib/database/MongoConnection.js.map +1 -0
- package/dist/lib/database/MongoRepository.js +136 -0
- package/dist/lib/database/MongoRepository.js.map +1 -0
- package/dist/lib/database/MongoSchemaSync.js +136 -0
- package/dist/lib/database/MongoSchemaSync.js.map +1 -0
- package/dist/lib/database/NamingUtils.js +52 -0
- package/dist/lib/database/NamingUtils.js.map +1 -0
- package/dist/lib/database/TypeOrmSupport.js +146 -0
- package/dist/lib/database/TypeOrmSupport.js.map +1 -0
- package/dist/lib/database/index.js +7 -0
- package/dist/lib/database/index.js.map +1 -0
- package/dist/lib/decorators/DatabaseDecorators.js +52 -0
- package/dist/lib/decorators/DatabaseDecorators.js.map +1 -0
- package/dist/lib/decorators/DocDecorators.js +120 -0
- package/dist/lib/decorators/DocDecorators.js.map +1 -0
- package/dist/lib/decorators/EventDecorators.js +24 -0
- package/dist/lib/decorators/EventDecorators.js.map +1 -0
- package/dist/lib/decorators/ModelDecorators.js +173 -0
- package/dist/lib/decorators/ModelDecorators.js.map +1 -0
- package/dist/lib/decorators/PersistenceDecorators.js +177 -0
- package/dist/lib/decorators/PersistenceDecorators.js.map +1 -0
- package/dist/lib/decorators/RouteDecorators.js +324 -0
- package/dist/lib/decorators/RouteDecorators.js.map +1 -0
- package/dist/lib/decorators/index.js +7 -0
- package/dist/lib/decorators/index.js.map +1 -0
- package/dist/lib/http/Adapters.js +230 -0
- package/dist/lib/http/Adapters.js.map +1 -0
- package/dist/lib/http/Router.js +403 -0
- package/dist/lib/http/Router.js.map +1 -0
- package/dist/lib/http/WebSocket.js +82 -0
- package/dist/lib/http/WebSocket.js.map +1 -0
- package/dist/lib/http/index.js +4 -0
- package/dist/lib/http/index.js.map +1 -0
- package/dist/lib/http/types.js +5 -0
- package/dist/lib/http/types.js.map +1 -0
- package/dist/lib/index.js +18 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/models/BaseEntity.js +83 -0
- package/dist/lib/models/BaseEntity.js.map +1 -0
- package/dist/lib/models/BaseMongoEntity.js +40 -0
- package/dist/lib/models/BaseMongoEntity.js.map +1 -0
- package/dist/lib/models/ModelUtils.js +645 -0
- package/dist/lib/models/ModelUtils.js.map +1 -0
- package/dist/lib/models/RecoverableBaseEntity.js +39 -0
- package/dist/lib/models/RecoverableBaseEntity.js.map +1 -0
- package/dist/lib/models/RecoverableBaseMongoEntity.js +40 -0
- package/dist/lib/models/RecoverableBaseMongoEntity.js.map +1 -0
- package/dist/lib/models/RepoUtils.js +717 -0
- package/dist/lib/models/RepoUtils.js.map +1 -0
- package/dist/lib/models/SimpleEntity.js +42 -0
- package/dist/lib/models/SimpleEntity.js.map +1 -0
- package/dist/lib/models/SimpleMongoEntity.js +38 -0
- package/dist/lib/models/SimpleMongoEntity.js.map +1 -0
- package/dist/lib/models/StatusExtraData.js +15 -0
- package/dist/lib/models/StatusExtraData.js.map +1 -0
- package/dist/lib/models/index.js +10 -0
- package/dist/lib/models/index.js.map +1 -0
- package/dist/lib/routes/AdminRoute.js +268 -0
- package/dist/lib/routes/AdminRoute.js.map +1 -0
- package/dist/lib/routes/MetricsRoute.js +86 -0
- package/dist/lib/routes/MetricsRoute.js.map +1 -0
- package/dist/lib/routes/ModelRoute.js +481 -0
- package/dist/lib/routes/ModelRoute.js.map +1 -0
- package/dist/lib/routes/OpenAPIRoute.js +115 -0
- package/dist/lib/routes/OpenAPIRoute.js.map +1 -0
- package/dist/lib/routes/RouteUtils.js +445 -0
- package/dist/lib/routes/RouteUtils.js.map +1 -0
- package/dist/lib/routes/StatusRoute.js +55 -0
- package/dist/lib/routes/StatusRoute.js.map +1 -0
- package/dist/lib/routes/index.js +7 -0
- package/dist/lib/routes/index.js.map +1 -0
- package/dist/lib/security/ACLRouteMongo.js +194 -0
- package/dist/lib/security/ACLRouteMongo.js.map +1 -0
- package/dist/lib/security/ACLRouteSQL.js +193 -0
- package/dist/lib/security/ACLRouteSQL.js.map +1 -0
- package/dist/lib/security/ACLUtils.js +457 -0
- package/dist/lib/security/ACLUtils.js.map +1 -0
- package/dist/lib/security/AccessControlList.js +18 -0
- package/dist/lib/security/AccessControlList.js.map +1 -0
- package/dist/lib/security/AccessControlListMongo.js +155 -0
- package/dist/lib/security/AccessControlListMongo.js.map +1 -0
- package/dist/lib/security/AccessControlListSQL.js +149 -0
- package/dist/lib/security/AccessControlListSQL.js.map +1 -0
- package/dist/lib/security/index.js +3 -0
- package/dist/lib/security/index.js.map +1 -0
- package/dist/lib/test/index.js +3 -0
- package/dist/lib/test/index.js.map +1 -0
- package/dist/lib/test/request.js +99 -0
- package/dist/lib/test/request.js.map +1 -0
- package/dist/lib/test/requestws.js +173 -0
- package/dist/lib/test/requestws.js.map +1 -0
- package/dist/types/ApiErrors.d.ts +38 -0
- package/dist/types/BackgroundService.d.ts +30 -0
- package/dist/types/BackgroundServiceManager.d.ts +66 -0
- package/dist/types/BulkError.d.ts +11 -0
- package/dist/types/EventListenerManager.d.ts +36 -0
- package/dist/types/NetUtils.d.ts +29 -0
- package/dist/types/NotificationUtils.d.ts +25 -0
- package/dist/types/ObjectFactory.d.ts +17 -0
- package/dist/types/OpenApiSpec.d.ts +114 -0
- package/dist/types/Server.d.ts +180 -0
- package/dist/types/Types.d.ts +8 -0
- package/dist/types/auth/AuthMiddleware.d.ts +42 -0
- package/dist/types/auth/AuthStrategy.d.ts +32 -0
- package/dist/types/auth/BasicStrategy.d.ts +33 -0
- package/dist/types/auth/JWTStrategy.d.ts +61 -0
- package/dist/types/auth/index.d.ts +4 -0
- package/dist/types/database/ConnectionKinds.d.ts +7 -0
- package/dist/types/database/ConnectionManager.d.ts +35 -0
- package/dist/types/database/MongoConnection.d.ts +54 -0
- package/dist/types/database/MongoRepository.d.ts +92 -0
- package/dist/types/database/MongoSchemaSync.d.ts +41 -0
- package/dist/types/database/NamingUtils.d.ts +24 -0
- package/dist/types/database/TypeOrmSupport.d.ts +20 -0
- package/dist/types/database/index.d.ts +6 -0
- package/dist/types/decorators/DatabaseDecorators.d.ts +18 -0
- package/dist/types/decorators/DocDecorators.d.ts +69 -0
- package/dist/types/decorators/EventDecorators.d.ts +12 -0
- package/dist/types/decorators/ModelDecorators.d.ts +80 -0
- package/dist/types/decorators/PersistenceDecorators.d.ts +117 -0
- package/dist/types/decorators/RouteDecorators.d.ts +172 -0
- package/dist/types/decorators/index.d.ts +6 -0
- package/dist/types/http/Adapters.d.ts +68 -0
- package/dist/types/http/Router.d.ts +99 -0
- package/dist/types/http/WebSocket.d.ts +56 -0
- package/dist/types/http/index.d.ts +6 -0
- package/dist/types/http/types.d.ts +54 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/models/BaseEntity.d.ts +29 -0
- package/dist/types/models/BaseMongoEntity.d.ts +13 -0
- package/dist/types/models/ModelUtils.d.ts +166 -0
- package/dist/types/models/RecoverableBaseEntity.d.ts +16 -0
- package/dist/types/models/RecoverableBaseMongoEntity.d.ts +16 -0
- package/dist/types/models/RepoUtils.d.ts +154 -0
- package/dist/types/models/SimpleEntity.d.ts +14 -0
- package/dist/types/models/SimpleMongoEntity.d.ts +15 -0
- package/dist/types/models/StatusExtraData.d.ts +6 -0
- package/dist/types/models/index.d.ts +9 -0
- package/dist/types/routes/AdminRoute.d.ts +47 -0
- package/dist/types/routes/MetricsRoute.d.ts +15 -0
- package/dist/types/routes/ModelRoute.d.ts +226 -0
- package/dist/types/routes/OpenAPIRoute.d.ts +17 -0
- package/dist/types/routes/RouteUtils.d.ts +55 -0
- package/dist/types/routes/StatusRoute.d.ts +11 -0
- package/dist/types/routes/index.d.ts +6 -0
- package/dist/types/security/ACLRouteMongo.d.ts +19 -0
- package/dist/types/security/ACLRouteSQL.d.ts +19 -0
- package/dist/types/security/ACLUtils.d.ts +94 -0
- package/dist/types/security/AccessControlList.d.ts +103 -0
- package/dist/types/security/AccessControlListMongo.d.ts +24 -0
- package/dist/types/security/AccessControlListSQL.d.ts +24 -0
- package/dist/types/security/index.d.ts +2 -0
- package/dist/types/test/index.d.ts +2 -0
- package/dist/types/test/request.d.ts +24 -0
- package/dist/types/test/requestws.d.ts +21 -0
- package/docs/Makefile +20 -0
- package/docs/conf.py +58 -0
- package/docs/index.rst +17 -0
- package/docs/make.bat +35 -0
- package/docs/reference/@rapidrest/namespaces/DatabaseDecorators/README.md +13 -0
- package/docs/reference/@rapidrest/namespaces/DatabaseDecorators/functions/MongoRepository.md +25 -0
- package/docs/reference/@rapidrest/namespaces/DatabaseDecorators/functions/RedisConnection.md +25 -0
- package/docs/reference/@rapidrest/namespaces/DatabaseDecorators/functions/Repository.md +25 -0
- package/docs/reference/@rapidrest/namespaces/DocDecorators/README.md +23 -0
- package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Default.md +25 -0
- package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Description.md +25 -0
- package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Document.md +25 -0
- package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Example.md +25 -0
- package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Format.md +25 -0
- package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Returns.md +28 -0
- package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Summary.md +25 -0
- package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/Tags.md +25 -0
- package/docs/reference/@rapidrest/namespaces/DocDecorators/functions/TypeInfo.md +28 -0
- package/docs/reference/@rapidrest/namespaces/DocDecorators/interfaces/DocumentsData.md +57 -0
- package/docs/reference/@rapidrest/namespaces/EventDecorators/README.md +12 -0
- package/docs/reference/@rapidrest/namespaces/EventDecorators/functions/EventListener.md +17 -0
- package/docs/reference/@rapidrest/namespaces/EventDecorators/functions/OnEvent.md +26 -0
- package/docs/reference/@rapidrest/namespaces/ModelDecorators/README.md +26 -0
- package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Cache.md +25 -0
- package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/ChildEntity.md +18 -0
- package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/DataStore.md +25 -0
- package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Identifier.md +27 -0
- package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Protect.md +35 -0
- package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Reference.md +25 -0
- package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/Shard.md +27 -0
- package/docs/reference/@rapidrest/namespaces/ModelDecorators/functions/TrackChanges.md +26 -0
- package/docs/reference/@rapidrest/namespaces/ModelDecorators/interfaces/PendingTypeOrmColumn.md +45 -0
- package/docs/reference/@rapidrest/namespaces/ModelDecorators/variables/pendingTypeOrmColumns.md +14 -0
- package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/README.md +25 -0
- package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Column.md +25 -0
- package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Entity.md +26 -0
- package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Index.md +119 -0
- package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/PrimaryColumn.md +25 -0
- package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/Unique.md +68 -0
- package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/getColumnMetadata.md +26 -0
- package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/getEntityName.md +26 -0
- package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/functions/getIndexMetadata.md +27 -0
- package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/ColumnInfo.md +41 -0
- package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/ColumnOptions.md +51 -0
- package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/IndexInfo.md +41 -0
- package/docs/reference/@rapidrest/namespaces/PersistenceDecorators/interfaces/IndexOptions.md +51 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/README.md +36 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/After.md +26 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Auth.md +33 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/AuthResult.md +31 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Before.md +25 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/ContentType.md +25 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Delete.md +25 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Get.md +25 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Head.md +25 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Header.md +25 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Method.md +31 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Model.md +25 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Options.md +25 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Param.md +26 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Patch.md +25 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Post.md +25 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Protect.md +31 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Put.md +25 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Query.md +26 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Request.md +31 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/RequiresRole.md +26 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Response.md +31 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Route.md +25 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Socket.md +33 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/User.md +31 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/Validate.md +25 -0
- package/docs/reference/@rapidrest/namespaces/RouteDecorators/functions/WebSocket.md +25 -0
- package/docs/reference/README.md +20 -0
- package/docs/reference/classes/ACLUtils.md +251 -0
- package/docs/reference/classes/AdminRoute.md +51 -0
- package/docs/reference/classes/AuthMiddleware.md +131 -0
- package/docs/reference/classes/BackgroundService.md +117 -0
- package/docs/reference/classes/BackgroundServiceManager.md +172 -0
- package/docs/reference/classes/BaseEntity.md +82 -0
- package/docs/reference/classes/BaseMongoEntity.md +107 -0
- package/docs/reference/classes/BasicStrategy.md +89 -0
- package/docs/reference/classes/BasicStrategyOptions.md +91 -0
- package/docs/reference/classes/BulkError.md +271 -0
- package/docs/reference/classes/ConnectionManager.md +75 -0
- package/docs/reference/classes/EventListenerManager.md +88 -0
- package/docs/reference/classes/JWTStrategy.md +77 -0
- package/docs/reference/classes/JWTStrategyOptions.md +97 -0
- package/docs/reference/classes/MetricsRoute.md +27 -0
- package/docs/reference/classes/ModelRoute.md +527 -0
- package/docs/reference/classes/ModelUtils.md +448 -0
- package/docs/reference/classes/MongoConnection.md +218 -0
- package/docs/reference/classes/MongoRepository.md +354 -0
- package/docs/reference/classes/MongoSchemaSync.md +67 -0
- package/docs/reference/classes/NetUtils.md +90 -0
- package/docs/reference/classes/NotificationUtils.md +77 -0
- package/docs/reference/classes/ObjectFactory.md +336 -0
- package/docs/reference/classes/OpenAPIRoute.md +77 -0
- package/docs/reference/classes/OpenApiSpec.md +892 -0
- package/docs/reference/classes/RecoverableBaseEntity.md +114 -0
- package/docs/reference/classes/RecoverableBaseMongoEntity.md +124 -0
- package/docs/reference/classes/RedisTransport.md +2202 -0
- package/docs/reference/classes/RepoUtils.md +486 -0
- package/docs/reference/classes/RouteUtils.md +191 -0
- package/docs/reference/classes/Server.md +408 -0
- package/docs/reference/classes/SimpleEntity.md +48 -0
- package/docs/reference/classes/SimpleMongoEntity.md +66 -0
- package/docs/reference/classes/StatusExtraData.md +57 -0
- package/docs/reference/classes/StatusRoute.md +26 -0
- package/docs/reference/enumerations/ACLAction.md +63 -0
- package/docs/reference/enumerations/ApiErrorMessages.md +123 -0
- package/docs/reference/enumerations/ApiErrors.md +123 -0
- package/docs/reference/functions/isSqlDataSource.md +26 -0
- package/docs/reference/functions/resolveCollectionName.md +33 -0
- package/docs/reference/functions/snakeCase.md +28 -0
- package/docs/reference/globals.md +91 -0
- package/docs/reference/interfaces/ACLRecord.md +96 -0
- package/docs/reference/interfaces/AccessControlList.md +76 -0
- package/docs/reference/interfaces/AuthResult.md +55 -0
- package/docs/reference/interfaces/AuthStrategy.md +57 -0
- package/docs/reference/interfaces/CreateRequestOptions.md +121 -0
- package/docs/reference/interfaces/DeleteRequestOptions.md +147 -0
- package/docs/reference/interfaces/FindRequestOptions.md +133 -0
- package/docs/reference/interfaces/JWTAuthResult.md +84 -0
- package/docs/reference/interfaces/RepoCreateOptions.md +95 -0
- package/docs/reference/interfaces/RepoDeleteOptions.md +115 -0
- package/docs/reference/interfaces/RepoFindOptions.md +135 -0
- package/docs/reference/interfaces/RepoOperationOptions.md +69 -0
- package/docs/reference/interfaces/RepoUpdateOptions.md +111 -0
- package/docs/reference/interfaces/RequestOptions.md +112 -0
- package/docs/reference/interfaces/TruncateRequestOptions.md +175 -0
- package/docs/reference/interfaces/UpdateRequestOptions.md +149 -0
- package/docs/reference/type-aliases/OneOrMany.md +19 -0
- package/docs/reference/type-aliases/OneOrNull.md +19 -0
- package/docs/reference/type-aliases/PartialBaseEntity.md +17 -0
- package/docs/reference/type-aliases/PartialSimpleEntity.md +17 -0
- package/docs/reference/type-aliases/UpdateObject.md +19 -0
- package/package.json +125 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenApiSpec.js","sourceRoot":"","sources":["../../src/OpenApiSpec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,549 @@
|
|
|
1
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
2
|
+
// Copyright (C) 2020-2026 Jean-Philippe Steinmetz. All rights reserved.
|
|
3
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
4
|
+
import uWS from "uWebSockets.js";
|
|
5
|
+
import * as path from "path";
|
|
6
|
+
import * as prom from "prom-client";
|
|
7
|
+
import "reflect-metadata";
|
|
8
|
+
import { ConnectionManager } from "./database/ConnectionManager.js";
|
|
9
|
+
import { StatusRoute } from "./routes/StatusRoute.js";
|
|
10
|
+
import { ApiError, ClassLoader, Logger } from "@rapidrest/core";
|
|
11
|
+
import { OpenAPIRoute } from "./routes/OpenAPIRoute.js";
|
|
12
|
+
import { MetricsRoute } from "./routes/MetricsRoute.js";
|
|
13
|
+
import { ObjectFactory } from "./ObjectFactory.js";
|
|
14
|
+
import { BackgroundServiceManager } from "./BackgroundServiceManager.js";
|
|
15
|
+
import { RouteUtils } from "./routes/RouteUtils.js";
|
|
16
|
+
import { BulkError } from "./BulkError.js";
|
|
17
|
+
import { BackgroundService } from "./BackgroundService.js";
|
|
18
|
+
import { AdminRoute } from "./routes/index.js";
|
|
19
|
+
import { OpenApiSpec } from "./OpenApiSpec.js";
|
|
20
|
+
import { ApiErrorMessages, ApiErrors } from "./ApiErrors.js";
|
|
21
|
+
import { ACLUtils } from "./security/ACLUtils.js";
|
|
22
|
+
import { NotificationUtils } from "./NotificationUtils.js";
|
|
23
|
+
import { isSqlDataSource } from "./database/ConnectionKinds.js";
|
|
24
|
+
import { MongoConnection } from "./database/MongoConnection.js";
|
|
25
|
+
import { ACLRouteMongo } from "./security/ACLRouteMongo.js";
|
|
26
|
+
import { ACLRouteSQL } from "./security/ACLRouteSQL.js";
|
|
27
|
+
import { EventListenerManager } from "./EventListenerManager.js";
|
|
28
|
+
import { AccessControlListMongo } from "./security/AccessControlListMongo.js";
|
|
29
|
+
import { AccessControlListSQL } from "./security/AccessControlListSQL.js";
|
|
30
|
+
import { HttpRouter } from "./http/Router.js";
|
|
31
|
+
/**
|
|
32
|
+
* Provides an HTTP server utilizing uWebSockets.js. The server automatically registers all routes, and
|
|
33
|
+
* establishes database connections for all configured data stores. Additionally provides automatic authentication
|
|
34
|
+
* handling using JSON Web Token (JWT) directly — no Passport dependency required. When provided an OpenAPI
|
|
35
|
+
* specification object the server will also automatically serve this specification via the `GET /openapi.json` route.
|
|
36
|
+
*
|
|
37
|
+
* Routes are defined by creating any class definition using the various decorators found in `RouteDecorators` and
|
|
38
|
+
* saving these files in the `routes` subfolder. Upon server start, the `routes` folder is scanned for any class
|
|
39
|
+
* that has been decorated with `@Route` and is automatically loaded and registered. Similarly, if the
|
|
40
|
+
* class is decorated with the `@Model` decorator the resulting route object will have the associated data model
|
|
41
|
+
* definition object injected into the constructor.
|
|
42
|
+
*
|
|
43
|
+
* SSL termination is supported by providing an `ssl` configuration block with `key`, `cert`, and optionally
|
|
44
|
+
* `ca` and `passphrase` file paths. When `ssl` is present the server uses `uWS.SSLApp()`.
|
|
45
|
+
*
|
|
46
|
+
* IPv6 is supported by setting `listen_host` to `"::"` in configuration (default `"0.0.0.0"`).
|
|
47
|
+
*
|
|
48
|
+
* By default all registered endpoints that do not explicitly have an `@Auth` decorator have the `JWT`
|
|
49
|
+
* authentication strategy applied. This allows users to be implicitly authenticated without requiring additional
|
|
50
|
+
* configuration. Once authenticated, the provided `request` argument will have the `user` property available
|
|
51
|
+
* containing information about the authenticated user. If the `user` property is `undefined` then no user has
|
|
52
|
+
* been authenticated or the authentication attempt failed.
|
|
53
|
+
*
|
|
54
|
+
* The following is an example of a simple route class.
|
|
55
|
+
*
|
|
56
|
+
* ```javascript
|
|
57
|
+
* import { DefaultBehaviors, RouteDecorators } from "@rapidrest/service-core";
|
|
58
|
+
* import { Get, Route } = RouteDecorators;
|
|
59
|
+
*
|
|
60
|
+
* @Route("/hello")
|
|
61
|
+
* class TestRoute extends ModelRoute {
|
|
62
|
+
* constructor(model: any) {
|
|
63
|
+
* super(model);
|
|
64
|
+
* }
|
|
65
|
+
*
|
|
66
|
+
* @Get()
|
|
67
|
+
* count(req: any, res: any, next: Function): any {
|
|
68
|
+
* return res.send("Hello World!");
|
|
69
|
+
* }
|
|
70
|
+
* }
|
|
71
|
+
*
|
|
72
|
+
* export default TestRoute;
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
75
|
+
* The following is an example of a route class that is bound to a data model providing basic CRUDS operations.
|
|
76
|
+
*
|
|
77
|
+
* ```javascript
|
|
78
|
+
* import { DefaultBehaviors, ModelDecorators, ModelRoute, RouteDecorators } from "@rapidrest/service-core";
|
|
79
|
+
* import { After, Before, Delete, Get, Post, Put, Route, Validate } = RouteDecorators;
|
|
80
|
+
* import { Model } = ModelDecorators;
|
|
81
|
+
* import { marshall } = DefaultBehaviors;
|
|
82
|
+
*
|
|
83
|
+
* @Model("Item")
|
|
84
|
+
* @Route("/items")
|
|
85
|
+
* class ItemRoute extends ModelRoute {
|
|
86
|
+
* constructor(model: any) {
|
|
87
|
+
* super(model);
|
|
88
|
+
* }
|
|
89
|
+
*
|
|
90
|
+
* @Get()
|
|
91
|
+
* @Before(super.count)
|
|
92
|
+
* @After(marshall)
|
|
93
|
+
* count(req: any, res: any, next: Function): any {
|
|
94
|
+
* return next();
|
|
95
|
+
* }
|
|
96
|
+
*
|
|
97
|
+
* @Post()
|
|
98
|
+
* @Before([super.create])
|
|
99
|
+
* @After([this.prepare, marshall])
|
|
100
|
+
* create(req: any, res: any, next: Function): any {
|
|
101
|
+
* return next();
|
|
102
|
+
* }
|
|
103
|
+
*
|
|
104
|
+
* @Delete(":id")
|
|
105
|
+
* @Before([super.delete])
|
|
106
|
+
* delete(req: any, res: any, next: Function): any {
|
|
107
|
+
* return next();
|
|
108
|
+
* }
|
|
109
|
+
*
|
|
110
|
+
* @Get()
|
|
111
|
+
* @Before([super.findAll])
|
|
112
|
+
* @After(this.prepareAndSend)
|
|
113
|
+
* findAll(req: any, res: any, next: Function): any {
|
|
114
|
+
* return next();
|
|
115
|
+
* }
|
|
116
|
+
*
|
|
117
|
+
* @Get(":id")
|
|
118
|
+
* @Before([super.findById])
|
|
119
|
+
* @After([this.prepare, marshall])
|
|
120
|
+
* findById(req: any, res: any, next: Function): any {
|
|
121
|
+
* return next();
|
|
122
|
+
* }
|
|
123
|
+
*
|
|
124
|
+
* @Put(":id")
|
|
125
|
+
* @Before([super.update])
|
|
126
|
+
* @After([this.prepare, marshall])
|
|
127
|
+
* update(req: any, res: any, next: Function): any {
|
|
128
|
+
* return next();
|
|
129
|
+
* }
|
|
130
|
+
* }
|
|
131
|
+
*
|
|
132
|
+
* export default ItemRoute;
|
|
133
|
+
* ```
|
|
134
|
+
*
|
|
135
|
+
* @author Jean-Philippe Steinmetz
|
|
136
|
+
*/
|
|
137
|
+
export class Server {
|
|
138
|
+
/**
|
|
139
|
+
* Creates a new instance of Server with the specified defaults.
|
|
140
|
+
*
|
|
141
|
+
* @param {any} config The nconf-compatible configuration object to initialize the server with.
|
|
142
|
+
* @param {string} basePath The base file system path that models and routes will be searched from.
|
|
143
|
+
* @param {Logger} logger The logging utility to use for outputing to console/file.
|
|
144
|
+
* @param objectFactory The object factory to use for automatic dependency injection (IOC).
|
|
145
|
+
*/
|
|
146
|
+
constructor(config, basePath = ".", logger = Logger(), objectFactory) {
|
|
147
|
+
///////////////////////////////////////////////////////////////////////////
|
|
148
|
+
// METRICS VARIABLES
|
|
149
|
+
///////////////////////////////////////////////////////////////////////////
|
|
150
|
+
this.metricRequestPath = new prom.Counter({
|
|
151
|
+
name: "request_path",
|
|
152
|
+
help: "A acount of the number of handled requests by the requested path.",
|
|
153
|
+
labelNames: ["path"],
|
|
154
|
+
});
|
|
155
|
+
this.metricRequestStatus = new prom.Counter({
|
|
156
|
+
name: "request_status",
|
|
157
|
+
help: "A count of the resulting status code of handled requests by the requested method and path.",
|
|
158
|
+
labelNames: ["method", "path", "statusCode"],
|
|
159
|
+
});
|
|
160
|
+
this.metricRequestTime = new prom.Histogram({
|
|
161
|
+
name: "request_time_milliseconds",
|
|
162
|
+
help: "A histogram of the response time of handled requests by the requested method, path and code.",
|
|
163
|
+
labelNames: ["method", "path", "statusCode"],
|
|
164
|
+
buckets: [5, 10, 25, 50, 100, 250, 500, 1000, 5000],
|
|
165
|
+
});
|
|
166
|
+
this.metricCompletedRequests = new prom.Counter({
|
|
167
|
+
name: "num_completed_requests",
|
|
168
|
+
help: "The total number of successfully completed requests.",
|
|
169
|
+
});
|
|
170
|
+
this.metricFailedRequests = new prom.Counter({
|
|
171
|
+
name: "num_failed_requests",
|
|
172
|
+
help: "The total number of failed requests.",
|
|
173
|
+
});
|
|
174
|
+
this.metricTotalRequests = new prom.Counter({
|
|
175
|
+
name: "num_total_requests",
|
|
176
|
+
help: "The total number of requests processed.",
|
|
177
|
+
});
|
|
178
|
+
this.config = config;
|
|
179
|
+
this.basePath = basePath;
|
|
180
|
+
this.logger = logger;
|
|
181
|
+
this.objectFactory = objectFactory ? objectFactory : new ObjectFactory(config, logger);
|
|
182
|
+
this.port = config.get("port") ? config.get("port") : 3000;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Returns the HTTP router instance.
|
|
186
|
+
*/
|
|
187
|
+
getApplication() {
|
|
188
|
+
return this.app;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Returns `true` if the server is running, otherwise `false`.
|
|
192
|
+
*/
|
|
193
|
+
isRunning() {
|
|
194
|
+
return this.app ? this.app.isListening : false;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Override this function to add custom behavior before the server is started.
|
|
198
|
+
*/
|
|
199
|
+
preStart() {
|
|
200
|
+
// Nothing to do
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Override this function to add custom behavior after the server is started.
|
|
204
|
+
*/
|
|
205
|
+
postStart() {
|
|
206
|
+
// Nothing to do
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Starts an HTTP listen server based on the provided configuration and OpenAPI specification.
|
|
210
|
+
*/
|
|
211
|
+
start() {
|
|
212
|
+
return new Promise(async (resolve, reject) => {
|
|
213
|
+
try {
|
|
214
|
+
this.logger.info("Starting server...");
|
|
215
|
+
await this.preStart();
|
|
216
|
+
// Create an OpenApiSpec object that we'll use to build an external reference of the server's API
|
|
217
|
+
this.apiSpec = await this.objectFactory.newInstance(OpenApiSpec, { name: "default" });
|
|
218
|
+
this.connectionManager = await this.objectFactory.newInstance(ConnectionManager, { name: "default" });
|
|
219
|
+
const datastores = this.config.get("datastores");
|
|
220
|
+
const models = new Map();
|
|
221
|
+
this.logger.info("Loading all service classes...");
|
|
222
|
+
const classLoader = new ClassLoader(this.basePath, true, true, this.config.get("class_loader:ignore"));
|
|
223
|
+
try {
|
|
224
|
+
await classLoader.load();
|
|
225
|
+
}
|
|
226
|
+
catch (e) {
|
|
227
|
+
reject(`[server-core|Server.ts]**ERR @ start, loading service classes: ${e}`);
|
|
228
|
+
}
|
|
229
|
+
// Register all found classes with the object factory
|
|
230
|
+
for (const [name, clazz] of classLoader.getClasses().entries()) {
|
|
231
|
+
this.objectFactory.register(clazz, name);
|
|
232
|
+
}
|
|
233
|
+
// Load all models
|
|
234
|
+
this.logger.info("Scanning for data models...");
|
|
235
|
+
for (const [name, clazz] of classLoader.getClasses().entries()) {
|
|
236
|
+
const datastore = Reflect.getMetadata("rrst:datastore", clazz) || undefined;
|
|
237
|
+
if (datastore) {
|
|
238
|
+
models.set(name, clazz);
|
|
239
|
+
this.apiSpec.addModel(name, clazz);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
// If ACL has been configured we need to make sure the proper models are configured and loaded
|
|
243
|
+
if (datastores.acl) {
|
|
244
|
+
if (datastores.acl.type === "mongodb" || datastores.acl.type === "mongodb+srv") {
|
|
245
|
+
models?.set(AccessControlListMongo.name, AccessControlListMongo);
|
|
246
|
+
this.apiSpec.addModel(AccessControlListMongo.name, AccessControlListMongo);
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
models?.set(AccessControlListSQL.name, AccessControlListSQL);
|
|
250
|
+
this.apiSpec.addModel(AccessControlListSQL.name, AccessControlListSQL);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
// Initiate all database connections
|
|
254
|
+
this.logger.info("Initializing database connection(s)...");
|
|
255
|
+
await this.connectionManager.connect(datastores, models);
|
|
256
|
+
// Initialize ACL utility
|
|
257
|
+
await this.objectFactory.newInstance(ACLUtils, { name: "default" });
|
|
258
|
+
// Initialize push notifications utility if configured
|
|
259
|
+
const pushRedis = this.connectionManager?.connections.get("notifications");
|
|
260
|
+
if (pushRedis) {
|
|
261
|
+
await this.objectFactory.newInstance(NotificationUtils, { name: "default", args: [pushRedis] });
|
|
262
|
+
}
|
|
263
|
+
// Create the uWS app — SSLApp when ssl config is present, plain App otherwise
|
|
264
|
+
const sslConfig = this.config.get("ssl");
|
|
265
|
+
const uwsApp = sslConfig
|
|
266
|
+
? uWS.SSLApp({
|
|
267
|
+
key_file_name: sslConfig.key,
|
|
268
|
+
cert_file_name: sslConfig.cert,
|
|
269
|
+
ca_file_name: sslConfig.ca,
|
|
270
|
+
passphrase: sslConfig.passphrase,
|
|
271
|
+
})
|
|
272
|
+
: uWS.App();
|
|
273
|
+
this.app = new HttpRouter(uwsApp);
|
|
274
|
+
// Serve static files from the public directory
|
|
275
|
+
// (registered last so route handlers take precedence)
|
|
276
|
+
const publicPath = path.join(this.basePath, "public");
|
|
277
|
+
// cors
|
|
278
|
+
const corsConfig = this.config.get("cors") || {};
|
|
279
|
+
const corsOrigins = corsConfig.origins;
|
|
280
|
+
const corsAllowedHeaders = [
|
|
281
|
+
"Accept",
|
|
282
|
+
"Authorization",
|
|
283
|
+
"Content-Type",
|
|
284
|
+
"Location",
|
|
285
|
+
"Origin",
|
|
286
|
+
"Set-Cookie",
|
|
287
|
+
"X-Requested-With",
|
|
288
|
+
].join(", ");
|
|
289
|
+
this.app.use((req, res, next) => {
|
|
290
|
+
const origin = req.headers["origin"] || "";
|
|
291
|
+
// When no allow-list is configured, permit all origins without credentials.
|
|
292
|
+
// Only reflect a specific origin (with credentials) when it matches the explicit list.
|
|
293
|
+
let allowOrigin = "";
|
|
294
|
+
let allowCredentials = false;
|
|
295
|
+
if (!corsOrigins || corsOrigins === "*") {
|
|
296
|
+
allowOrigin = "*";
|
|
297
|
+
}
|
|
298
|
+
else if (Array.isArray(corsOrigins) ? corsOrigins.includes(origin) : corsOrigins === origin) {
|
|
299
|
+
allowOrigin = origin;
|
|
300
|
+
allowCredentials = true;
|
|
301
|
+
}
|
|
302
|
+
if (allowOrigin) {
|
|
303
|
+
res.setHeader("access-control-allow-origin", allowOrigin);
|
|
304
|
+
if (allowCredentials) {
|
|
305
|
+
res.setHeader("access-control-allow-credentials", "true");
|
|
306
|
+
}
|
|
307
|
+
res.setHeader("access-control-allow-methods", "GET,HEAD,OPTIONS,PUT,POST,DELETE");
|
|
308
|
+
res.setHeader("access-control-allow-headers", corsAllowedHeaders);
|
|
309
|
+
}
|
|
310
|
+
if (req.method === "OPTIONS") {
|
|
311
|
+
res.status(204).send();
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
return next();
|
|
315
|
+
});
|
|
316
|
+
// Set all custom headers
|
|
317
|
+
const headers = this.config.get("headers") || {
|
|
318
|
+
"x-powered-by": "RapidREST",
|
|
319
|
+
};
|
|
320
|
+
this.app.use((_req, res, next) => {
|
|
321
|
+
for (const key in headers) {
|
|
322
|
+
res.setHeader(key, headers[key]);
|
|
323
|
+
}
|
|
324
|
+
return next();
|
|
325
|
+
});
|
|
326
|
+
// Track request response time
|
|
327
|
+
this.app.use((req, res, next) => {
|
|
328
|
+
const start = Date.now();
|
|
329
|
+
const origEnd = res.end.bind(res);
|
|
330
|
+
res.end = (...args) => {
|
|
331
|
+
this.metricRequestTime
|
|
332
|
+
.labels(req.method, req.path, String(res.statusCode))
|
|
333
|
+
.observe(Date.now() - start);
|
|
334
|
+
return origEnd(...args);
|
|
335
|
+
};
|
|
336
|
+
return next();
|
|
337
|
+
});
|
|
338
|
+
const allRoutes = [];
|
|
339
|
+
this.routeUtils = await this.objectFactory.newInstance(RouteUtils, { name: "default" });
|
|
340
|
+
if (!this.routeUtils) {
|
|
341
|
+
reject("Failed to instantiate RouteUtils.");
|
|
342
|
+
return;
|
|
343
|
+
}
|
|
344
|
+
// Register the index route
|
|
345
|
+
const index = await this.objectFactory.newInstance(StatusRoute, { name: "default" });
|
|
346
|
+
allRoutes.push(index);
|
|
347
|
+
await this.routeUtils.registerRoute(this.app, index);
|
|
348
|
+
// Register the admin route
|
|
349
|
+
const admin = await this.objectFactory.newInstance(AdminRoute, { name: "default" });
|
|
350
|
+
allRoutes.push(admin);
|
|
351
|
+
await this.routeUtils.registerRoute(this.app, admin);
|
|
352
|
+
// Register the ACLs route if configured
|
|
353
|
+
const aclConn = this.connectionManager?.connections.get("acl");
|
|
354
|
+
if (aclConn instanceof MongoConnection) {
|
|
355
|
+
const aclRoute = await this.objectFactory.newInstance(ACLRouteMongo, {
|
|
356
|
+
name: "default",
|
|
357
|
+
});
|
|
358
|
+
await this.routeUtils.registerRoute(this.app, aclRoute);
|
|
359
|
+
allRoutes.push(aclRoute);
|
|
360
|
+
}
|
|
361
|
+
else if (isSqlDataSource(aclConn)) {
|
|
362
|
+
const aclRoute = await this.objectFactory.newInstance(ACLRouteSQL, {
|
|
363
|
+
name: "default",
|
|
364
|
+
});
|
|
365
|
+
await this.routeUtils.registerRoute(this.app, aclRoute);
|
|
366
|
+
allRoutes.push(aclRoute);
|
|
367
|
+
}
|
|
368
|
+
// Register the OpenAPI route if a spec has been provided
|
|
369
|
+
if (this.apiSpec) {
|
|
370
|
+
const oasRoute = await this.objectFactory.newInstance(OpenAPIRoute, {
|
|
371
|
+
name: "default",
|
|
372
|
+
initialize: true,
|
|
373
|
+
args: [this.apiSpec],
|
|
374
|
+
});
|
|
375
|
+
await this.routeUtils.registerRoute(this.app, oasRoute);
|
|
376
|
+
allRoutes.push(oasRoute);
|
|
377
|
+
}
|
|
378
|
+
// Register the metrics route
|
|
379
|
+
const metricsRoute = await this.objectFactory.newInstance(MetricsRoute, {
|
|
380
|
+
name: "default",
|
|
381
|
+
});
|
|
382
|
+
await this.routeUtils.registerRoute(this.app, metricsRoute);
|
|
383
|
+
// Initialize the background service manager
|
|
384
|
+
this.logger.info("Starting background services...");
|
|
385
|
+
const serviceClasses = {};
|
|
386
|
+
for (const [name, clazz] of classLoader.getClasses().entries()) {
|
|
387
|
+
if (clazz.prototype instanceof BackgroundService) {
|
|
388
|
+
serviceClasses[name] = clazz;
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
this.serviceManager = await this.objectFactory.newInstance(BackgroundServiceManager, {
|
|
392
|
+
name: "default",
|
|
393
|
+
initialize: true,
|
|
394
|
+
args: [this.objectFactory, serviceClasses, this.config, this.logger],
|
|
395
|
+
});
|
|
396
|
+
if (this.serviceManager) {
|
|
397
|
+
await this.serviceManager.startAll();
|
|
398
|
+
}
|
|
399
|
+
// Initialize the EventListenerManager
|
|
400
|
+
const redis = this.connectionManager?.connections.get("events");
|
|
401
|
+
if (redis) {
|
|
402
|
+
this.logger.info("Initializing event manager...");
|
|
403
|
+
this.eventListenerManager = await this.objectFactory.newInstance(EventListenerManager, {
|
|
404
|
+
name: "default",
|
|
405
|
+
args: [this.config, this.logger, this.objectFactory, redis],
|
|
406
|
+
});
|
|
407
|
+
if (this.eventListenerManager) {
|
|
408
|
+
await this.eventListenerManager.init();
|
|
409
|
+
this.objectFactory.instances.forEach((obj) => {
|
|
410
|
+
this.eventListenerManager?.register(obj);
|
|
411
|
+
});
|
|
412
|
+
allRoutes.forEach((obj) => {
|
|
413
|
+
this.eventListenerManager?.register(obj);
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
// Perform automatic discovery of all other routes
|
|
418
|
+
this.logger.info("Scanning for routes...");
|
|
419
|
+
try {
|
|
420
|
+
for (const [fqn, clazz] of classLoader.getClasses().entries()) {
|
|
421
|
+
const routePaths = clazz.prototype
|
|
422
|
+
? Reflect.getMetadata("rrst:routePaths", clazz.prototype)
|
|
423
|
+
: Reflect.getMetadata("rrst:routePaths", clazz);
|
|
424
|
+
if (routePaths) {
|
|
425
|
+
this.objectFactory.register(clazz, fqn);
|
|
426
|
+
const route = await this.objectFactory.newInstance(fqn, { name: "default" });
|
|
427
|
+
await this.routeUtils.registerRoute(this.app, route);
|
|
428
|
+
allRoutes.push(route);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
catch (err) {
|
|
433
|
+
reject(err);
|
|
434
|
+
return;
|
|
435
|
+
}
|
|
436
|
+
// Error handling. NOTE: Must be defined last.
|
|
437
|
+
// 4-param signature signals error handler to runChain
|
|
438
|
+
this.app.use(((err, _req, res, next) => {
|
|
439
|
+
if (err) {
|
|
440
|
+
// Only log 500-level errors. 400-level errors are the client's fault and
|
|
441
|
+
// we don't need to spam the logs because of that.
|
|
442
|
+
if (!(err instanceof ApiError) || err.status >= 500) {
|
|
443
|
+
this.logger.error(err);
|
|
444
|
+
}
|
|
445
|
+
else {
|
|
446
|
+
this.logger.debug(err);
|
|
447
|
+
}
|
|
448
|
+
if (typeof err === "string") {
|
|
449
|
+
if (!res.headersSent) {
|
|
450
|
+
res.status(500);
|
|
451
|
+
}
|
|
452
|
+
res.json({ message: "Internal Server Error", status: 500 });
|
|
453
|
+
}
|
|
454
|
+
else if (err instanceof BulkError) {
|
|
455
|
+
const errs = err.errors;
|
|
456
|
+
if (err.stack && process.env.NODE_ENV !== "development") {
|
|
457
|
+
for (const err of errs) {
|
|
458
|
+
if (err) {
|
|
459
|
+
delete err.stack;
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
if (!res.headersSent) {
|
|
464
|
+
res.status(err.status);
|
|
465
|
+
}
|
|
466
|
+
res.json(errs);
|
|
467
|
+
}
|
|
468
|
+
else {
|
|
469
|
+
if (!(err instanceof ApiError)) {
|
|
470
|
+
const tmp = new ApiError(ApiErrors.INTERNAL_ERROR, 500, ApiErrorMessages.INTERNAL_ERROR);
|
|
471
|
+
tmp.stack = err.stack;
|
|
472
|
+
err = tmp;
|
|
473
|
+
}
|
|
474
|
+
// leverage NODE_ENV or another config?
|
|
475
|
+
if (err.stack && process.env.NODE_ENV !== "development") {
|
|
476
|
+
delete err.stack;
|
|
477
|
+
}
|
|
478
|
+
if (!res.headersSent) {
|
|
479
|
+
res.status(err.status);
|
|
480
|
+
}
|
|
481
|
+
const formattedError = {
|
|
482
|
+
...err,
|
|
483
|
+
// https://stackoverflow.com/a/25245824
|
|
484
|
+
level: err.level ? err.level.replace(/\[.*?m/g, "") : undefined, // eslint-disable-line no-control-regex
|
|
485
|
+
message: err.message
|
|
486
|
+
};
|
|
487
|
+
res.json(formattedError);
|
|
488
|
+
}
|
|
489
|
+
this.metricFailedRequests.inc(1);
|
|
490
|
+
}
|
|
491
|
+
return next();
|
|
492
|
+
}));
|
|
493
|
+
this.app.use((req, res) => {
|
|
494
|
+
this.metricRequestPath.labels(req.path).inc();
|
|
495
|
+
this.metricRequestStatus.labels(req.method, req.path, String(res.statusCode)).inc();
|
|
496
|
+
this.metricTotalRequests.inc(1);
|
|
497
|
+
this.metricCompletedRequests.inc(1);
|
|
498
|
+
if (!res.writableEnded) {
|
|
499
|
+
res.send();
|
|
500
|
+
}
|
|
501
|
+
});
|
|
502
|
+
// Serve static files — registered after route handlers so routes take precedence
|
|
503
|
+
this.app.static(publicPath);
|
|
504
|
+
await this.postStart();
|
|
505
|
+
// IPv6: set listen_host to "::" in config; default binds to all IPv4 interfaces
|
|
506
|
+
const listenHost = this.config.get("listen_host") || "0.0.0.0";
|
|
507
|
+
await this.app.listen(listenHost, this.port);
|
|
508
|
+
this.logger.info(`Listening on ${listenHost}:${this.port}...`);
|
|
509
|
+
resolve();
|
|
510
|
+
}
|
|
511
|
+
catch (err) {
|
|
512
|
+
this.logger.error(err);
|
|
513
|
+
reject(err);
|
|
514
|
+
}
|
|
515
|
+
});
|
|
516
|
+
}
|
|
517
|
+
/**
|
|
518
|
+
* Stops the HTTP listen server.
|
|
519
|
+
*/
|
|
520
|
+
stop() {
|
|
521
|
+
return new Promise(async (resolve, reject) => {
|
|
522
|
+
this.logger.info("Stopping background services...");
|
|
523
|
+
await this.serviceManager?.stopAll();
|
|
524
|
+
this.logger.info("Stopping server...");
|
|
525
|
+
try {
|
|
526
|
+
if (this.app?.isListening) {
|
|
527
|
+
this.app.close();
|
|
528
|
+
}
|
|
529
|
+
this.logger.info("Closing database connections...");
|
|
530
|
+
await this.connectionManager?.disconnect();
|
|
531
|
+
resolve();
|
|
532
|
+
}
|
|
533
|
+
catch (err) {
|
|
534
|
+
reject(err);
|
|
535
|
+
}
|
|
536
|
+
setTimeout(() => {
|
|
537
|
+
reject("Failed to shut down server.");
|
|
538
|
+
}, 30000);
|
|
539
|
+
});
|
|
540
|
+
}
|
|
541
|
+
/**
|
|
542
|
+
* Restarts the HTTP listen server using the provided configuration and OpenAPI specification.
|
|
543
|
+
*/
|
|
544
|
+
async restart() {
|
|
545
|
+
await this.stop();
|
|
546
|
+
return await this.start();
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
//# sourceMappingURL=Server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../src/Server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Types.js","sourceRoot":"","sources":["../../src/Types.ts"],"names":[],"mappings":""}
|