lambder 1.0.13 → 1.0.14
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/dist/index.d.ts +4 -6
- package/dist/index.js +4 -5
- package/package.json +1 -1
- package/src/index.ts +8 -11
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { APIGatewayProxyEvent, APIGatewayProxyEventHeaders, Context } from "aws-lambda";
|
|
2
2
|
import Resolver, { ResolverResponse } from "./Resolver.js";
|
|
3
|
-
type
|
|
3
|
+
type RenderContext = {
|
|
4
4
|
host: string;
|
|
5
5
|
url: string;
|
|
6
6
|
method: string;
|
|
@@ -14,9 +14,7 @@ type RawResolvedContext = {
|
|
|
14
14
|
[key: string]: any;
|
|
15
15
|
};
|
|
16
16
|
headers: APIGatewayProxyEventHeaders;
|
|
17
|
-
|
|
18
|
-
type RenderContext = RawResolvedContext & {
|
|
19
|
-
runContext: Context;
|
|
17
|
+
lambdaContext: Context;
|
|
20
18
|
};
|
|
21
19
|
type ConditionFunction = (renderContext: RenderContext) => boolean | Promise<boolean>;
|
|
22
20
|
type ActionFunction = (renderContext: RenderContext, resolver: Resolver) => ResolverResponse | Promise<ResolverResponse>;
|
|
@@ -25,7 +23,7 @@ type HookBeforeRenderFunction = (renderContext: RenderContext, resolver: Resolve
|
|
|
25
23
|
type HookAfterRenderFunction = (renderContext: RenderContext, resolver: Resolver, renderResult: ResolverResponse) => ResolverResponse | Promise<ResolverResponse>;
|
|
26
24
|
type HookFallbackFunction = (renderContext: RenderContext, resolver: Resolver) => ResolverResponse | Promise<ResolverResponse>;
|
|
27
25
|
type HookCompletedFunction = (renderResult: ResolverResponse) => ResolverResponse | Promise<ResolverResponse>;
|
|
28
|
-
export declare const
|
|
26
|
+
export declare const createContext: (event: APIGatewayProxyEvent, lambdaContext: Context, resolve: Function, reject: Function) => RenderContext;
|
|
29
27
|
export default class Lambder {
|
|
30
28
|
private apiPath;
|
|
31
29
|
private apiVersion;
|
|
@@ -53,6 +51,6 @@ export default class Lambder {
|
|
|
53
51
|
addHook(hookEvent: 'fallback', hookFn: HookFallbackFunction, priority?: number): Promise<void>;
|
|
54
52
|
addHook(hookEvent: 'completed', hookFn: HookCompletedFunction, priority?: number): Promise<void>;
|
|
55
53
|
addModule(moduleFn: Function): Promise<void>;
|
|
56
|
-
render(event: APIGatewayProxyEvent,
|
|
54
|
+
render(event: APIGatewayProxyEvent, lambdaContext: Context): Promise<ResolverResponse>;
|
|
57
55
|
}
|
|
58
56
|
export {};
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import querystring from "querystring";
|
|
2
2
|
import cookieParser from "cookie";
|
|
3
3
|
import Resolver from "./Resolver.js";
|
|
4
|
-
export const
|
|
4
|
+
export const createContext = (event, lambdaContext, resolve, reject) => {
|
|
5
5
|
const host = event.headers.Host || event.headers.host || "";
|
|
6
6
|
const url = event.path;
|
|
7
7
|
const get = event.queryStringParameters || {};
|
|
@@ -22,7 +22,7 @@ export const resolveEvent = (event, resolve, reject) => {
|
|
|
22
22
|
if (/^(((\d+\.)+\d+)|(([a-f\d]+:)+[a-f\d]+))$/.test(host)) {
|
|
23
23
|
reject(new Error("[404] Host cannot be an ip address: " + host));
|
|
24
24
|
}
|
|
25
|
-
return { host, url, method, get, post, cookie, headers };
|
|
25
|
+
return { host, url, method, get, post, cookie, headers, lambdaContext };
|
|
26
26
|
};
|
|
27
27
|
export default class Lambder {
|
|
28
28
|
apiPath;
|
|
@@ -110,7 +110,7 @@ export default class Lambder {
|
|
|
110
110
|
async addModule(moduleFn) {
|
|
111
111
|
await moduleFn(this);
|
|
112
112
|
}
|
|
113
|
-
async render(event,
|
|
113
|
+
async render(event, lambdaContext) {
|
|
114
114
|
return await new Promise(async (resolve, reject) => {
|
|
115
115
|
const resolver = new Resolver({
|
|
116
116
|
isCorsEnabled: this.isCorsEnabled,
|
|
@@ -118,8 +118,7 @@ export default class Lambder {
|
|
|
118
118
|
apiVersion: this.apiVersion,
|
|
119
119
|
resolve, reject,
|
|
120
120
|
});
|
|
121
|
-
|
|
122
|
-
let renderContext = { ...eventContext, runContext };
|
|
121
|
+
let renderContext = createContext(event, lambdaContext, resolve, reject);
|
|
123
122
|
if (renderContext.method === "OPTIONS")
|
|
124
123
|
return resolver.cors();
|
|
125
124
|
let firstMatchedAction = null;
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -4,7 +4,7 @@ import cookieParser from "cookie";
|
|
|
4
4
|
import type { APIGatewayProxyEvent, APIGatewayProxyEventHeaders, Context } from "aws-lambda";
|
|
5
5
|
import Resolver, { ResolverResponse } from "./Resolver.js";
|
|
6
6
|
|
|
7
|
-
type
|
|
7
|
+
type RenderContext = {
|
|
8
8
|
host: string;
|
|
9
9
|
url: string;
|
|
10
10
|
method: string;
|
|
@@ -12,12 +12,9 @@ type RawResolvedContext = {
|
|
|
12
12
|
post: { [key: string]: any };
|
|
13
13
|
cookie: { [key: string]: any };
|
|
14
14
|
headers: APIGatewayProxyEventHeaders;
|
|
15
|
+
lambdaContext: Context;
|
|
15
16
|
};
|
|
16
17
|
|
|
17
|
-
type RenderContext = RawResolvedContext & {
|
|
18
|
-
runContext: Context,
|
|
19
|
-
}
|
|
20
|
-
|
|
21
18
|
type ConditionFunction = (renderContext: RenderContext) => boolean|Promise<boolean>;
|
|
22
19
|
type ActionFunction = (renderContext: RenderContext, resolver: Resolver) => ResolverResponse|Promise<ResolverResponse>;
|
|
23
20
|
type ActionType = { conditionFn: ConditionFunction, actionFn: ActionFunction };
|
|
@@ -34,11 +31,12 @@ type HookListType = {
|
|
|
34
31
|
hookFn: HookCreatedFunction|HookBeforeRenderFunction|HookAfterRenderFunction|HookFallbackFunction|HookCompletedFunction,
|
|
35
32
|
}[];
|
|
36
33
|
|
|
37
|
-
export const
|
|
34
|
+
export const createContext = (
|
|
38
35
|
event: APIGatewayProxyEvent,
|
|
36
|
+
lambdaContext: Context,
|
|
39
37
|
resolve: Function,
|
|
40
38
|
reject: Function
|
|
41
|
-
):
|
|
39
|
+
):RenderContext => {
|
|
42
40
|
const host = event.headers.Host || event.headers.host || "";
|
|
43
41
|
const url = event.path;
|
|
44
42
|
const get: { [key:string]: any } = event.queryStringParameters || {};
|
|
@@ -52,7 +50,7 @@ export const resolveEvent = (
|
|
|
52
50
|
catch(e){ post = querystring.parse(decodedBody) || {}; }
|
|
53
51
|
}catch(e){}
|
|
54
52
|
if(/^(((\d+\.)+\d+)|(([a-f\d]+:)+[a-f\d]+))$/.test(host)){ reject(new Error("[404] Host cannot be an ip address: " + host)); }
|
|
55
|
-
return { host, url, method, get, post, cookie, headers };
|
|
53
|
+
return { host, url, method, get, post, cookie, headers, lambdaContext };
|
|
56
54
|
}
|
|
57
55
|
|
|
58
56
|
|
|
@@ -167,7 +165,7 @@ export default class Lambder {
|
|
|
167
165
|
|
|
168
166
|
async render(
|
|
169
167
|
event: APIGatewayProxyEvent,
|
|
170
|
-
|
|
168
|
+
lambdaContext: Context
|
|
171
169
|
): Promise<ResolverResponse>{
|
|
172
170
|
return await new Promise(async (
|
|
173
171
|
resolve:(renderResult: ResolverResponse)=>void,
|
|
@@ -180,8 +178,7 @@ export default class Lambder {
|
|
|
180
178
|
apiVersion: this.apiVersion,
|
|
181
179
|
resolve, reject,
|
|
182
180
|
});
|
|
183
|
-
|
|
184
|
-
let renderContext:RenderContext = { ...eventContext, runContext };
|
|
181
|
+
let renderContext:RenderContext = createContext(event, lambdaContext, resolve, reject)
|
|
185
182
|
|
|
186
183
|
if(renderContext.method === "OPTIONS") return resolver.cors();
|
|
187
184
|
|