@h4ad/serverless-adapter 2.3.2 → 2.5.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 (32) hide show
  1. package/README.md +37 -2
  2. package/lib/adapters/azure/http-trigger-v4.adapter.d.ts +81 -0
  3. package/lib/adapters/azure/http-trigger-v4.adapter.d.ts.map +1 -0
  4. package/lib/adapters/azure/http-trigger-v4.adapter.js +191 -0
  5. package/lib/adapters/azure/http-trigger-v4.adapter.js.map +1 -0
  6. package/lib/adapters/azure/index.d.ts +2 -0
  7. package/lib/adapters/azure/index.d.ts.map +1 -0
  8. package/lib/adapters/azure/index.js +18 -0
  9. package/lib/adapters/azure/index.js.map +1 -0
  10. package/lib/core/logger.d.ts +9 -0
  11. package/lib/core/logger.d.ts.map +1 -1
  12. package/lib/core/logger.js +21 -1
  13. package/lib/core/logger.js.map +1 -1
  14. package/lib/frameworks/trpc/index.d.ts +2 -0
  15. package/lib/frameworks/trpc/index.d.ts.map +1 -0
  16. package/lib/frameworks/trpc/index.js +18 -0
  17. package/lib/frameworks/trpc/index.js.map +1 -0
  18. package/lib/frameworks/trpc/trpc.framework.d.ts +152 -0
  19. package/lib/frameworks/trpc/trpc.framework.d.ts.map +1 -0
  20. package/lib/frameworks/trpc/trpc.framework.js +137 -0
  21. package/lib/frameworks/trpc/trpc.framework.js.map +1 -0
  22. package/lib/handlers/azure/azure.handler.d.ts +45 -0
  23. package/lib/handlers/azure/azure.handler.d.ts.map +1 -0
  24. package/lib/handlers/azure/azure.handler.js +63 -0
  25. package/lib/handlers/azure/azure.handler.js.map +1 -0
  26. package/lib/handlers/azure/index.d.ts +2 -0
  27. package/lib/handlers/azure/index.d.ts.map +1 -0
  28. package/lib/handlers/azure/index.js +18 -0
  29. package/lib/handlers/azure/index.js.map +1 -0
  30. package/lib/handlers/default/default.handler.js +12 -20
  31. package/lib/handlers/default/default.handler.js.map +1 -1
  32. package/package.json +18 -6
package/README.md CHANGED
@@ -19,8 +19,8 @@
19
19
  [![Commitizen Friendly][commitizen-img]][commitizen-url]
20
20
  [![Semantic Release][semantic-release-img]][semantic-release-url]
21
21
 
22
- Run REST APIs and other web applications using your existing Node.js application framework (Express, Koa, Hapi and
23
- Fastify), on top of AWS Lambda, Huawei and many other clouds.
22
+ Run REST APIs and other web applications using your existing Node.js application framework (Express, Koa, Hapi,
23
+ Fastify and tRPC), on top of AWS Lambda, Azure, Huawei and many other clouds.
24
24
 
