lambder 1.0.29 → 1.0.31
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/Lambder.d.ts +6 -3
- package/dist/Lambder.js +3 -1
- package/package.json +1 -1
- package/src/Lambder.ts +15 -9
package/dist/Lambder.d.ts
CHANGED
|
@@ -35,6 +35,9 @@ type HookBeforeRenderFunction = (renderContext: RenderContext, resolver: Resolve
|
|
|
35
35
|
type HookAfterRenderFunction = (renderContext: RenderContext, resolver: Resolver, renderResult: ResolverResponse) => ResolverResponse | Promise<ResolverResponse>;
|
|
36
36
|
type HookFallbackFunction = (renderContext: RenderContext, resolver: Resolver) => ResolverResponse | Promise<ResolverResponse>;
|
|
37
37
|
type HookCompletedFunction = (renderResult: ResolverResponse) => ResolverResponse | Promise<ResolverResponse>;
|
|
38
|
+
type GlobalErrorHandlerFunction = (err: Error, renderContext: RenderContext | null) => ResolverResponse | Promise<ResolverResponse>;
|
|
39
|
+
type RouteFallbackHandlerFunction = (renderContext: RenderContext, resolver: Resolver) => ResolverResponse;
|
|
40
|
+
type ApiFallbackHandlerFunction = (renderContext: RenderContext, resolver: Resolver) => ResolverResponse;
|
|
38
41
|
export declare const createContext: (event: APIGatewayProxyEvent, lambdaContext: Context) => RenderContext;
|
|
39
42
|
export default class Lambder {
|
|
40
43
|
private apiPath;
|
|
@@ -52,9 +55,9 @@ export default class Lambder {
|
|
|
52
55
|
apiVersion?: string;
|
|
53
56
|
isCorsEnabled?: boolean;
|
|
54
57
|
});
|
|
55
|
-
setRouteFallbackHandler(routeFallbackHandler:
|
|
56
|
-
setApiFallbackHandler(apiFallbackHandler:
|
|
57
|
-
setGlobalErrorHandler(globalErrorHandler:
|
|
58
|
+
setRouteFallbackHandler(routeFallbackHandler: RouteFallbackHandlerFunction): void;
|
|
59
|
+
setApiFallbackHandler(apiFallbackHandler: ApiFallbackHandlerFunction): void;
|
|
60
|
+
setGlobalErrorHandler(globalErrorHandler: GlobalErrorHandlerFunction): void;
|
|
58
61
|
private validateSession;
|
|
59
62
|
private handleNoMatchedAction;
|
|
60
63
|
addModule(moduleFn: Function): Promise<void>;
|
package/dist/Lambder.js
CHANGED
|
@@ -147,8 +147,10 @@ export default class Lambder {
|
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
async render(event, lambdaContext) {
|
|
150
|
+
let eventRenderContext = null;
|
|
150
151
|
try {
|
|
151
152
|
let renderContext = createContext(event, lambdaContext);
|
|
153
|
+
eventRenderContext = renderContext;
|
|
152
154
|
return await new Promise(async (resolve, reject) => {
|
|
153
155
|
const resolver = new Resolver({
|
|
154
156
|
isCorsEnabled: this.isCorsEnabled,
|
|
@@ -187,7 +189,7 @@ export default class Lambder {
|
|
|
187
189
|
catch (err) {
|
|
188
190
|
const wrappedError = err instanceof Error ? err : new Error("Error: " + String(err));
|
|
189
191
|
if (this.globalErrorHandler) {
|
|
190
|
-
return this.globalErrorHandler(wrappedError);
|
|
192
|
+
return this.globalErrorHandler(wrappedError, eventRenderContext);
|
|
191
193
|
}
|
|
192
194
|
return { statusCode: 500, body: "Internal Server Error.", };
|
|
193
195
|
}
|
package/package.json
CHANGED
package/src/Lambder.ts
CHANGED
|
@@ -36,6 +36,10 @@ type HookAfterRenderFunction = (renderContext: RenderContext, resolver: Resolver
|
|
|
36
36
|
type HookFallbackFunction = (renderContext: RenderContext, resolver: Resolver) => ResolverResponse|Promise<ResolverResponse>;
|
|
37
37
|
type HookCompletedFunction = (renderResult: ResolverResponse) => ResolverResponse|Promise<ResolverResponse>;
|
|
38
38
|
|
|
39
|
+
type GlobalErrorHandlerFunction = (err: Error, renderContext: RenderContext|null) => ResolverResponse|Promise<ResolverResponse>;
|
|
40
|
+
type RouteFallbackHandlerFunction = (renderContext:RenderContext, resolver: Resolver) => ResolverResponse;
|
|
41
|
+
type ApiFallbackHandlerFunction = (renderContext:RenderContext, resolver: Resolver) => ResolverResponse;
|
|
42
|
+
|
|
39
43
|
type HookEventType = "created"|"beforeRender"|"afterRender"|"fallback"|"completed";
|
|
40
44
|
type HookListType = {
|
|
41
45
|
priority: number,
|
|
@@ -77,9 +81,9 @@ export default class Lambder {
|
|
|
77
81
|
"fallback": { priority: number, hookFn: HookFallbackFunction }[],
|
|
78
82
|
"completed": { priority: number, hookFn: HookCompletedFunction }[]
|
|
79
83
|
};
|
|
80
|
-
private globalErrorHandler:
|
|
81
|
-
private routeFallbackHandler:
|
|
82
|
-
private apiFallbackHandler:
|
|
84
|
+
private globalErrorHandler: GlobalErrorHandlerFunction|null = null;
|
|
85
|
+
private routeFallbackHandler: RouteFallbackHandlerFunction|null = null;
|
|
86
|
+
private apiFallbackHandler: ApiFallbackHandlerFunction|null = null;
|
|
83
87
|
|
|
84
88
|
constructor(
|
|
85
89
|
{ publicPath, apiPath, apiVersion, isCorsEnabled, }:
|
|
@@ -99,13 +103,13 @@ export default class Lambder {
|
|
|
99
103
|
};
|
|
100
104
|
}
|
|
101
105
|
|
|
102
|
-
setRouteFallbackHandler(routeFallbackHandler:
|
|
106
|
+
setRouteFallbackHandler(routeFallbackHandler: RouteFallbackHandlerFunction){
|
|
103
107
|
this.routeFallbackHandler = routeFallbackHandler;
|
|
104
108
|
}
|
|
105
|
-
setApiFallbackHandler(apiFallbackHandler:
|
|
109
|
+
setApiFallbackHandler(apiFallbackHandler: ApiFallbackHandlerFunction){
|
|
106
110
|
this.apiFallbackHandler = apiFallbackHandler;
|
|
107
111
|
}
|
|
108
|
-
setGlobalErrorHandler(globalErrorHandler:
|
|
112
|
+
setGlobalErrorHandler(globalErrorHandler: GlobalErrorHandlerFunction){
|
|
109
113
|
this.globalErrorHandler = globalErrorHandler;
|
|
110
114
|
}
|
|
111
115
|
|
|
@@ -222,8 +226,11 @@ export default class Lambder {
|
|
|
222
226
|
event: APIGatewayProxyEvent,
|
|
223
227
|
lambdaContext: Context
|
|
224
228
|
): Promise<ResolverResponse>{
|
|
229
|
+
let eventRenderContext:RenderContext|null = null;
|
|
230
|
+
|
|
225
231
|
try {
|
|
226
|
-
let renderContext
|
|
232
|
+
let renderContext = createContext(event, lambdaContext);
|
|
233
|
+
eventRenderContext = renderContext;
|
|
227
234
|
|
|
228
235
|
return await new Promise(async (
|
|
229
236
|
resolve:(renderResult: ResolverResponse)=>void,
|
|
@@ -263,9 +270,8 @@ export default class Lambder {
|
|
|
263
270
|
});
|
|
264
271
|
}catch(err){
|
|
265
272
|
const wrappedError = err instanceof Error ? err : new Error("Error: " + String(err));
|
|
266
|
-
|
|
267
273
|
if(this.globalErrorHandler){
|
|
268
|
-
return this.globalErrorHandler(wrappedError);
|
|
274
|
+
return this.globalErrorHandler(wrappedError, eventRenderContext);
|
|
269
275
|
}
|
|
270
276
|
return { statusCode: 500, body: "Internal Server Error.", }
|
|
271
277
|
|