@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.
- package/README.md +37 -2
- package/lib/adapters/azure/http-trigger-v4.adapter.d.ts +81 -0
- package/lib/adapters/azure/http-trigger-v4.adapter.d.ts.map +1 -0
- package/lib/adapters/azure/http-trigger-v4.adapter.js +191 -0
- package/lib/adapters/azure/http-trigger-v4.adapter.js.map +1 -0
- package/lib/adapters/azure/index.d.ts +2 -0
- package/lib/adapters/azure/index.d.ts.map +1 -0
- package/lib/adapters/azure/index.js +18 -0
- package/lib/adapters/azure/index.js.map +1 -0
- package/lib/core/logger.d.ts +9 -0
- package/lib/core/logger.d.ts.map +1 -1
- package/lib/core/logger.js +21 -1
- package/lib/core/logger.js.map +1 -1
- package/lib/frameworks/trpc/index.d.ts +2 -0
- package/lib/frameworks/trpc/index.d.ts.map +1 -0
- package/lib/frameworks/trpc/index.js +18 -0
- package/lib/frameworks/trpc/index.js.map +1 -0
- package/lib/frameworks/trpc/trpc.framework.d.ts +152 -0
- package/lib/frameworks/trpc/trpc.framework.d.ts.map +1 -0
- package/lib/frameworks/trpc/trpc.framework.js +137 -0
- package/lib/frameworks/trpc/trpc.framework.js.map +1 -0
- package/lib/handlers/azure/azure.handler.d.ts +45 -0
- package/lib/handlers/azure/azure.handler.d.ts.map +1 -0
- package/lib/handlers/azure/azure.handler.js +63 -0
- package/lib/handlers/azure/azure.handler.js.map +1 -0
- package/lib/handlers/azure/index.d.ts +2 -0
- package/lib/handlers/azure/index.d.ts.map +1 -0
- package/lib/handlers/azure/index.js +18 -0
- package/lib/handlers/azure/index.js.map +1 -0
- package/lib/handlers/default/default.handler.js +12 -20
- package/lib/handlers/default/default.handler.js.map +1 -1
- 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
|
|
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 @@
|
|
|
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"}
|
package/lib/core/logger.d.ts
CHANGED
|
@@ -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
|
package/lib/core/logger.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/lib/core/logger.js
CHANGED
|
@@ -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
|
package/lib/core/logger.js.map
CHANGED
|
@@ -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;
|
|
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 @@
|
|
|
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 @@
|
|
|
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:
|
|
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
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
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":";AAAA,iBAAiB
|
|
1
|
+
{"version":3,"file":"default.handler.js","sourceRoot":"","sources":["../../../src/handlers/default/default.handler.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@h4ad/serverless-adapter",
|
|
3
|
-
"version": "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.
|
|
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
|
-
"@
|
|
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
|
-
"@
|
|
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
|
},
|