25
25
  This library was a refactored version of [@vendia/serverless-express](https://github.com/vendia/serverless-express), I
26
26
  create a new way to interact and extend event sources by creating contracts to abstract the integrations between each
@@ -38,6 +38,41 @@ Why you would use this libray instead of [@vendia/serverless-express](https://gi
38
38
  - Well documented, any method, class, or interface has comments to explain the behavior.
39
39
  - We have >99% coverage.
40
40
 
41
+ # Usage
42
+
43
+ To start to use, first you need to know what you need to import, let's start showing the [ServerlessAdapter](/docs/api/ServerlessAdapter).
44
+
45
+ ```tsx
46
+ import { ServerlessAdapter } from '@h4ad/serverless-adapter';
47
+ ```
48
+
49
+ We need to pass to [Serverless Adapter](/docs/api/ServerlessAdapter) the instance of your api, let's look an example with:
50
+
51
+ - Framework: [Express](../frameworks/express).
52
+ - Adapters: [AWS Api Gateway V2 Adapter](../adapters/aws/api-gateway-v2).
53
+ - Handler: [Default Handler](../handlers/default).
54
+ - Resolver: [Promise Resolver](../resolvers/promise).
55
+
56
+ ```ts
57
+ import { ServerlessAdapter } from '@h4ad/serverless-adapter';
58
+ import { ExpressFramework } from '@h4ad/serverless-adapter/lib/frameworks/express';
59
+ import { DefaultHandler } from '@h4ad/serverless-adapter/lib/handlers/default';
60
+ import { PromiseResolver } from '@h4ad/serverless-adapter/lib/resolvers/promise';
61
+ import { ApiGatewayV2Adapter } from '@h4ad/serverless-adapter/lib/adapters/aws';
62
+
63
+ const express = require('express');
64
+
65
+ const app = express();
66
+ export const handler = ServerlessAdapter.new(app)
67
+ .setFramework(new ExpressFramework())
68
+ .setHandler(new DefaultHandler())
69
+ .setResolver(new PromiseResolver())
70
+ .addAdapter(new ApiGatewayV2Adapter())
71
+ // if you need more adapters
72
+ // just append more `addAdapter` calls
73
+ .build();
74
+ ```
75
+
41
76
  # Documentation
42
77
 
43
78
  See how to use this library [here](https://viniciusl.com.br/serverless-adapter/docs/category/getting-started).
@@ -0,0 +1,81 @@
1
+ import type { Context, Cookie, HttpRequest, HttpResponseSimple } from '@azure/functions';
2
+ import { BothValueHeaders } from '../../@types';
3
+ import { AdapterContract, AdapterRequest, GetResponseAdapterProps, OnErrorProps } from '../../contracts';
4
+ /**
5
+ * The options to customize the {@link HttpTriggerV4Adapter}
6
+ *
7
+ * @breadcrumb Adapters / Azure / HttpTriggerV4Adapter
8
+ * @public
9
+ */
10
+ export interface HttpTriggerV4AdapterOptions {
11
+ /**
12
+ * Strip base path for custom domains
13
+ *
14
+ * @defaultValue ''
15
+ */
16
+ stripBasePath?: string;
17
+ }
18
+ /**
19
+ * The adapter to handle requests from Http Trigger on Azure Function V4.
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const stripBasePath = '/any/custom/base/path'; // default ''
24
+ * const adapter = new HttpTriggerV4Adapter({ stripBasePath });
25
+ * ```
26
+ *
27
+ * @see {@link https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-node | Reference}
28
+ *
29
+ * @breadcrumb Adapters / Azure / HttpTriggerV4Adapter
30
+ * @public
31
+ */
32
+ export declare class HttpTriggerV4Adapter implements AdapterContract<HttpRequest, Context, HttpResponseSimple> {
33
+ protected readonly options?: HttpTriggerV4AdapterOptions | undefined;
34
+ /**
35
+ * Default constructor
36
+ *
37
+ * @param options - The options to customize the {@link HttpTriggerV4Adapter}
38
+ */
39
+ constructor(options?: HttpTriggerV4AdapterOptions | undefined);
40
+ /**
41
+ * {@inheritDoc}
42
+ */
43
+ getAdapterName(): string;
44
+ /**
45
+ * {@inheritDoc}
46
+ */
47
+ canHandle(event: unknown, context: unknown): boolean;
48
+ /**
49
+ * {@inheritDoc}
50
+ */
51
+ getRequest(event: HttpRequest): AdapterRequest;
52
+ /**
53
+ * {@inheritDoc}
54
+ */
55
+ getResponse({ body, isBase64Encoded, statusCode, headers: originalHeaders, }: GetResponseAdapterProps<HttpRequest>): HttpResponseSimple;
56
+ /**
57
+ * {@inheritDoc}
58
+ */
59
+ onErrorWhileForwarding({ error, respondWithErrors, event, delegatedResolver, log, }: OnErrorProps<HttpRequest, HttpResponseSimple>): void;
60
+ /**
61
+ * Get path from event with query strings
62
+ *
63
+ * @param event - The event sent by serverless
64
+ */
65
+ protected getPathFromEvent(event: HttpRequest): string;
66
+ /**
67
+ * Get the Azure Cookie list parsed from set-cookie header.
68
+ *
69
+ * @param headers - The headers object
70
+ */
71
+ protected getAzureCookiesFromHeaders(headers: BothValueHeaders): Cookie[];
72
+ /**
73
+ * Parse the string cookie to the Azure Cookie Object.
74
+ * This code was written by {@link https://github.com/zachabney | @zachabney}
75
+ * on {@link https://github.com/zachabney/azure-aws-serverless-express/blob/241d2d5c4d5906e4817662cad6426ec2cbbf9ca7/src/index.js#L4-L49 | this library}.
76
+ *
77
+ * @param cookie - The cookie
78
+ */
79
+ protected parseCookie(cookie: string): Cookie;
80
+ }
81
+ //# sourceMappingURL=http-trigger-v4.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-trigger-v4.adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/azure/http-trigger-v4.adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EACP,MAAM,EACN,WAAW,EACX,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EACL,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,YAAY,EACb,MAAM,iBAAiB,CAAC;AAUzB;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,oBACX,YAAW,eAAe,CAAC,WAAW,EAAE,OAAO,EAAE,kBAAkB,CAAC;IASxD,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;IALvC;;;;OAIG;gBAC4B,OAAO,CAAC,yCAA6B;IAMpE;;OAEG;IACI,cAAc,IAAI,MAAM;IAI/B;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO;IAmB3D;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,cAAc;IA6BrD;;OAEG;IACI,WAAW,CAAC,EACjB,IAAI,EACJ,eAAe,EACf,UAAU,EACV,OAAO,EAAE,eAAe,GACzB,EAAE,uBAAuB,CAAC,WAAW,CAAC,GAAG,kBAAkB;IAoB5D;;OAEG;IACI,sBAAsB,CAAC,EAC5B,KAAK,EACL,iBAAiB,EACjB,KAAK,EACL,iBAAiB,EACjB,GAAG,GACJ,EAAE,YAAY,CAAC,WAAW,EAAE,kBAAkB,CAAC,GAAG,IAAI;IAkBvD;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IAiBtD;;;;OAIG;IACH,SAAS,CAAC,0BAA0B,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,EAAE;IAYzE;;;;;;OAMG;IACH,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CA8C9C"}
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ //#region Imports
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.HttpTriggerV4Adapter = void 0;
5
+ const url_1 = require("url");
6
+ const core_1 = require("../../core");
7
+ /**
8
+ * The adapter to handle requests from Http Trigger on Azure Function V4.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const stripBasePath = '/any/custom/base/path'; // default ''
13
+ * const adapter = new HttpTriggerV4Adapter({ stripBasePath });
14
+ * ```
15
+ *
16
+ * @see {@link https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-node | Reference}
17
+ *
18
+ * @breadcrumb Adapters / Azure / HttpTriggerV4Adapter
19
+ * @public
20
+ */
21
+ class HttpTriggerV4Adapter {
22
+ //#region Constructor
23
+ /**
24
+ * Default constructor
25
+ *
26
+ * @param options - The options to customize the {@link HttpTriggerV4Adapter}
27
+ */
28
+ constructor(options) {
29
+ this.options = options;
30
+ }
31
+ //#endregion
32
+ //#region Public Methods
33
+ /**
34
+ * {@inheritDoc}
35
+ */
36
+ getAdapterName() {
37
+ return HttpTriggerV4Adapter.name;
38
+ }
39
+ /**
40
+ * {@inheritDoc}
41
+ */
42
+ canHandle(event, context) {
43
+ const maybeEvent = event;
44
+ const maybeContext = context;
45
+ return !!(maybeEvent &&
46
+ maybeEvent.method &&
47
+ maybeEvent.headers &&
48
+ maybeEvent.url &&
49
+ maybeEvent.query &&
50
+ maybeContext &&
51
+ maybeContext.traceContext &&
52
+ maybeContext.bindingDefinitions &&
53
+ maybeContext.log &&
54
+ maybeContext.log.info &&
55
+ maybeContext.bindingData);
56
+ }
57
+ /**
58
+ * {@inheritDoc}
59
+ */
60
+ getRequest(event) {
61
+ const path = this.getPathFromEvent(event);
62
+ const method = event.method;
63
+ const headers = (0, core_1.getFlattenedHeadersMap)(event.headers, ',', true);
64
+ let body;
65
+ if (event.body) {
66
+ const [bufferBody, contentLength] = (0, core_1.getEventBodyAsBuffer)(event.rawBody, false);
67
+ body = bufferBody;
68
+ headers['content-length'] = String(contentLength);
69
+ }
70
+ const remoteAddress = headers['x-forwarded-for'];
71
+ return {
72
+ method: method,
73
+ path,
74
+ headers,
75
+ remoteAddress,
76
+ body,
77
+ };
78
+ }
79
+ /**
80
+ * {@inheritDoc}
81
+ */
82
+ getResponse({ body, isBase64Encoded, statusCode, headers: originalHeaders, }) {
83
+ const headers = (0, core_1.getFlattenedHeadersMap)(originalHeaders, ',', true);
84
+ const cookies = this.getAzureCookiesFromHeaders(originalHeaders);
85
+ if (headers['set-cookie'])
86
+ delete headers['set-cookie'];
87
+ return {
88
+ body,
89
+ statusCode,
90
+ headers,
91
+ // I tried to understand this property with
92
+ // https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/content-negotiation
93
+ // but I don't know if it's worth implementing this guy as an option
94
+ // I found out when this guy is set to true and the framework sets content-type, azure returns 500
95
+ // So I'll leave it as is and hope no one has any problems.
96
+ enableContentNegotiation: false,
97
+ cookies,
98
+ };
99
+ }
100
+ /**
101
+ * {@inheritDoc}
102
+ */
103
+ onErrorWhileForwarding({ error, respondWithErrors, event, delegatedResolver, log, }) {
104
+ const body = respondWithErrors ? error.stack : '';
105
+ const errorResponse = this.getResponse({
106
+ event,
107
+ statusCode: 500,
108
+ body: body || '',
109
+ headers: {},
110
+ isBase64Encoded: false,
111
+ log,
112
+ });
113
+ delegatedResolver.succeed(errorResponse);
114
+ }
115
+ //#endregion
116
+ //#region Protected Methods
117
+ /**
118
+ * Get path from event with query strings
119
+ *
120
+ * @param event - The event sent by serverless
121
+ */
122
+ getPathFromEvent(event) {
123
+ var _a;
124
+ const stripBasePath = (0, core_1.getDefaultIfUndefined)((_a = this.options) === null || _a === void 0 ? void 0 : _a.stripBasePath, '');
125
+ const url = new url_1.URL(event.url);
126
+ const originalPath = url.pathname;
127
+ const replaceRegex = new RegExp(`^${stripBasePath}`);
128
+ const path = originalPath.replace(replaceRegex, '');
129
+ const queryParams = event.query;
130
+ return (0, core_1.getPathWithQueryStringParams)(path, queryParams);
131
+ }
132
+ /**
133
+ * Get the Azure Cookie list parsed from set-cookie header.
134
+ *
135
+ * @param headers - The headers object
136
+ */
137
+ getAzureCookiesFromHeaders(headers) {
138
+ const setCookie = headers['set-cookie'];
139
+ const headerCookies = Array.isArray(setCookie)
140
+ ? setCookie
141
+ : setCookie
142
+ ? [setCookie]
143
+ : [];
144
+ return headerCookies.map(cookie => this.parseCookie(cookie));
145
+ }
146
+ /**
147
+ * Parse the string cookie to the Azure Cookie Object.
148
+ * This code was written by {@link https://github.com/zachabney | @zachabney}
149
+ * on {@link https://github.com/zachabney/azure-aws-serverless-express/blob/241d2d5c4d5906e4817662cad6426ec2cbbf9ca7/src/index.js#L4-L49 | this library}.
150
+ *
151
+ * @param cookie - The cookie
152
+ */
153
+ parseCookie(cookie) {
154
+ return cookie.split(';').reduce((azureCookieObject, cookieProperty, index) => {
155
+ const [key, value] = cookieProperty.split('=');
156
+ const sanitizedKey = key.toLowerCase().trim();
157
+ const sanitizedValue = value && value.trim();
158
+ if (index === 0) {
159
+ azureCookieObject.name = key;
160
+ azureCookieObject.value = sanitizedValue;
161
+ return azureCookieObject;
162
+ }
163
+ switch (sanitizedKey) {
164
+ case 'domain':
165
+ azureCookieObject.domain = sanitizedValue;
166
+ break;
167
+ case 'path':
168
+ azureCookieObject.path = sanitizedValue;
169
+ break;
170
+ case 'expires':
171
+ azureCookieObject.expires = new Date(sanitizedValue);
172
+ break;
173
+ case 'secure':
174
+ azureCookieObject.secure = true;
175
+ break;
176
+ case 'httponly':
177
+ azureCookieObject.httpOnly = true;
178
+ break;
179
+ case 'samesite':
180
+ azureCookieObject.sameSite = sanitizedValue;
181
+ break;
182
+ case 'max-age':
183
+ azureCookieObject.maxAge = Number(sanitizedValue);
184
+ break;
185
+ }
186
+ return azureCookieObject;
187
+ }, { name: '', value: '' });
188
+ }
189
+ }
190
+ exports.HttpTriggerV4Adapter = HttpTriggerV4Adapter;
191
+ //# sourceMappingURL=http-trigger-v4.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-trigger-v4.adapter.js","sourceRoot":"","sources":["../../../src/adapters/azure/http-trigger-v4.adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './http-trigger-v4.adapter';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/azure/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./http-trigger-v4.adapter"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/azure/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C"}
@@ -52,4 +52,13 @@ export declare type ILogger = Record<Exclude<LogLevels, 'none'>, LoggerFN>;
52
52
  * @public
53
53
  */
54
54
  export declare function createDefaultLogger({ level }?: LoggerOptions): ILogger;
55
+ /**
56
+ * The method used to chck if logger was created by this library, or it was defined by the user.
57
+ *
58
+ * @param logger - The instance of the logger to check
59
+ *
60
+ * @breadcrumb Core / Logger
61
+ * @public
62
+ */
63
+ export declare function isInternalLogger(logger: ILogger): boolean;
55
64
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oBAAY,SAAS,GACjB,OAAO,GACP,SAAS,GACT,MAAM,GACN,MAAM,GACN,OAAO,GACP,MAAM,CAAC;AAEX;;;;;GAKG;AACH,oBAAY,aAAa,GAAG;IAC1B;;;;OAIG;IACH,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF;;;;;GAKG;AACH,oBAAY,QAAQ,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAEpE;;;;;GAKG;AACH,oBAAY,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;AAEnE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,KAAK,EAAE,GAAE,aAAkC,GAC5C,OAAO,CAiCT"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oBAAY,SAAS,GACjB,OAAO,GACP,SAAS,GACT,MAAM,GACN,MAAM,GACN,OAAO,GACP,MAAM,CAAC;AAEX;;;;;GAKG;AACH,oBAAY,aAAa,GAAG;IAC1B;;;;OAIG;IACH,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF;;;;;GAKG;AACH,oBAAY,QAAQ,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAEpE;;;;;GAKG;AACH,oBAAY,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;AAUnE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,KAAK,EAAE,GAAE,aAAkC,GAC5C,OAAO,CAkCT;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAEzD"}
@@ -1,6 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createDefaultLogger = void 0;
3
+ exports.isInternalLogger = exports.createDefaultLogger = void 0;
4
+ /**
5
+ * The symbol used to check against an ILogger instace to verify if that ILogger was created by this library
6
+ *
7
+ * @breadcrumb Core / Logger
8
+ * @public
9
+ */
10
+ const InternalLoggerSymbol = Symbol('InternalLogger');
4
11
  /**
5
12
  * The method used to create a simple logger instance to use in this library.
6
13
  *
@@ -25,6 +32,7 @@ function createDefaultLogger({ level } = { level: 'error' }) {
25
32
  const infoLogLevel = ['debug', 'verbose', 'info'];
26
33
  const verboseLogLevel = ['debug', 'verbose'];
27
34
  return {
35
+ [InternalLoggerSymbol]: true,
28
36
  error: (message, ...additional) => {
29
37
  if (!errorLogLevel.includes(level))
30
38
  return;
@@ -53,4 +61,16 @@ function createDefaultLogger({ level } = { level: 'error' }) {
53
61
  };
54
62
  }
55
63
  exports.createDefaultLogger = createDefaultLogger;
64
+ /**
65
+ * The method used to chck if logger was created by this library, or it was defined by the user.
66
+ *
67
+ * @param logger - The instance of the logger to check
68
+ *
69
+ * @breadcrumb Core / Logger
70
+ * @public
71
+ */
72
+ function isInternalLogger(logger) {
73
+ return !!logger[InternalLoggerSymbol];
74
+ }
75
+ exports.isInternalLogger = isInternalLogger;
56
76
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":";;;AA6CA;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,mBAAmB,CACjC,EAAE,KAAK,KAAoB,EAAE,KAAK,EAAE,OAAO,EAAE;IAE7C,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAE7C,OAAO;QACL,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,UAAU,EAAE,EAAE;YAChC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO;YAE3C,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,UAAU,EAAE,EAAE;YAC/B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO;YAE1C,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,UAAU,EAAE,EAAE;YAC/B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO;YAE1C,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,UAAU,EAAE,EAAE;YAClC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO;YAE7C,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;QACxC,CAAC;QACD,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,UAAU,EAAE,EAAE;YAChC,IAAI,KAAK,KAAK,OAAO;gBAAE,OAAO;YAE9B,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;QACxC,CAAC;KACF,CAAC;AACJ,CAAC;AAnCD,kDAmCC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":";;;AA6CA;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAEtD;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,mBAAmB,CACjC,EAAE,KAAK,KAAoB,EAAE,KAAK,EAAE,OAAO,EAAE;IAE7C,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAE7C,OAAO;QACL,CAAC,oBAAoB,CAAC,EAAE,IAAI;QAC5B,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,UAAU,EAAE,EAAE;YAChC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO;YAE3C,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,UAAU,EAAE,EAAE;YAC/B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO;YAE1C,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,UAAU,EAAE,EAAE;YAC/B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO;YAE1C,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,UAAU,EAAE,EAAE;YAClC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO;YAE7C,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;QACxC,CAAC;QACD,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,UAAU,EAAE,EAAE;YAChC,IAAI,KAAK,KAAK,OAAO;gBAAE,OAAO;YAE9B,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;QACxC,CAAC;KACS,CAAC;AACf,CAAC;AApCD,kDAoCC;AAED;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAAC,MAAe;IAC9C,OAAO,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACxC,CAAC;AAFD,4CAEC"}
@@ -0,0 +1,2 @@
1
+ export * from './trpc.framework';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/frameworks/trpc/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./trpc.framework"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/frameworks/trpc/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC"}
@@ -0,0 +1,152 @@
1
+ /// <reference types="node" />
2
+ import { IncomingMessage, ServerResponse } from 'http';
3
+ import type { AnyRouter, DataTransformer } from '@trpc/server';
4
+ import { NodeHTTPCreateContextFnOptions, NodeHTTPHandlerOptions } from '@trpc/server/adapters/node-http';
5
+ import { SingleValueHeaders } from '../../@types';
6
+ import { FrameworkContract } from '../../contracts';
7
+ /**
8
+ * The transformer that is responsible to transform buffer's input to javascript objects
9
+ *
10
+ * @breadcrumb Frameworks / TrpcFramework
11
+ * @public
12
+ */
13
+ export declare class BufferToJSObjectTransformer implements DataTransformer {
14
+ /**
15
+ * Deserialize unknown values to javascript objects
16
+ *
17
+ * @param value - The value to be deserialized
18
+ */
19
+ deserialize(value?: unknown): any;
20
+ /**
21
+ * The value to be serialized, do nothing because tRPC can handle.
22
+ *
23
+ * @param value - The value to be serialized
24
+ */
25
+ serialize(value: any): any;
26
+ }
27
+ /**
28
+ * The context created by this library that allows getting some information from the request and setting the status and header of the response.
29
+ *
30
+ * @breadcrumb Frameworks / TrpcFramework
31
+ * @public
32
+ */
33
+ export interface TrpcAdapterBaseContext {
34
+ /**
35
+ * The request object that will be forward to your app
36
+ */
37
+ request: IncomingMessage;
38
+ /**
39
+ * The response object that will be forward to your app to output the response
40
+ */
41
+ response: ServerResponse;
42
+ /**
43
+ * The method to set response status.
44
+ *
45
+ * @param statusCode - The response status that you want
46
+ */
47
+ setStatus(statusCode: number): void;
48
+ /**
49
+ * The method to set some header in the response
50
+ *
51
+ * @param name - The name of the header
52
+ * @param value - The value to be set in the header
53
+ */
54
+ setHeader(name: string, value: number | string): void;
55
+ /**
56
+ * The method to remove some header from the response
57
+ *
58
+ * @param name - The name of the header
59
+ */
60
+ removeHeader(name: string): void;
61
+ /**
62
+ * The method to return the value of some header from the request
63
+ *
64
+ * @param name - The name of the header
65
+ */
66
+ getHeader(name: string): string | undefined;
67
+ /**
68
+ * The method to return the request headers
69
+ */
70
+ getHeaders(): SingleValueHeaders;
71
+ /**
72
+ * The method to return user's address
73
+ */
74
+ getIp(): string | undefined;
75
+ /**
76
+ * The method to return the URL called
77
+ */
78
+ getUrl(): string | undefined;
79
+ /**
80
+ * The method to return the HTTP Method in the request
81
+ */
82
+ getMethod(): string | undefined;
83
+ }
84
+ /**
85
+ * This is the context merged between {@link TrpcAdapterBaseContext} and the {@link TContext} that you provided.
86
+ *
87
+ * This context will be merged with the context you created with `createContext` inside {@link TrpcFrameworkOptions}.
88
+ * So to make the type work, just send the properties you've added inside {@link TContext}.
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * type MyCustomContext = { user: { name: string } };
93
+ * type TrpcContext = TrpcAdapterContext<MyCustomContext>; // your final context type to put inside trpc.router
94
+ * ```
95
+ *
96
+ * @breadcrumb Frameworks / TrpcFramework
97
+ * @public
98
+ */
99
+ export declare type TrpcAdapterContext<TContext> = TContext & TrpcAdapterBaseContext;
100
+ /**
101
+ * The options to customize the {@link TrpcFramework}
102
+ *
103
+ * @breadcrumb Frameworks / TrpcFramework
104
+ * @public
105
+ */
106
+ export declare type TrpcFrameworkOptions<TContext> = Omit<NodeHTTPHandlerOptions<AnyRouter<TContext>, IncomingMessage, ServerResponse>, 'router' | 'createContext'> & {
107
+ createContext?: (opts: NodeHTTPCreateContextFnOptions<IncomingMessage, ServerResponse>) => Omit<TContext, keyof TrpcAdapterBaseContext> | Promise<Omit<TContext, keyof TrpcAdapterBaseContext>>;
108
+ };
109
+ /**
110
+ * The framework that forwards requests to TRPC handler
111
+ *
112
+ * @breadcrumb Frameworks / TrpcFramework
113
+ * @public
114
+ */
115
+ export declare class TrpcFramework<TContext extends TrpcAdapterBaseContext> implements FrameworkContract<AnyRouter<TContext>> {
116
+ protected readonly options?: TrpcFrameworkOptions<TContext> | undefined;
117
+ /**
118
+ * Default constructor
119
+ */
120
+ constructor(options?: TrpcFrameworkOptions<TContext> | undefined);
121
+ /**
122
+ * {@inheritDoc}
123
+ */
124
+ sendRequest(app: AnyRouter<TContext>, request: IncomingMessage, response: ServerResponse): void;
125
+ /**
126
+ * Get safe url that can be used inside Trpc.
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * const url = getSafeUrlForTrpc('/users?input=hello');
131
+ * console.log(url); // users
132
+ * ```
133
+ *
134
+ * @param request - The request object that will be forward to your app
135
+ */
136
+ protected getSafeUrlForTrpc(request: IncomingMessage): string;
137
+ /**
138
+ * Merge the default context ({@link TrpcAdapterContext}) with the context created by the user.
139
+ *
140
+ * @param createContextOptions - The options sent by trpc to create the context
141
+ */
142
+ protected mergeDefaultContextWithOptionsContext(createContextOptions: NodeHTTPCreateContextFnOptions<IncomingMessage, ServerResponse>): TContext | Promise<TContext>;
143
+ /**
144
+ * Wraps the resolved context from the {@link TrpcFrameworkOptions} created with `createContext` and merge
145
+ * with the {@link TrpcAdapterContext} generated by the library.
146
+ *
147
+ * @param resolvedContext - The context created with `createContext` inside {@link TrpcFrameworkOptions}
148
+ * @param createContextOptions - The options sent by trpc to create the context
149
+ */
150
+ protected wrapResolvedContextWithDefaultContext(resolvedContext: TContext, createContextOptions: NodeHTTPCreateContextFnOptions<IncomingMessage, ServerResponse>): TContext;
151
+ }
152
+ //# sourceMappingURL=trpc.framework.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trpc.framework.d.ts","sourceRoot":"","sources":["../../../src/frameworks/trpc/trpc.framework.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ //#region
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.TrpcFramework = exports.BufferToJSObjectTransformer = void 0;
5
+ const node_http_1 = require("@trpc/server/adapters/node-http");
6
+ const core_1 = require("../../core");
7
+ //#endregion
8
+ /**
9
+ * The transformer that is responsible to transform buffer's input to javascript objects
10
+ *
11
+ * @breadcrumb Frameworks / TrpcFramework
12
+ * @public
13
+ */
14
+ class BufferToJSObjectTransformer {
15
+ /**
16
+ * Deserialize unknown values to javascript objects
17
+ *
18
+ * @param value - The value to be deserialized
19
+ */
20
+ deserialize(value) {
21
+ if (value instanceof Buffer)
22
+ return JSON.parse(value.toString('utf-8'));
23
+ return value;
24
+ }
25
+ /**
26
+ * The value to be serialized, do nothing because tRPC can handle.
27
+ *
28
+ * @param value - The value to be serialized
29
+ */
30
+ serialize(value) {
31
+ return value;
32
+ }
33
+ }
34
+ exports.BufferToJSObjectTransformer = BufferToJSObjectTransformer;
35
+ /**
36
+ * The framework that forwards requests to TRPC handler
37
+ *
38
+ * @breadcrumb Frameworks / TrpcFramework
39
+ * @public
40
+ */
41
+ class TrpcFramework {
42
+ //#region Constructor
43
+ /**
44
+ * Default constructor
45
+ */
46
+ constructor(options) {
47
+ this.options = options;
48
+ }
49
+ //#endregion
50
+ //#region Public Methods
51
+ /**
52
+ * {@inheritDoc}
53
+ */
54
+ sendRequest(app, request, response) {
55
+ const endpoint = this.getSafeUrlForTrpc(request);
56
+ (0, node_http_1.nodeHTTPRequestHandler)({
57
+ req: request,
58
+ res: response,
59
+ path: endpoint,
60
+ router: app,
61
+ ...this.options,
62
+ createContext: createContextOptions => this.mergeDefaultContextWithOptionsContext(createContextOptions),
63
+ });
64
+ }
65
+ //#endregion
66
+ //#region Protected Methods
67
+ /**
68
+ * Get safe url that can be used inside Trpc.
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * const url = getSafeUrlForTrpc('/users?input=hello');
73
+ * console.log(url); // users
74
+ * ```
75
+ *
76
+ * @param request - The request object that will be forward to your app
77
+ */
78
+ getSafeUrlForTrpc(request) {
79
+ let url = request.url;
80
+ if (url.startsWith('/'))
81
+ url = url.slice(1);
82
+ if (url.includes('?'))
83
+ url = url.split('?')[0];
84
+ return url;
85
+ }
86
+ /**
87
+ * Merge the default context ({@link TrpcAdapterContext}) with the context created by the user.
88
+ *
89
+ * @param createContextOptions - The options sent by trpc to create the context
90
+ */
91
+ mergeDefaultContextWithOptionsContext(createContextOptions) {
92
+ var _a;
93
+ const createContextFromOptions = (0, core_1.getDefaultIfUndefined)((_a = this.options) === null || _a === void 0 ? void 0 : _a.createContext, () => undefined);
94
+ const resolvedContext = createContextFromOptions(createContextOptions);
95
+ if (resolvedContext && resolvedContext.then) {
96
+ return resolvedContext.then(context => this.wrapResolvedContextWithDefaultContext(context, createContextOptions));
97
+ }
98
+ return this.wrapResolvedContextWithDefaultContext(resolvedContext, createContextOptions);
99
+ }
100
+ /**
101
+ * Wraps the resolved context from the {@link TrpcFrameworkOptions} created with `createContext` and merge
102
+ * with the {@link TrpcAdapterContext} generated by the library.
103
+ *
104
+ * @param resolvedContext - The context created with `createContext` inside {@link TrpcFrameworkOptions}
105
+ * @param createContextOptions - The options sent by trpc to create the context
106
+ */
107
+ wrapResolvedContextWithDefaultContext(resolvedContext, createContextOptions) {
108
+ const request = createContextOptions.req;
109
+ const response = createContextOptions.res;
110
+ return {
111
+ ...resolvedContext,
112
+ request,
113
+ response,
114
+ getUrl: () => request.url,
115
+ getMethod: () => request.method,
116
+ getHeaders: () => (0, core_1.getFlattenedHeadersMap)(request.headers, ',', true),
117
+ setHeader: (header, value) => {
118
+ response.setHeader(header, value);
119
+ },
120
+ removeHeader: header => {
121
+ response.removeHeader(header);
122
+ },
123
+ getHeader: (header) => {
124
+ return (0, core_1.getFlattenedHeadersMap)(request.headers, ',', true)[header.toLowerCase()];
125
+ },
126
+ setStatus: (statusCode) => {
127
+ response.statusCode = statusCode;
128
+ // force undefined to get default message for the status code
129
+ // ref: https://nodejs.org/dist/latest-v16.x/docs/api/http.html#responsestatusmessage
130
+ response.statusMessage = undefined;
131
+ },
132
+ getIp: () => request.connection.remoteAddress,
133
+ };
134
+ }
135
+ }
136
+ exports.TrpcFramework = TrpcFramework;
137
+ //# sourceMappingURL=trpc.framework.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trpc.framework.js","sourceRoot":"","sources":["../../../src/frameworks/trpc/trpc.framework.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type { Context } from '@azure/functions';
2
+ import { BinarySettings } from '../../@types';
3
+ import { AdapterContract, FrameworkContract, ResolverContract, ServerlessHandler } from '../../contracts';
4
+ import { ILogger } from '../../core';
5
+ import { DefaultHandler } from '../default';
6
+ /**
7
+ * The options to customize {@link AzureHandler}
8
+ *
9
+ * @breadcrumb Handlers / AzureHandler
10
+ * @public
11
+ */
12
+ export interface AzureHandlerOptions {
13
+ /**
14
+ * Indicates to use the context log instead console.log when logger is internal (created by the library)
15
+ *
16
+ * @defaultValue true
17
+ */
18
+ useContextLogWhenInternalLogger: boolean;
19
+ }
20
+ /**
21
+ * The class that implements a serverless handler for Azure Function.
22
+ *
23
+ * When you don't specify a custom logger, the {@link Context} logger is used instead.
24
+ *
25
+ * @breadcrumb Handlers / AzureHandler
26
+ * @public
27
+ */
28
+ export declare class AzureHandler<TApp, TEvent, TCallback, TResponse, TReturn> extends DefaultHandler<TApp, TEvent, Context, TCallback, TResponse, TReturn> {
29
+ protected readonly options?: AzureHandlerOptions | undefined;
30
+ /**
31
+ * Default Constructor
32
+ */
33
+ constructor(options?: AzureHandlerOptions | undefined);
34
+ /**
35
+ * {@inheritDoc}
36
+ */
37
+ getHandler(app: TApp, framework: FrameworkContract<TApp>, adapters: AdapterContract<TEvent, Context, TResponse>[], resolverFactory: ResolverContract<TEvent, Context, TCallback, TResponse, TReturn>, binarySettings: BinarySettings, respondWithErrors: boolean, log: ILogger): ServerlessHandler<TReturn>;
38
+ /**
39
+ * Get the {@link ILogger} instance from logger of the context
40
+ *
41
+ * @param context - The Azure Context
42
+ */
43
+ protected createLoggerFromContext(context: Context): ILogger;
44
+ }
45
+ //# sourceMappingURL=azure.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure.handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/azure/azure.handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAA2C,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5C;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,+BAA+B,EAAE,OAAO,CAAC;CAC1C;AAED;;;;;;;GAOG;AACH,qBAAa,YAAY,CACvB,IAAI,EACJ,MAAM,EACN,SAAS,EACT,SAAS,EACT,OAAO,CACP,SAAQ,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;IAMhE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;IAHvC;;OAEG;gBAC4B,OAAO,CAAC,iCAAqB;IAQ5D;;OAEG;IACI,UAAU,CACf,GAAG,EAAE,IAAI,EACT,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAClC,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EACvD,eAAe,EAAE,gBAAgB,CAC/B,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,EACT,OAAO,CACR,EACD,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,OAAO,EAC1B,GAAG,EAAE,OAAO,GACX,iBAAiB,CAAC,OAAO,CAAC;IAkC7B;;;;OAIG;IACH,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;CAW7D"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/unbound-method */
3
+ //#region Imports
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.AzureHandler = void 0;
6
+ const core_1 = require("../../core");
7
+ const default_1 = require("../default");
8
+ /**
9
+ * The class that implements a serverless handler for Azure Function.
10
+ *
11
+ * When you don't specify a custom logger, the {@link Context} logger is used instead.
12
+ *
13
+ * @breadcrumb Handlers / AzureHandler
14
+ * @public
15
+ */
16
+ class AzureHandler extends default_1.DefaultHandler {
17
+ //#region Constructor
18
+ /**
19
+ * Default Constructor
20
+ */
21
+ constructor(options) {
22
+ super();
23
+ this.options = options;
24
+ }
25
+ //#endregion
26
+ //#region Public Methods
27
+ /**
28
+ * {@inheritDoc}
29
+ */
30
+ getHandler(app, framework, adapters, resolverFactory, binarySettings, respondWithErrors, log) {
31
+ return (context, event) => {
32
+ var _a;
33
+ const useContextLogWhenInternalLogger = (0, core_1.getDefaultIfUndefined)((_a = this.options) === null || _a === void 0 ? void 0 : _a.useContextLogWhenInternalLogger, true);
34
+ if ((0, core_1.isInternalLogger)(log) && useContextLogWhenInternalLogger)
35
+ log = this.createLoggerFromContext(context);
36
+ const defaultHandler = super.getHandler(app, framework, adapters, resolverFactory, binarySettings, respondWithErrors, log);
37
+ // remove this from context
38
+ // because user can mess it-up the things
39
+ // @ts-ignore
40
+ delete context.done;
41
+ delete context.res;
42
+ return defaultHandler(event, context, undefined);
43
+ };
44
+ }
45
+ //#endregion
46
+ //#region Protected Methods
47
+ /**
48
+ * Get the {@link ILogger} instance from logger of the context
49
+ *
50
+ * @param context - The Azure Context
51
+ */
52
+ createLoggerFromContext(context) {
53
+ return {
54
+ error: context.log.error,
55
+ debug: context.log.verbose,
56
+ verbose: context.log.verbose,
57
+ info: context.log.info,
58
+ warn: context.log.warn,
59
+ };
60
+ }
61
+ }
62
+ exports.AzureHandler = AzureHandler;
63
+ //# sourceMappingURL=azure.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure.handler.js","sourceRoot":"","sources":["../../../src/handlers/azure/azure.handler.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,iBAAiB;;;AAUjB,qCAA8E;AAC9E,wCAA4C;AAmB5C;;;;;;;GAOG;AACH,MAAa,YAMX,SAAQ,wBAAoE;IAC5E,qBAAqB;IAErB;;OAEG;IACH,YAA+B,OAA6B;QAC1D,KAAK,EAAE,CAAC;QADqB,YAAO,GAAP,OAAO,CAAsB;IAE5D,CAAC;IAED,YAAY;IAEZ,wBAAwB;IAExB;;OAEG;IACI,UAAU,CACf,GAAS,EACT,SAAkC,EAClC,QAAuD,EACvD,eAMC,EACD,cAA8B,EAC9B,iBAA0B,EAC1B,GAAY;QAEZ,OAAO,CAAC,OAAgB,EAAE,KAAa,EAAE,EAAE;;YACzC,MAAM,+BAA+B,GAAG,IAAA,4BAAqB,EAC3D,MAAA,IAAI,CAAC,OAAO,0CAAE,+BAA+B,EAC7C,IAAI,CACL,CAAC;YAEF,IAAI,IAAA,uBAAgB,EAAC,GAAG,CAAC,IAAI,+BAA+B;gBAC1D,GAAG,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAE9C,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CACrC,GAAG,EACH,SAAS,EACT,QAAQ,EACR,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,GAAG,CACJ,CAAC;YAEF,2BAA2B;YAC3B,yCAAyC;YACzC,aAAa;YACb,OAAO,OAAO,CAAC,IAAI,CAAC;YACpB,OAAO,OAAO,CAAC,GAAG,CAAC;YAEnB,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC,CAAC;IACJ,CAAC;IAED,YAAY;IAEZ,2BAA2B;IAE3B;;;;OAIG;IACO,uBAAuB,CAAC,OAAgB;QAChD,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK;YACxB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;YAC1B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;YAC5B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;YACtB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;SACvB,CAAC;IACJ,CAAC;CAGF;AAvFD,oCAuFC"}
@@ -0,0 +1,2 @@
1
+ export * from './azure.handler';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/handlers/azure/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./azure.handler"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/handlers/azure/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC"}
@@ -1,14 +1,5 @@
1
1
  "use strict";
