@expressots/adapter-express 3.0.0 → 4.0.0-preview.3
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.md +21 -21
- package/README.md +61 -118
- package/lib/CHANGELOG.md +36 -5
- package/lib/README.md +61 -118
- package/lib/cjs/adapter-express/application-express.base.js +3 -1
- package/lib/cjs/adapter-express/application-express.js +1405 -85
- package/lib/cjs/adapter-express/express-utils/conditional-middleware.js +102 -0
- package/lib/cjs/adapter-express/express-utils/constants.js +17 -0
- package/lib/cjs/adapter-express/express-utils/content-negotiation-decorators.js +129 -0
- package/lib/cjs/adapter-express/express-utils/decorators.js +225 -59
- package/lib/cjs/adapter-express/express-utils/exception-filter-decorators.js +11 -0
- package/lib/cjs/adapter-express/express-utils/guard-context-factory.js +84 -0
- package/lib/cjs/adapter-express/express-utils/guard-middleware.js +115 -0
- package/lib/cjs/adapter-express/express-utils/guard-utils.js +18 -0
- package/lib/cjs/adapter-express/express-utils/http-context-store.js +15 -0
- package/lib/cjs/adapter-express/express-utils/http-status-middleware.js +37 -2
- package/lib/cjs/adapter-express/express-utils/index.js +67 -1
- package/lib/cjs/adapter-express/express-utils/interceptor-middleware.js +132 -0
- package/lib/cjs/adapter-express/express-utils/inversify-express-server.js +827 -64
- package/lib/cjs/adapter-express/express-utils/lazy-module-middleware.js +241 -0
- package/lib/cjs/adapter-express/express-utils/middleware-composition.js +95 -0
- package/lib/cjs/adapter-express/express-utils/path-pattern-compat.js +129 -0
- package/lib/cjs/adapter-express/express-utils/permission-preloader.middleware.js +48 -0
- package/lib/cjs/adapter-express/express-utils/route-constraints.js +104 -0
- package/lib/cjs/adapter-express/express-utils/scope-extractor.interface.js +2 -0
- package/lib/cjs/adapter-express/express-utils/scope-extractor.js +66 -0
- package/lib/cjs/adapter-express/express-utils/setup-authorization.js +71 -0
- package/lib/cjs/adapter-express/express-utils/setup-event-system.js +113 -0
- package/lib/cjs/adapter-express/express-utils/setup-interceptors.js +103 -0
- package/lib/cjs/adapter-express/express-utils/setup-lazy-loading.js +228 -0
- package/lib/cjs/adapter-express/express-utils/utils.js +30 -12
- package/lib/cjs/adapter-express/express-utils/validation-decorators.js +205 -0
- package/lib/cjs/adapter-express/express-utils/validation-service.js +252 -0
- package/lib/cjs/adapter-express/index.js +7 -5
- package/lib/cjs/adapter-express/micro-api/application-express-micro-route.js +31 -1
- package/lib/cjs/adapter-express/micro-api/application-express-micro.js +8 -38
- package/lib/cjs/adapter-express/micro-api/gateway/circuit-breaker.js +174 -0
- package/lib/cjs/adapter-express/micro-api/gateway/index.js +11 -0
- package/lib/cjs/adapter-express/micro-api/gateway/service-proxy.js +214 -0
- package/lib/cjs/adapter-express/micro-api/index.js +27 -3
- package/lib/cjs/adapter-express/micro-api/micro.js +272 -0
- package/lib/cjs/adapter-express/micro-api/queue/index.js +8 -0
- package/lib/cjs/adapter-express/micro-api/queue/queue.interface.js +2 -0
- package/lib/cjs/adapter-express/micro-api/queue/rabbitmq-consumer.js +255 -0
- package/lib/cjs/adapter-express/micro-api/serverless/aws-lambda.adapter.js +183 -0
- package/lib/cjs/adapter-express/micro-api/serverless/cloudflare.adapter.js +158 -0
- package/lib/cjs/adapter-express/micro-api/serverless/index.js +12 -0
- package/lib/cjs/adapter-express/micro-api/serverless/vercel.adapter.js +102 -0
- package/lib/cjs/adapter-express/micro-api/service-mesh/index.js +10 -0
- package/lib/cjs/adapter-express/micro-api/service-mesh/service-client.js +194 -0
- package/lib/cjs/adapter-express/micro-api/service-mesh/service-discovery.js +261 -0
- package/lib/cjs/adapter-express/middleware/index.js +21 -0
- package/lib/cjs/adapter-express/middleware/request-logging.middleware.js +244 -0
- package/lib/cjs/adapter-express/render/engine.js +15 -15
- package/lib/cjs/adapter-express/render/index.js +5 -0
- package/lib/cjs/adapter-express/studio/index.js +10 -0
- package/lib/cjs/adapter-express/studio/studio-integration.js +267 -0
- package/lib/cjs/index.js +1 -1
- package/lib/cjs/types/adapter-express/application-express.base.d.ts +20 -7
- package/lib/cjs/types/adapter-express/application-express.d.ts +316 -33
- package/lib/cjs/types/adapter-express/express-utils/base-middleware.d.ts +2 -2
- package/lib/cjs/types/adapter-express/express-utils/conditional-middleware.d.ts +97 -0
- package/lib/cjs/types/adapter-express/express-utils/constants.d.ts +13 -0
- package/lib/cjs/types/adapter-express/express-utils/content-negotiation-decorators.d.ts +94 -0
- package/lib/cjs/types/adapter-express/express-utils/decorators.d.ts +54 -6
- package/lib/cjs/types/adapter-express/express-utils/exception-filter-decorators.d.ts +6 -0
- package/lib/cjs/types/adapter-express/express-utils/guard-context-factory.d.ts +17 -0
- package/lib/cjs/types/adapter-express/express-utils/guard-middleware.d.ts +22 -0
- package/lib/cjs/types/adapter-express/express-utils/guard-utils.d.ts +11 -0
- package/lib/cjs/types/adapter-express/express-utils/http-context-store.d.ts +20 -0
- package/lib/cjs/types/adapter-express/express-utils/httpResponseMessage.d.ts +1 -1
- package/lib/cjs/types/adapter-express/express-utils/index.d.ts +30 -2
- package/lib/cjs/types/adapter-express/express-utils/interceptor-middleware.d.ts +40 -0
- package/lib/cjs/types/adapter-express/express-utils/interfaces.d.ts +42 -5
- package/lib/cjs/types/adapter-express/express-utils/inversify-express-server.d.ts +114 -2
- package/lib/cjs/types/adapter-express/express-utils/lazy-module-middleware.d.ts +122 -0
- package/lib/cjs/types/adapter-express/express-utils/middleware-composition.d.ts +85 -0
- package/lib/cjs/types/adapter-express/express-utils/path-pattern-compat.d.ts +66 -0
- package/lib/cjs/types/adapter-express/express-utils/permission-preloader.middleware.d.ts +10 -0
- package/lib/cjs/types/adapter-express/express-utils/route-constraints.d.ts +98 -0
- package/lib/cjs/types/adapter-express/express-utils/scope-extractor.d.ts +21 -0
- package/lib/cjs/types/adapter-express/express-utils/scope-extractor.interface.d.ts +12 -0
- package/lib/cjs/types/adapter-express/express-utils/setup-authorization.d.ts +34 -0
- package/lib/cjs/types/adapter-express/express-utils/setup-event-system.d.ts +118 -0
- package/lib/cjs/types/adapter-express/express-utils/setup-interceptors.d.ts +115 -0
- package/lib/cjs/types/adapter-express/express-utils/setup-lazy-loading.d.ts +123 -0
- package/lib/cjs/types/adapter-express/express-utils/utils.d.ts +17 -2
- package/lib/cjs/types/adapter-express/express-utils/validation-decorators.d.ts +145 -0
- package/lib/cjs/types/adapter-express/express-utils/validation-service.d.ts +88 -0
- package/lib/cjs/types/adapter-express/index.d.ts +6 -4
- package/lib/cjs/types/adapter-express/micro-api/application-express-micro-route.d.ts +25 -14
- package/lib/cjs/types/adapter-express/micro-api/application-express-micro.d.ts +3 -10
- package/lib/cjs/types/adapter-express/micro-api/gateway/circuit-breaker.d.ts +111 -0
- package/lib/cjs/types/adapter-express/micro-api/gateway/index.d.ts +5 -0
- package/lib/cjs/types/adapter-express/micro-api/gateway/service-proxy.d.ts +83 -0
- package/lib/cjs/types/adapter-express/micro-api/index.d.ts +7 -1
- package/lib/cjs/types/adapter-express/micro-api/micro.d.ts +83 -0
- package/lib/cjs/types/adapter-express/micro-api/queue/index.d.ts +5 -0
- package/lib/cjs/types/adapter-express/micro-api/queue/queue.interface.d.ts +60 -0
- package/lib/cjs/types/adapter-express/micro-api/queue/rabbitmq-consumer.d.ts +86 -0
- package/lib/cjs/types/adapter-express/micro-api/serverless/aws-lambda.adapter.d.ts +77 -0
- package/lib/cjs/types/adapter-express/micro-api/serverless/cloudflare.adapter.d.ts +64 -0
- package/lib/cjs/types/adapter-express/micro-api/serverless/index.d.ts +6 -0
- package/lib/cjs/types/adapter-express/micro-api/serverless/vercel.adapter.d.ts +56 -0
- package/lib/cjs/types/adapter-express/micro-api/service-mesh/index.d.ts +5 -0
- package/lib/cjs/types/adapter-express/micro-api/service-mesh/service-client.d.ts +122 -0
- package/lib/cjs/types/adapter-express/micro-api/service-mesh/service-discovery.d.ts +150 -0
- package/lib/cjs/types/adapter-express/middleware/index.d.ts +5 -0
- package/lib/cjs/types/adapter-express/middleware/request-logging.middleware.d.ts +65 -0
- package/lib/cjs/types/adapter-express/render/index.d.ts +1 -0
- package/lib/cjs/types/adapter-express/studio/index.d.ts +1 -0
- package/lib/cjs/types/adapter-express/studio/studio-integration.d.ts +170 -0
- package/lib/cjs/types/index.d.ts +1 -1
- package/lib/esm/adapter-express/application-express.base.js +24 -0
- package/lib/esm/adapter-express/application-express.js +1656 -0
- package/lib/esm/adapter-express/application-express.types.js +1 -0
- package/lib/esm/adapter-express/express-utils/base-middleware.js +19 -0
- package/lib/esm/adapter-express/express-utils/conditional-middleware.js +96 -0
- package/lib/esm/adapter-express/express-utils/constants.js +63 -0
- package/lib/esm/adapter-express/express-utils/content/httpContent.js +6 -0
- package/lib/esm/adapter-express/express-utils/content-negotiation-decorators.js +120 -0
- package/lib/esm/adapter-express/express-utils/decorators.js +604 -0
- package/lib/esm/adapter-express/express-utils/exception-filter-decorators.js +6 -0
- package/lib/esm/adapter-express/express-utils/guard-context-factory.js +83 -0
- package/lib/esm/adapter-express/express-utils/guard-middleware.js +115 -0
- package/lib/esm/adapter-express/express-utils/guard-utils.js +14 -0
- package/lib/esm/adapter-express/express-utils/http-context-store.js +10 -0
- package/lib/esm/adapter-express/express-utils/http-status-middleware.js +116 -0
- package/lib/esm/adapter-express/express-utils/httpResponseMessage.js +29 -0
- package/lib/esm/adapter-express/express-utils/index.js +24 -0
- package/lib/esm/adapter-express/express-utils/interceptor-middleware.js +130 -0
- package/lib/esm/adapter-express/express-utils/interfaces.js +1 -0
- package/lib/esm/adapter-express/express-utils/inversify-express-server.js +1047 -0
- package/lib/esm/adapter-express/express-utils/lazy-module-middleware.js +236 -0
- package/lib/esm/adapter-express/express-utils/middleware-composition.js +89 -0
- package/lib/esm/adapter-express/express-utils/path-pattern-compat.js +125 -0
- package/lib/esm/adapter-express/express-utils/permission-preloader.middleware.js +45 -0
- package/lib/esm/adapter-express/express-utils/resolver-multer.js +30 -0
- package/lib/esm/adapter-express/express-utils/route-constraints.js +100 -0
- package/lib/esm/adapter-express/express-utils/scope-extractor.interface.js +1 -0
- package/lib/esm/adapter-express/express-utils/scope-extractor.js +63 -0
- package/lib/esm/adapter-express/express-utils/setup-authorization.js +68 -0
- package/lib/esm/adapter-express/express-utils/setup-event-system.js +110 -0
- package/lib/esm/adapter-express/express-utils/setup-interceptors.js +100 -0
- package/lib/esm/adapter-express/express-utils/setup-lazy-loading.js +225 -0
- package/lib/esm/adapter-express/express-utils/utils.js +68 -0
- package/lib/esm/adapter-express/express-utils/validation-decorators.js +199 -0
- package/lib/esm/adapter-express/express-utils/validation-service.js +251 -0
- package/lib/esm/adapter-express/index.js +7 -0
- package/lib/esm/adapter-express/micro-api/application-express-micro-container.js +48 -0
- package/lib/esm/adapter-express/micro-api/application-express-micro-route.js +128 -0
- package/lib/esm/adapter-express/micro-api/application-express-micro.js +157 -0
- package/lib/esm/adapter-express/micro-api/gateway/circuit-breaker.js +174 -0
- package/lib/esm/adapter-express/micro-api/gateway/index.js +5 -0
- package/lib/esm/adapter-express/micro-api/gateway/service-proxy.js +210 -0
- package/lib/esm/adapter-express/micro-api/index.js +10 -0
- package/lib/esm/adapter-express/micro-api/micro.js +266 -0
- package/lib/esm/adapter-express/micro-api/queue/index.js +4 -0
- package/lib/esm/adapter-express/micro-api/queue/queue.interface.js +1 -0
- package/lib/esm/adapter-express/micro-api/queue/rabbitmq-consumer.js +229 -0
- package/lib/esm/adapter-express/micro-api/serverless/aws-lambda.adapter.js +180 -0
- package/lib/esm/adapter-express/micro-api/serverless/cloudflare.adapter.js +155 -0
- package/lib/esm/adapter-express/micro-api/serverless/index.js +6 -0
- package/lib/esm/adapter-express/micro-api/serverless/vercel.adapter.js +99 -0
- package/lib/esm/adapter-express/micro-api/service-mesh/index.js +5 -0
- package/lib/esm/adapter-express/micro-api/service-mesh/service-client.js +191 -0
- package/lib/esm/adapter-express/micro-api/service-mesh/service-discovery.js +259 -0
- package/lib/esm/adapter-express/middleware/index.js +5 -0
- package/lib/esm/adapter-express/middleware/request-logging.middleware.js +239 -0
- package/lib/esm/adapter-express/render/constants.js +37 -0
- package/lib/esm/adapter-express/render/engine.js +51 -0
- package/lib/esm/adapter-express/render/index.js +1 -0
- package/lib/esm/adapter-express/render/resolve-render.js +30 -0
- package/lib/esm/adapter-express/studio/index.js +1 -0
- package/lib/esm/adapter-express/studio/studio-integration.js +236 -0
- package/lib/esm/index.mjs +1 -0
- package/lib/esm/package.json +3 -0
- package/lib/esm/types/adapter-express/application-express.base.d.ts +77 -0
- package/lib/esm/types/adapter-express/application-express.d.ts +453 -0
- package/lib/esm/types/adapter-express/application-express.types.d.ts +23 -0
- package/lib/esm/types/adapter-express/express-utils/base-middleware.d.ts +8 -0
- package/lib/esm/types/adapter-express/express-utils/conditional-middleware.d.ts +97 -0
- package/lib/esm/types/adapter-express/express-utils/constants.d.ts +57 -0
- package/lib/esm/types/adapter-express/express-utils/content/httpContent.d.ts +6 -0
- package/lib/esm/types/adapter-express/express-utils/content-negotiation-decorators.d.ts +94 -0
- package/lib/esm/types/adapter-express/express-utils/decorators.d.ts +257 -0
- package/lib/esm/types/adapter-express/express-utils/exception-filter-decorators.d.ts +6 -0
- package/lib/esm/types/adapter-express/express-utils/guard-context-factory.d.ts +17 -0
- package/lib/esm/types/adapter-express/express-utils/guard-middleware.d.ts +22 -0
- package/lib/esm/types/adapter-express/express-utils/guard-utils.d.ts +11 -0
- package/lib/esm/types/adapter-express/express-utils/http-context-store.d.ts +20 -0
- package/lib/esm/types/adapter-express/express-utils/http-status-middleware.d.ts +26 -0
- package/lib/esm/types/adapter-express/express-utils/httpResponseMessage.d.ts +14 -0
- package/lib/esm/types/adapter-express/express-utils/index.d.ts +30 -0
- package/lib/esm/types/adapter-express/express-utils/interceptor-middleware.d.ts +40 -0
- package/lib/esm/types/adapter-express/express-utils/interfaces.d.ts +115 -0
- package/lib/esm/types/adapter-express/express-utils/inversify-express-server.d.ts +172 -0
- package/lib/esm/types/adapter-express/express-utils/lazy-module-middleware.d.ts +122 -0
- package/lib/esm/types/adapter-express/express-utils/middleware-composition.d.ts +85 -0
- package/lib/esm/types/adapter-express/express-utils/path-pattern-compat.d.ts +66 -0
- package/lib/esm/types/adapter-express/express-utils/permission-preloader.middleware.d.ts +10 -0
- package/lib/esm/types/adapter-express/express-utils/resolver-multer.d.ts +7 -0
- package/lib/esm/types/adapter-express/express-utils/route-constraints.d.ts +98 -0
- package/lib/esm/types/adapter-express/express-utils/scope-extractor.d.ts +21 -0
- package/lib/esm/types/adapter-express/express-utils/scope-extractor.interface.d.ts +12 -0
- package/lib/esm/types/adapter-express/express-utils/setup-authorization.d.ts +34 -0
- package/lib/esm/types/adapter-express/express-utils/setup-event-system.d.ts +118 -0
- package/lib/esm/types/adapter-express/express-utils/setup-interceptors.d.ts +115 -0
- package/lib/esm/types/adapter-express/express-utils/setup-lazy-loading.d.ts +123 -0
- package/lib/esm/types/adapter-express/express-utils/utils.d.ts +24 -0
- package/lib/esm/types/adapter-express/express-utils/validation-decorators.d.ts +145 -0
- package/lib/esm/types/adapter-express/express-utils/validation-service.d.ts +88 -0
- package/lib/esm/types/adapter-express/index.d.ts +7 -0
- package/lib/esm/types/adapter-express/micro-api/application-express-micro-container.d.ts +47 -0
- package/lib/esm/types/adapter-express/micro-api/application-express-micro-route.d.ts +104 -0
- package/lib/esm/types/adapter-express/micro-api/application-express-micro.d.ts +72 -0
- package/lib/esm/types/adapter-express/micro-api/gateway/circuit-breaker.d.ts +111 -0
- package/lib/esm/types/adapter-express/micro-api/gateway/index.d.ts +5 -0
- package/lib/esm/types/adapter-express/micro-api/gateway/service-proxy.d.ts +83 -0
- package/lib/esm/types/adapter-express/micro-api/index.d.ts +7 -0
- package/lib/esm/types/adapter-express/micro-api/micro.d.ts +83 -0
- package/lib/esm/types/adapter-express/micro-api/queue/index.d.ts +5 -0
- package/lib/esm/types/adapter-express/micro-api/queue/queue.interface.d.ts +60 -0
- package/lib/esm/types/adapter-express/micro-api/queue/rabbitmq-consumer.d.ts +86 -0
- package/lib/esm/types/adapter-express/micro-api/serverless/aws-lambda.adapter.d.ts +77 -0
- package/lib/esm/types/adapter-express/micro-api/serverless/cloudflare.adapter.d.ts +64 -0
- package/lib/esm/types/adapter-express/micro-api/serverless/index.d.ts +6 -0
- package/lib/esm/types/adapter-express/micro-api/serverless/vercel.adapter.d.ts +56 -0
- package/lib/esm/types/adapter-express/micro-api/service-mesh/index.d.ts +5 -0
- package/lib/esm/types/adapter-express/micro-api/service-mesh/service-client.d.ts +122 -0
- package/lib/esm/types/adapter-express/micro-api/service-mesh/service-discovery.d.ts +150 -0
- package/lib/esm/types/adapter-express/middleware/index.d.ts +5 -0
- package/lib/esm/types/adapter-express/middleware/request-logging.middleware.d.ts +65 -0
- package/lib/esm/types/adapter-express/render/constants.d.ts +26 -0
- package/lib/esm/types/adapter-express/render/engine.d.ts +20 -0
- package/lib/esm/types/adapter-express/render/index.d.ts +5 -0
- package/lib/esm/types/adapter-express/render/resolve-render.d.ts +7 -0
- package/lib/esm/types/adapter-express/studio/index.d.ts +1 -0
- package/lib/esm/types/adapter-express/studio/studio-integration.d.ts +170 -0
- package/lib/esm/types/index.d.ts +1 -0
- package/lib/package.json +170 -146
- package/package.json +170 -146
- package/lib/cjs/di/di.interfaces.js +0 -10
- package/lib/cjs/types/di/di.interfaces.d.ts +0 -289
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS Lambda Adapter for ExpressoTS Micro API
|
|
3
|
+
*
|
|
4
|
+
* Converts Lambda events to Express requests and responses.
|
|
5
|
+
*/
|
|
6
|
+
import { Application } from "express";
|
|
7
|
+
/**
|
|
8
|
+
* AWS Lambda Event (simplified)
|
|
9
|
+
*/
|
|
10
|
+
export interface LambdaEvent {
|
|
11
|
+
httpMethod: string;
|
|
12
|
+
path: string;
|
|
13
|
+
headers?: Record<string, string>;
|
|
14
|
+
queryStringParameters?: Record<string, string>;
|
|
15
|
+
body?: string;
|
|
16
|
+
isBase64Encoded?: boolean;
|
|
17
|
+
requestContext?: {
|
|
18
|
+
requestId?: string;
|
|
19
|
+
stage?: string;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* AWS Lambda Context
|
|
24
|
+
*/
|
|
25
|
+
export interface LambdaContext {
|
|
26
|
+
awsRequestId: string;
|
|
27
|
+
functionName: string;
|
|
28
|
+
functionVersion: string;
|
|
29
|
+
invokedFunctionArn: string;
|
|
30
|
+
memoryLimitInMB: string;
|
|
31
|
+
logGroupName: string;
|
|
32
|
+
logStreamName: string;
|
|
33
|
+
getRemainingTimeInMillis(): number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* AWS Lambda Response
|
|
37
|
+
*/
|
|
38
|
+
export interface LambdaResponse {
|
|
39
|
+
statusCode: number;
|
|
40
|
+
headers: Record<string, string>;
|
|
41
|
+
body: string;
|
|
42
|
+
isBase64Encoded: boolean;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* AWS Lambda Handler Type
|
|
46
|
+
*/
|
|
47
|
+
export type LambdaHandler = (event: LambdaEvent, context: LambdaContext) => Promise<LambdaResponse>;
|
|
48
|
+
/**
|
|
49
|
+
* AWS Lambda Adapter Configuration
|
|
50
|
+
*/
|
|
51
|
+
export interface LambdaAdapterConfig {
|
|
52
|
+
/** Binary content types (will be base64 encoded) */
|
|
53
|
+
binaryContentTypes?: Array<string>;
|
|
54
|
+
/** Enable debug logging */
|
|
55
|
+
debug?: boolean;
|
|
56
|
+
/** Request timeout in ms (default: 30000) */
|
|
57
|
+
timeout?: number;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Create an AWS Lambda handler from an Express app
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* import { createMicroAPI, awsLambdaAdapter } from "@expressots/adapter-express";
|
|
65
|
+
*
|
|
66
|
+
* const microAPI = createMicroAPI();
|
|
67
|
+
* const app = microAPI.build();
|
|
68
|
+
*
|
|
69
|
+
* app.Middleware.parse();
|
|
70
|
+
* app.Route.get("/", (req, res) => res.json({ message: "Hello Lambda!" }));
|
|
71
|
+
*
|
|
72
|
+
* export const handler = awsLambdaAdapter(app);
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export declare function awsLambdaAdapter(app: {
|
|
76
|
+
getExpressApp?: () => Application;
|
|
77
|
+
} | Application, config?: LambdaAdapterConfig): LambdaHandler;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare Workers Adapter for ExpressoTS Micro API
|
|
3
|
+
*
|
|
4
|
+
* Converts Cloudflare Workers requests to Express format.
|
|
5
|
+
* Note: This adapter requires a Cloudflare Workers-compatible Express implementation
|
|
6
|
+
* or uses a fetch-based approach.
|
|
7
|
+
*/
|
|
8
|
+
import { Application } from "express";
|
|
9
|
+
/**
|
|
10
|
+
* Cloudflare Workers Environment bindings
|
|
11
|
+
*/
|
|
12
|
+
export interface CloudflareEnv {
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Cloudflare Workers Execution Context
|
|
17
|
+
*/
|
|
18
|
+
export interface CloudflareContext {
|
|
19
|
+
waitUntil(promise: Promise<unknown>): void;
|
|
20
|
+
passThroughOnException(): void;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Cloudflare Workers Handler Type
|
|
24
|
+
*/
|
|
25
|
+
export type CloudflareHandler = {
|
|
26
|
+
fetch(request: globalThis.Request, env: CloudflareEnv, ctx: CloudflareContext): Promise<globalThis.Response>;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Cloudflare Adapter Configuration
|
|
30
|
+
*/
|
|
31
|
+
export interface CloudflareAdapterConfig {
|
|
32
|
+
/** Enable debug logging */
|
|
33
|
+
debug?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create a Cloudflare Workers handler from an Express app
|
|
37
|
+
*
|
|
38
|
+
* Note: Full Express compatibility in Cloudflare Workers requires
|
|
39
|
+
* additional setup. This adapter provides a basic implementation.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* // src/worker.ts
|
|
44
|
+
* import { createMicroAPI, cloudflareAdapter } from "@expressots/adapter-express";
|
|
45
|
+
*
|
|
46
|
+
* const microAPI = createMicroAPI();
|
|
47
|
+
* const app = microAPI.build();
|
|
48
|
+
*
|
|
49
|
+
* app.Middleware.parse();
|
|
50
|
+
* app.Route.get("/", (req, res) => res.json({ message: "Hello Workers!" }));
|
|
51
|
+
*
|
|
52
|
+
* export default cloudflareAdapter(app);
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* wrangler.toml:
|
|
56
|
+
* ```toml
|
|
57
|
+
* name = "my-worker"
|
|
58
|
+
* main = "src/worker.ts"
|
|
59
|
+
* compatibility_date = "2024-01-01"
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare function cloudflareAdapter(app: {
|
|
63
|
+
getExpressApp?: () => Application;
|
|
64
|
+
} | Application, config?: CloudflareAdapterConfig): CloudflareHandler;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Serverless Adapters for ExpressoTS Micro Template
|
|
3
|
+
*/
|
|
4
|
+
export { awsLambdaAdapter, type LambdaEvent, type LambdaContext, type LambdaResponse, type LambdaHandler, type LambdaAdapterConfig, } from "./aws-lambda.adapter.js";
|
|
5
|
+
export { vercelAdapter, type VercelRequest, type VercelResponse, type VercelHandler, type VercelAdapterConfig, } from "./vercel.adapter.js";
|
|
6
|
+
export { cloudflareAdapter, type CloudflareEnv, type CloudflareContext, type CloudflareHandler, type CloudflareAdapterConfig, } from "./cloudflare.adapter.js";
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vercel Adapter for ExpressoTS Micro API
|
|
3
|
+
*
|
|
4
|
+
* Converts Vercel serverless function requests to Express format.
|
|
5
|
+
*/
|
|
6
|
+
import { Application, Request, Response } from "express";
|
|
7
|
+
/**
|
|
8
|
+
* Vercel Request type - extends Express Request with Vercel-specific properties
|
|
9
|
+
*/
|
|
10
|
+
export interface VercelRequest extends Request {
|
|
11
|
+
query: Record<string, string | Array<string>>;
|
|
12
|
+
cookies: Record<string, string>;
|
|
13
|
+
body: unknown;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Vercel Response type - use Express Response directly to avoid type conflicts
|
|
17
|
+
*/
|
|
18
|
+
export type VercelResponse = Response;
|
|
19
|
+
/**
|
|
20
|
+
* Vercel Handler Type
|
|
21
|
+
*/
|
|
22
|
+
export type VercelHandler = (req: VercelRequest, res: VercelResponse) => Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Vercel Adapter Configuration
|
|
25
|
+
*/
|
|
26
|
+
export interface VercelAdapterConfig {
|
|
27
|
+
/** Enable debug logging */
|
|
28
|
+
debug?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Create a Vercel serverless handler from an Express app
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* // api/index.ts
|
|
36
|
+
* import { createMicroAPI, vercelAdapter } from "@expressots/adapter-express";
|
|
37
|
+
*
|
|
38
|
+
* const microAPI = createMicroAPI();
|
|
39
|
+
* const app = microAPI.build();
|
|
40
|
+
*
|
|
41
|
+
* app.Middleware.parse();
|
|
42
|
+
* app.Route.get("/api", (req, res) => res.json({ message: "Hello Vercel!" }));
|
|
43
|
+
*
|
|
44
|
+
* export default vercelAdapter(app);
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* vercel.json:
|
|
48
|
+
* ```json
|
|
49
|
+
* {
|
|
50
|
+
* "rewrites": [{ "source": "/api/(.*)", "destination": "/api" }]
|
|
51
|
+
* }
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export declare function vercelAdapter(app: {
|
|
55
|
+
getExpressApp?: () => Application;
|
|
56
|
+
} | Application, config?: VercelAdapterConfig): VercelHandler;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Mesh Utilities for ExpressoTS Micro Template
|
|
3
|
+
*/
|
|
4
|
+
export { ServiceClient, type ServiceClientConfig, type ServiceCallOptions, } from "./service-client.js";
|
|
5
|
+
export { ServiceDiscovery, type ServiceDiscoveryConfig, type ServiceInstance, } from "./service-discovery.js";
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { CircuitBreaker, CircuitBreakerConfig } from "../gateway/circuit-breaker.js";
|
|
2
|
+
/**
|
|
3
|
+
* Configuration for ServiceClient
|
|
4
|
+
*/
|
|
5
|
+
export interface ServiceClientConfig {
|
|
6
|
+
/** Service name for logging/metrics */
|
|
7
|
+
name: string;
|
|
8
|
+
/** Base URL of the service */
|
|
9
|
+
baseUrl: string;
|
|
10
|
+
/** Request timeout in ms (default: 5000) */
|
|
11
|
+
timeout?: number;
|
|
12
|
+
/** Number of retries on failure (default: 3) */
|
|
13
|
+
retries?: number;
|
|
14
|
+
/** Enable circuit breaker (default: true) */
|
|
15
|
+
circuitBreaker?: boolean | CircuitBreakerConfig;
|
|
16
|
+
/** Default headers to send with all requests */
|
|
17
|
+
headers?: Record<string, string>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Options for individual service calls
|
|
21
|
+
*/
|
|
22
|
+
export interface ServiceCallOptions {
|
|
23
|
+
/** HTTP method (default: "GET") */
|
|
24
|
+
method?: string;
|
|
25
|
+
/** Request headers */
|
|
26
|
+
headers?: Record<string, string>;
|
|
27
|
+
/** Request body (will be JSON stringified) */
|
|
28
|
+
body?: unknown;
|
|
29
|
+
/** Query parameters */
|
|
30
|
+
params?: Record<string, string>;
|
|
31
|
+
/** Override timeout for this request */
|
|
32
|
+
timeout?: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* ServiceClient - HTTP client for service-to-service communication.
|
|
36
|
+
*
|
|
37
|
+
* Features:
|
|
38
|
+
* - Automatic retries with exponential backoff
|
|
39
|
+
* - Circuit breaker integration
|
|
40
|
+
* - Request timeout
|
|
41
|
+
* - JSON request/response handling
|
|
42
|
+
* - Trace context propagation
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const userService = new ServiceClient({
|
|
47
|
+
* name: "user-service",
|
|
48
|
+
* baseUrl: "http://user-service:3001",
|
|
49
|
+
* timeout: 5000,
|
|
50
|
+
* retries: 3,
|
|
51
|
+
* circuitBreaker: true,
|
|
52
|
+
* });
|
|
53
|
+
*
|
|
54
|
+
* // GET request
|
|
55
|
+
* const user = await userService.call<User>("/users/123");
|
|
56
|
+
*
|
|
57
|
+
* // POST request
|
|
58
|
+
* const newUser = await userService.call<User>("/users", {
|
|
59
|
+
* method: "POST",
|
|
60
|
+
* body: { name: "John", email: "john@example.com" },
|
|
61
|
+
* });
|
|
62
|
+
*
|
|
63
|
+
* // With query parameters
|
|
64
|
+
* const users = await userService.call<User[]>("/users", {
|
|
65
|
+
* params: { page: "1", limit: "10" },
|
|
66
|
+
* });
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export declare class ServiceClient {
|
|
70
|
+
private config;
|
|
71
|
+
private stats;
|
|
72
|
+
constructor(config: ServiceClientConfig);
|
|
73
|
+
/**
|
|
74
|
+
* Make a request to the service
|
|
75
|
+
* @param path - Request path
|
|
76
|
+
* @param options - Request options
|
|
77
|
+
*/
|
|
78
|
+
call<T>(path: string, options?: ServiceCallOptions): Promise<T>;
|
|
79
|
+
/**
|
|
80
|
+
* GET request helper
|
|
81
|
+
*/
|
|
82
|
+
get<T>(path: string, options?: Omit<ServiceCallOptions, "method" | "body">): Promise<T>;
|
|
83
|
+
/**
|
|
84
|
+
* POST request helper
|
|
85
|
+
*/
|
|
86
|
+
post<T>(path: string, body?: unknown, options?: Omit<ServiceCallOptions, "method" | "body">): Promise<T>;
|
|
87
|
+
/**
|
|
88
|
+
* PUT request helper
|
|
89
|
+
*/
|
|
90
|
+
put<T>(path: string, body?: unknown, options?: Omit<ServiceCallOptions, "method" | "body">): Promise<T>;
|
|
91
|
+
/**
|
|
92
|
+
* PATCH request helper
|
|
93
|
+
*/
|
|
94
|
+
patch<T>(path: string, body?: unknown, options?: Omit<ServiceCallOptions, "method" | "body">): Promise<T>;
|
|
95
|
+
/**
|
|
96
|
+
* DELETE request helper
|
|
97
|
+
*/
|
|
98
|
+
delete<T>(path: string, options?: Omit<ServiceCallOptions, "method" | "body">): Promise<T>;
|
|
99
|
+
/**
|
|
100
|
+
* Get service stats
|
|
101
|
+
*/
|
|
102
|
+
getStats(): {
|
|
103
|
+
name: string;
|
|
104
|
+
baseUrl: string;
|
|
105
|
+
totalRequests: number;
|
|
106
|
+
successfulRequests: number;
|
|
107
|
+
failedRequests: number;
|
|
108
|
+
circuitBreaker?: ReturnType<CircuitBreaker["getStats"]>;
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Execute request with retry logic
|
|
112
|
+
*/
|
|
113
|
+
private executeWithRetry;
|
|
114
|
+
/**
|
|
115
|
+
* Execute a single request
|
|
116
|
+
*/
|
|
117
|
+
private executeRequest;
|
|
118
|
+
/**
|
|
119
|
+
* Delay helper
|
|
120
|
+
*/
|
|
121
|
+
private delay;
|
|
122
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service instance information
|
|
3
|
+
*/
|
|
4
|
+
export interface ServiceInstance {
|
|
5
|
+
/** Unique instance ID */
|
|
6
|
+
id: string;
|
|
7
|
+
/** Service name */
|
|
8
|
+
name: string;
|
|
9
|
+
/** Host address */
|
|
10
|
+
host: string;
|
|
11
|
+
/** Port number */
|
|
12
|
+
port: number;
|
|
13
|
+
/** Service metadata */
|
|
14
|
+
metadata?: Record<string, unknown>;
|
|
15
|
+
/** Health status */
|
|
16
|
+
health: "healthy" | "unhealthy";
|
|
17
|
+
/** Last health check timestamp */
|
|
18
|
+
lastCheck: Date;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Configuration for ServiceDiscovery
|
|
22
|
+
*/
|
|
23
|
+
export interface ServiceDiscoveryConfig {
|
|
24
|
+
/** Discovery type: "consul", "etcd", or "static" */
|
|
25
|
+
type: "consul" | "etcd" | "static";
|
|
26
|
+
/** Discovery service endpoint (for consul/etcd) */
|
|
27
|
+
endpoint?: string;
|
|
28
|
+
/** Refresh interval in ms (default: 30000) */
|
|
29
|
+
refreshInterval?: number;
|
|
30
|
+
/** Enable debug logging (default: false) */
|
|
31
|
+
debug?: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* ServiceDiscovery - Service discovery for microservices.
|
|
35
|
+
*
|
|
36
|
+
* Features:
|
|
37
|
+
* - Static service registration
|
|
38
|
+
* - Consul integration
|
|
39
|
+
* - etcd integration
|
|
40
|
+
* - Automatic service refresh
|
|
41
|
+
* - Round-robin load balancing
|
|
42
|
+
* - Health-based filtering
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* // Static service discovery
|
|
47
|
+
* const discovery = new ServiceDiscovery({ type: "static" });
|
|
48
|
+
*
|
|
49
|
+
* discovery.registerService({
|
|
50
|
+
* id: "user-service-1",
|
|
51
|
+
* name: "user-service",
|
|
52
|
+
* host: "user-service",
|
|
53
|
+
* port: 3001,
|
|
54
|
+
* health: "healthy",
|
|
55
|
+
* lastCheck: new Date(),
|
|
56
|
+
* });
|
|
57
|
+
*
|
|
58
|
+
* // Get a healthy instance
|
|
59
|
+
* const instance = discovery.getService("user-service");
|
|
60
|
+
* const client = new ServiceClient({
|
|
61
|
+
* name: "user-service",
|
|
62
|
+
* baseUrl: `http://${instance.host}:${instance.port}`,
|
|
63
|
+
* });
|
|
64
|
+
*
|
|
65
|
+
* // Or with Consul
|
|
66
|
+
* const discovery = new ServiceDiscovery({
|
|
67
|
+
* type: "consul",
|
|
68
|
+
* endpoint: "http://consul:8500",
|
|
69
|
+
* });
|
|
70
|
+
* await discovery.initialize();
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export declare class ServiceDiscovery {
|
|
74
|
+
private services;
|
|
75
|
+
private roundRobinIndex;
|
|
76
|
+
private refreshTimer?;
|
|
77
|
+
private config;
|
|
78
|
+
constructor(config: ServiceDiscoveryConfig);
|
|
79
|
+
/**
|
|
80
|
+
* Initialize the service discovery
|
|
81
|
+
* For consul/etcd, this starts the refresh loop
|
|
82
|
+
*/
|
|
83
|
+
initialize(): Promise<void>;
|
|
84
|
+
/**
|
|
85
|
+
* Register a service instance (for static mode)
|
|
86
|
+
* @param service - Service instance to register
|
|
87
|
+
*/
|
|
88
|
+
registerService(service: ServiceInstance): void;
|
|
89
|
+
/**
|
|
90
|
+
* Deregister a service instance
|
|
91
|
+
* @param serviceName - Service name
|
|
92
|
+
* @param instanceId - Instance ID to remove
|
|
93
|
+
*/
|
|
94
|
+
deregisterService(serviceName: string, instanceId: string): void;
|
|
95
|
+
/**
|
|
96
|
+
* Get a healthy instance of a service (round-robin)
|
|
97
|
+
* @param name - Service name
|
|
98
|
+
* @returns A healthy service instance or null
|
|
99
|
+
*/
|
|
100
|
+
getService(name: string): ServiceInstance | null;
|
|
101
|
+
/**
|
|
102
|
+
* Get all instances of a service
|
|
103
|
+
* @param name - Service name
|
|
104
|
+
* @param healthyOnly - Only return healthy instances (default: true)
|
|
105
|
+
*/
|
|
106
|
+
getServiceInstances(name: string, healthyOnly?: boolean): Array<ServiceInstance>;
|
|
107
|
+
/**
|
|
108
|
+
* Get all registered services
|
|
109
|
+
*/
|
|
110
|
+
getAllServices(): Map<string, Array<ServiceInstance>>;
|
|
111
|
+
/**
|
|
112
|
+
* List all registered service names
|
|
113
|
+
*/
|
|
114
|
+
listServices(): Array<string>;
|
|
115
|
+
/**
|
|
116
|
+
* Update health status of a service instance
|
|
117
|
+
* @param serviceName - Service name
|
|
118
|
+
* @param instanceId - Instance ID
|
|
119
|
+
* @param health - New health status
|
|
120
|
+
*/
|
|
121
|
+
updateHealth(serviceName: string, instanceId: string, health: "healthy" | "unhealthy"): boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Get service statistics
|
|
124
|
+
*/
|
|
125
|
+
getStats(): Record<string, {
|
|
126
|
+
total: number;
|
|
127
|
+
healthy: number;
|
|
128
|
+
unhealthy: number;
|
|
129
|
+
}>;
|
|
130
|
+
/**
|
|
131
|
+
* Stop the service discovery
|
|
132
|
+
*/
|
|
133
|
+
stop(): void;
|
|
134
|
+
/**
|
|
135
|
+
* Refresh service list from discovery backend
|
|
136
|
+
*/
|
|
137
|
+
private refresh;
|
|
138
|
+
/**
|
|
139
|
+
* Refresh from Consul
|
|
140
|
+
*/
|
|
141
|
+
private refreshFromConsul;
|
|
142
|
+
/**
|
|
143
|
+
* Get instances from Consul for a specific service
|
|
144
|
+
*/
|
|
145
|
+
private getConsulInstances;
|
|
146
|
+
/**
|
|
147
|
+
* Refresh from etcd
|
|
148
|
+
*/
|
|
149
|
+
private refreshFromEtcd;
|
|
150
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file request-logging.middleware.ts
|
|
3
|
+
* @description HTTP request/response logging middleware with context enrichment
|
|
4
|
+
* @module @expressots/adapter-express
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - Request ID generation/extraction
|
|
8
|
+
* - Request/response timing
|
|
9
|
+
* - Slow request detection
|
|
10
|
+
* - Configurable verbosity levels
|
|
11
|
+
* - Body logging with redaction support
|
|
12
|
+
*/
|
|
13
|
+
import { Request, Response, NextFunction } from "express";
|
|
14
|
+
import { Logger } from "@expressots/core";
|
|
15
|
+
/**
|
|
16
|
+
* Verbosity levels for request logging.
|
|
17
|
+
* @public API
|
|
18
|
+
*/
|
|
19
|
+
export type RequestLogVerbosity = "minimal" | "normal" | "detailed" | "debug";
|
|
20
|
+
/**
|
|
21
|
+
* Configuration for request logging middleware.
|
|
22
|
+
* @public API
|
|
23
|
+
*/
|
|
24
|
+
export interface RequestLoggingConfig {
|
|
25
|
+
/** Verbosity level for request logs */
|
|
26
|
+
verbosity: RequestLogVerbosity;
|
|
27
|
+
/** Log request body (with redaction) */
|
|
28
|
+
logBody: boolean;
|
|
29
|
+
/** Log request headers */
|
|
30
|
+
logHeaders: boolean;
|
|
31
|
+
/** Log response body */
|
|
32
|
+
logResponseBody: boolean;
|
|
33
|
+
/** Threshold for slow request warning (ms) */
|
|
34
|
+
slowRequestThreshold: number;
|
|
35
|
+
/** Patterns to skip logging (e.g., health checks) */
|
|
36
|
+
skipPatterns: Array<RegExp>;
|
|
37
|
+
/** Custom header name for request ID */
|
|
38
|
+
requestIdHeader: string;
|
|
39
|
+
/** Custom header name for correlation ID (for distributed tracing) */
|
|
40
|
+
correlationIdHeader: string;
|
|
41
|
+
/** Include user agent in logs */
|
|
42
|
+
logUserAgent: boolean;
|
|
43
|
+
/** Include IP address in logs */
|
|
44
|
+
logIp: boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Default request logging configuration.
|
|
48
|
+
*/
|
|
49
|
+
export declare function getDefaultRequestLoggingConfig(): RequestLoggingConfig;
|
|
50
|
+
/**
|
|
51
|
+
* Create request logging middleware.
|
|
52
|
+
* @param logger - Logger instance to use
|
|
53
|
+
* @param config - Optional configuration
|
|
54
|
+
* @returns Express middleware function
|
|
55
|
+
* @public API
|
|
56
|
+
*/
|
|
57
|
+
export declare function createRequestLoggingMiddleware(logger: Logger, config?: Partial<RequestLoggingConfig>): (req: Request, res: Response, next: NextFunction) => void;
|
|
58
|
+
/**
|
|
59
|
+
* Express middleware that assigns a request ID to each request.
|
|
60
|
+
* Simpler alternative to full request logging.
|
|
61
|
+
* @param headerName - Header name for request ID (default: x-request-id)
|
|
62
|
+
* @returns Express middleware
|
|
63
|
+
* @public API
|
|
64
|
+
*/
|
|
65
|
+
export declare function requestIdMiddleware(headerName?: string): (req: Request, res: Response, next: NextFunction) => void;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { RenderEngine } from "@expressots/shared";
|
|
2
|
+
/**
|
|
3
|
+
* Ejs defaults
|
|
4
|
+
* @type {EjsOptions}
|
|
5
|
+
* @constant
|
|
6
|
+
* @default
|
|
7
|
+
*/
|
|
8
|
+
export declare const EJS_DEFAULTS: RenderEngine.EjsOptions;
|
|
9
|
+
/**
|
|
10
|
+
* Handlebars defaults
|
|
11
|
+
* @type {HandlebarsOptions}
|
|
12
|
+
* @constant
|
|
13
|
+
* @default
|
|
14
|
+
*/
|
|
15
|
+
export declare const HANDLEBARS_DEFAULTS: RenderEngine.HandlebarsOptions;
|
|
16
|
+
/**
|
|
17
|
+
* Default partials directory
|
|
18
|
+
*/
|
|
19
|
+
export declare const DEFAULT_PARTIALS_DIR: string;
|
|
20
|
+
/**
|
|
21
|
+
* Pug defaults
|
|
22
|
+
* @type {PugOptions}
|
|
23
|
+
* @constant
|
|
24
|
+
* @default
|
|
25
|
+
*/
|
|
26
|
+
export declare const PUG_DEFAULTS: RenderEngine.PugOptions;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Application } from "express";
|
|
2
|
+
import { RenderEngine } from "@expressots/shared";
|
|
3
|
+
/**
|
|
4
|
+
* Set Ejs as the view engine
|
|
5
|
+
* @param {Application} app - The express application
|
|
6
|
+
* @param {EjsOptions} [options=EJS_DEFAULTS] - The ejs options
|
|
7
|
+
*/
|
|
8
|
+
export declare function setEngineEjs(app: Application, options?: RenderEngine.EjsOptions): Promise<void>;
|
|
9
|
+
/**
|
|
10
|
+
* Set Handlebars as the view engine
|
|
11
|
+
* @param {express.Application} app - The express application
|
|
12
|
+
* @param {HandlebarsOptions} [options=HANDLEBARS_DEFAULTS] - The handlebars options
|
|
13
|
+
*/
|
|
14
|
+
export declare function setEngineHandlebars(app: Application, options?: RenderEngine.HandlebarsOptions): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Set Pug as the view engine
|
|
17
|
+
* @param {express.Application} app - The express application
|
|
18
|
+
* @param {PugOptions} [options=PUG_DEFAULTS] - The pug options
|
|
19
|
+
*/
|
|
20
|
+
export declare function setEnginePug(app: Application, options?: RenderEngine.PugOptions): Promise<void>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { RenderEngine } from "@expressots/shared";
|
|
2
|
+
export type EJS = RenderEngine.EjsOptions;
|
|
3
|
+
export type HBS = RenderEngine.HandlebarsOptions;
|
|
4
|
+
export type PUG = RenderEngine.PugOptions;
|
|
5
|
+
export { setEngineEjs, setEngineHandlebars, setEnginePug } from "./engine.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { initializeStudio, stopStudio, isStudioEnabled, getStudioAgent, reportStudioRuntimeInfo, rescanStudioRoutes, } from "./studio-integration.js";
|