2
2
  //#region Imports
3
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
- return new (P || (P = Promise))(function (resolve, reject) {
6
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
- step((generator = generator.apply(thisArg, _arguments || [])).next());
10
- });
11
- };
12
3
  var __importDefault = (this && this.__importDefault) || function (mod) {
13
4
  return (mod && mod.__esModule) ? mod : { "default": mod };
14
5
  };
@@ -84,7 +75,10 @@ class DefaultHandler extends core_1.BaseHandler {
84
75
  var _a;
85
76
  const body = (_a = requestValues.body) === null || _a === void 0 ? void 0 : _a.toString();
86
77
  log.debug('SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:REQUEST_VALUES', {
87
- requestValues: Object.assign(Object.assign({}, requestValues), { body }),
78
+ requestValues: {
79
+ ...requestValues,
80
+ body,
81
+ },
88
82
  });
89
83
  }
90
84
  /**
@@ -141,16 +135,14 @@ class DefaultHandler extends core_1.BaseHandler {
141
135
  * @param log - The instance of logger
142
136
  * @param binarySettings - The binary settings
143
137
  */
144
- forwardRequestToFramework(app, framework, event, context, adapter, binarySettings, log) {
145
- return __awaiter(this, void 0, void 0, function* () {
146
- const requestValues = adapter.getRequest(event, context, log);
147
- this.onResolveRequestValues(log, requestValues);
148
- const [request, response] = this.getServerlessRequestResponseFromAdapterRequest(requestValues);
149
- framework.sendRequest(app, request, response);
150
- yield (0, core_1.waitForStreamComplete)(response);
151
- this.onResolveForwardedResponseToFramework(log, response);
152
- return this.forwardResponse(event, response, adapter, binarySettings, log);
153
- });
138
+ async forwardRequestToFramework(app, framework, event, context, adapter, binarySettings, log) {
139
+ const requestValues = adapter.getRequest(event, context, log);
140
+ this.onResolveRequestValues(log, requestValues);
141
+ const [request, response] = this.getServerlessRequestResponseFromAdapterRequest(requestValues);
142
+ framework.sendRequest(app, request, response);
143
+ await (0, core_1.waitForStreamComplete)(response);
144
+ this.onResolveForwardedResponseToFramework(log, response);
145
+ return this.forwardResponse(event, response, adapter, binarySettings, log);
154
146
  }
155
147
  /**
156
148
  * The function to forward the response back to the serverless
@@ -1 +1 @@
1
- {"version":3,"file":"default.handler.js","sourceRoot":"","sources":["../../../src/handlers/default/default.handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default.handler.js","sourceRoot":"","sources":["../../../src/handlers/default/default.handler.ts"],"names":[],"mappings":";AAAA,iBAAiB;;;;;;AAEjB,gDAAwB;AASxB,qCAMoB;AACpB,2CAAmD;AAEnD,YAAY;AAEZ;;;;;GAKG;AACH,MAAa,cAOX,SAAQ,kBAAkE;IAC1E,wBAAwB;IAExB;;OAEG;IACI,UAAU,CACf,GAAS,EACT,SAAkC,EAClC,QAAwD,EACxD,eAMC,EACD,cAA8B,EAC9B,iBAA0B,EAC1B,GAAY;QAEZ,OAAO,CAAC,KAAa,EAAE,OAAiB,EAAE,QAAoB,EAAE,EAAE;YAChE,IAAI,CAAC,gBAAgB,CACnB,GAAG,EACH,KAAK,EACL,OAAO,EACP,cAAc,EACd,iBAAiB,CAClB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAC9C,KAAK,EACL,OAAO,EACP,QAAQ,EACR,GAAG,CACJ,CAAC;YAEF,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAEpC,IAAA,uBAAgB,EAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAErC,MAAM,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC;gBAC9C,KAAK;gBACL,OAAO;gBACP,QAAQ;gBACR,GAAG;gBACH,iBAAiB;gBACjB,OAAO;aACR,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CACvB,IAAI,CAAC,yBAAyB,CAC5B,GAAG,EACH,SAAS,EACT,KAAK,EACL,OAAO,EACP,OAAO,EACP,cAAc,EACd,GAAG,CACJ,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAED,YAAY;IAEZ,eAAe;IAEf;;;;;;;;OAQG;IACO,gBAAgB,CACxB,GAAY,EACZ,KAAa,EACb,OAAiB,EACjB,cAA8B,EAC9B,iBAA0B;QAE1B,GAAG,CAAC,KAAK,CAAC,0BAA0B,EAAE;YACpC,KAAK,EAAE,cAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAC3C,OAAO,EAAE,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAC/C,cAAc;YACd,iBAAiB;SAClB,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACO,gBAAgB,CACxB,GAAY,EACZ,OAAqD;QAErD,GAAG,CAAC,KAAK,CACP,4CAA4C,EAC5C,OAAO,CAAC,cAAc,EAAE,CACzB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACO,sBAAsB,CAC9B,GAAY,EACZ,aAA6B;;QAE7B,MAAM,IAAI,GAAG,MAAA,aAAa,CAAC,IAAI,0CAAE,QAAQ,EAAE,CAAC;QAE5C,GAAG,CAAC,KAAK,CACP,gEAAgE,EAChE;YACE,aAAa,EAAE;gBACb,GAAG,aAAa;gBAChB,IAAI;aACL;SACF,CACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACO,qCAAqC,CAC7C,GAAY,EACZ,QAA4B;QAE5B,GAAG,CAAC,KAAK,CAAC,0DAA0D,EAAE;YACpE,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACO,iBAAiB,CACzB,GAAY,EACZ,UAAkB,EAClB,IAAY,EACZ,OAA2B,EAC3B,eAAwB;QAExB,GAAG,CAAC,KAAK,CACP,kEAAkE,EAClE;YACE,UAAU;YACV,IAAI;YACJ,OAAO;YACP,eAAe;SAChB,CACF,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACO,gCAAgC,CACxC,GAAY,EACZ,eAA0B,EAC1B,IAAY;QAEZ,GAAG,CAAC,KAAK,CAAC,2DAA2D,EAAE;YACrE,eAAe,EAAE,cAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAC/D,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,YAAY;IAEZ,2BAA2B;IAE3B;;;;;;;;;;OAUG;IACO,KAAK,CAAC,yBAAyB,CACvC,GAAS,EACT,SAAkC,EAClC,KAAa,EACb,OAAiB,EACjB,OAAqD,EACrD,cAA8B,EAC9B,GAAY;QAEZ,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAE9D,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAEhD,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GACvB,IAAI,CAAC,8CAA8C,CAAC,aAAa,CAAC,CAAC;QAErE,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE9C,MAAM,IAAA,4BAAqB,EAAC,QAAQ,CAAC,CAAC;QAEtC,IAAI,CAAC,qCAAqC,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAE1D,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;;;;OAQG;IACO,eAAe,CACvB,KAAa,EACb,QAA4B,EAC5B,OAAqD,EACrD,cAA8B,EAC9B,GAAY;QAEZ,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QACvC,MAAM,OAAO,GAAG,4BAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,IAAA,eAAQ,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QACrD,MAAM,IAAI,GAAG,4BAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC;QAE5D,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QAE3E,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;YAC1C,KAAK;YACL,UAAU;YACV,IAAI;YACJ,OAAO;YACP,eAAe;YACf,QAAQ;YACR,GAAG;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,gCAAgC,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QAErE,OAAO,eAAe,CAAC;IACzB,CAAC;CAGF;AAvRD,wCAuRC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@h4ad/serverless-adapter",
3
- "version": "2.3.2",
4
- "description": "Run REST APIs and other web applications using your existing Node.js application framework (NestJS, Express, Koa, Hapi, Fastify and many others), on top of AWS, Huawei and many other clouds.",
3
+ "version": "2.5.1",
4
+ "description": "Run REST APIs and other web applications using your existing Node.js application framework (NestJS, Express, Koa, Hapi, Fastify and many others), on top of AWS, Azure, Huawei and many other clouds.",
5
5
  "main": "./lib/index.js",
6
6
  "files": [
7
7
  "lib/**/*"
@@ -53,7 +53,11 @@
53
53
  "node.js",
54
54
  "http",
55
55
  "huawei",
56
- "functiongraph"
56
+ "functiongraph",
57
+ "trpc",
58
+ "azure",
59
+ "azure-functions",
60
+ "http-trigger-v4"
57
61
  ],
58
62
  "bugs": {
59
63
  "url": "https://github.com/H4ad/serverless-adapter/issues"
@@ -87,7 +91,7 @@
87
91
  "jest": "^27.5.1",
88
92
  "lint-staged": "^10.5.4",
89
93
  "prettier": "^2.5.1",
90
- "semantic-release": "^19.0.2",
94
+ "semantic-release": "^19.0.3",
91
95
  "stream-mock": "^2.0.5",
92
96
  "supertest": "^6.2.3",
93
97
  "ts-jest": "^27.1.3",
@@ -96,8 +100,10 @@
96
100
  "typescript": "^4.5.5"
97
101
  },
98
102
  "peerDependencies": {
103
+ "@azure/functions": ">= 2.0.0",
99
104
  "@hapi/hapi": ">= 20.0.0",
100
- "@types/aws-lambda": "^8.10.92",
105
+ "@trpc/server": ">= 9.0.0",
106
+ "@types/aws-lambda": ">= 8.10.92",
101
107
  "@types/express": ">= 4.15.4",
102
108
  "@types/hapi": ">= 18.0.7",
103
109
  "@types/koa": ">= 2.11.2",
@@ -107,12 +113,18 @@
107
113
  "koa": ">= 2.5.1"
108
114
  },
109
115
  "peerDependenciesMeta": {
110
- "@types/aws-lambda": {
116
+ "@azure/functions": {
111
117
  "optional": true
112
118
  },
113
119
  "@hapi/hapi": {
114
120
  "optional": true
115
121
  },
122
+ "@trpc/server": {
123
+ "optional": true
124
+ },
125
+ "@types/aws-lambda": {
126
+ "optional": true
127
+ },
116
128
  "express": {
117
129
  "optional": true
118
130
  },