lambder 1.0.64 → 1.0.66

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 CHANGED
@@ -1,8 +1,8 @@
1
1
  import type { APIGatewayProxyEvent, APIGatewayProxyEventHeaders, Context } from "aws-lambda";
2
- import Resolver from "./Resolver.js";
2
+ import LambderResolver from "./LambderResolver.js";
3
3
  import LambderResponseBuilder, { LambderResolverResponse } from "./LambderResponseBuilder.js";
4
4
  type Path = `/${string}`;
5
- type Session = {
5
+ type LambderSession = {
6
6
  userId: string;
7
7
  userIdHash: string;
8
8
  sessionHash: string;
@@ -11,7 +11,7 @@ type Session = {
11
11
  expiresTimeStamp: number;
12
12
  data: Record<string, any>;
13
13
  };
14
- type RenderContext = {
14
+ type LambderRenderContext = {
15
15
  host: string;
16
16
  path: string;
17
17
  pathParams: Record<string, any> | null;
@@ -21,19 +21,19 @@ type RenderContext = {
21
21
  cookie: Record<string, any>;
22
22
  apiName: string;
23
23
  headers: APIGatewayProxyEventHeaders;
24
- session: Session | null;
24
+ session: LambderSession | null;
25
25
  lambdaContext: Context;
26
26
  };
27
- type ConditionFunction = (ctx: RenderContext) => boolean;
28
- type ActionFunction = (ctx: RenderContext, resolver: Resolver) => LambderResolverResponse | Promise<LambderResolverResponse>;
27
+ type ConditionFunction = (ctx: LambderRenderContext) => boolean;
28
+ type ActionFunction = (ctx: LambderRenderContext, resolver: LambderResolver) => LambderResolverResponse | Promise<LambderResolverResponse>;
29
29
  type HookCreatedFunction = (lambderInstance: Lambder) => Promise<void>;
30
- type HookBeforeRenderFunction = (ctx: RenderContext, resolver: Resolver) => RenderContext | Error | Promise<RenderContext | Error>;
31
- type HookAfterRenderFunction = (ctx: RenderContext, resolver: Resolver, response: LambderResolverResponse) => LambderResolverResponse | Error | Promise<LambderResolverResponse | Error>;
32
- type HookFallbackFunction = (ctx: RenderContext, resolver: Resolver) => void | Promise<void>;
33
- type GlobalErrorHandlerFunction = (err: Error, ctx: RenderContext | null, response: LambderResponseBuilder) => LambderResolverResponse | Promise<LambderResolverResponse>;
34
- type RouteFallbackHandlerFunction = (ctx: RenderContext, resolver: Resolver) => LambderResolverResponse;
35
- type ApiFallbackHandlerFunction = (ctx: RenderContext, resolver: Resolver) => LambderResolverResponse;
36
- export declare const createContext: (event: APIGatewayProxyEvent, lambdaContext: Context, apiPath?: string | null) => RenderContext;
30
+ type HookBeforeRenderFunction = (ctx: LambderRenderContext, resolver: LambderResolver) => LambderRenderContext | Error | Promise<LambderRenderContext | Error>;
31
+ type HookAfterRenderFunction = (ctx: LambderRenderContext, resolver: LambderResolver, response: LambderResolverResponse) => LambderResolverResponse | Error | Promise<LambderResolverResponse | Error>;
32
+ type HookFallbackFunction = (ctx: LambderRenderContext, resolver: LambderResolver) => void | Promise<void>;
33
+ type GlobalErrorHandlerFunction = (err: Error, ctx: LambderRenderContext | null, response: LambderResponseBuilder) => LambderResolverResponse | Promise<LambderResolverResponse>;
34
+ type RouteFallbackHandlerFunction = (ctx: LambderRenderContext, resolver: LambderResolver) => LambderResolverResponse;
35
+ type ApiFallbackHandlerFunction = (ctx: LambderRenderContext, resolver: LambderResolver) => LambderResolverResponse;
36
+ export declare const createContext: (event: APIGatewayProxyEvent, lambdaContext: Context, apiPath?: string | null) => LambderRenderContext;
37
37
  export default class Lambder {
38
38
  private apiPath;
39
39
  private apiVersion;
package/dist/Lambder.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import querystring from "querystring";
2
2
  import cookieParser from "cookie";
3
3
  import { match } from "path-to-regexp";
4
- import Resolver from "./Resolver.js";
4
+ import LambderResolver from "./LambderResolver.js";
5
5
  import LambderResponseBuilder from "./LambderResponseBuilder.js";
6
6
  export const createContext = (event, lambdaContext, apiPath = null) => {
7
7
  const host = event.headers.Host || event.headers.host || "";
@@ -192,7 +192,7 @@ export default class Lambder {
192
192
  }
193
193
  ;
194
194
  getResolver(resolve, reject) {
195
- return new Resolver({
195
+ return new LambderResolver({
196
196
  isCorsEnabled: this.isCorsEnabled,
197
197
  publicPath: this.publicPath,
198
198
  apiVersion: this.apiVersion,
@@ -12,7 +12,7 @@ interface DieResolverMethods {
12
12
  file: MethodType<LambderResponseBuilder, 'file'>;
13
13
  api: MethodType<LambderResponseBuilder, 'api'>;
14
14
  }
15
- export default class Resolver extends LambderResponseBuilder {
15
+ export default class LambderResolver extends LambderResponseBuilder {
16
16
  resolve: (response: LambderResolverResponse) => void;
17
17
  reject: (err: Error) => void;
18
18
  die: DieResolverMethods;
@@ -1,5 +1,5 @@
1
1
  import LambderResponseBuilder from "./LambderResponseBuilder.js";
2
- export default class Resolver extends LambderResponseBuilder {
2
+ export default class LambderResolver extends LambderResponseBuilder {
3
3
  resolve;
4
4
  reject;
5
5
  die;
package/dist/index.d.ts CHANGED
@@ -2,4 +2,4 @@ import Lambder from './Lambder.js';
2
2
  export default Lambder;
3
3
  export { default as LambderCaller } from "./LambderCaller.js";
4
4
  export { default as LambderResponseBuilder } from "./LambderResponseBuilder.js";
5
- export { default as Resolver } from "./Resolver.js";
5
+ export { default as LambderResolver } from "./LambderResolver.js";
package/dist/index.js CHANGED
@@ -2,4 +2,4 @@ import Lambder from './Lambder.js';
2
2
  export default Lambder;
3
3
  export { default as LambderCaller } from "./LambderCaller.js";
4
4
  export { default as LambderResponseBuilder } from "./LambderResponseBuilder.js";
5
- export { default as Resolver } from "./Resolver.js";
5
+ export { default as LambderResolver } from "./LambderResolver.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lambder",
3
- "version": "1.0.64",
3
+ "version": "1.0.66",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/Lambder.ts CHANGED
@@ -3,12 +3,12 @@ import cookieParser from "cookie";
3
3
  import { match } from "path-to-regexp";
4
4
 
5
5
  import type { APIGatewayProxyEvent, APIGatewayProxyEventHeaders, Context } from "aws-lambda";
6
- import Resolver from "./Resolver.js";
6
+ import LambderResolver from "./LambderResolver.js";
7
7
  import LambderResponseBuilder, { LambderResolverResponse } from "./LambderResponseBuilder.js";
8
8
 
9
9
  type Path = `/${string}`;
10
10
 
11
- type Session = {
11
+ type LambderSession = {
12
12
  userId: string,
13
13
  userIdHash: string;
14
14
  sessionHash: string;
@@ -18,7 +18,7 @@ type Session = {
18
18
  data: Record<string, any>;
19
19
  };
20
20
 
21
- type RenderContext = {
21
+ type LambderRenderContext = {
22
22
  host: string;
23
23
  path: string;
24
24
  pathParams: Record<string, any> | null;
@@ -28,30 +28,30 @@ type RenderContext = {
28
28
  cookie: Record<string, any>;
29
29
  apiName: string;
30
30
  headers: APIGatewayProxyEventHeaders;
31
- session: Session|null;
31
+ session: LambderSession|null;
32
32
  lambdaContext: Context;
33
33
  };
34
34
 
35
- type ConditionFunction = (ctx: RenderContext) => boolean;
36
- type ActionFunction = (ctx: RenderContext, resolver: Resolver) => LambderResolverResponse|Promise<LambderResolverResponse>;
35
+ type ConditionFunction = (ctx: LambderRenderContext) => boolean;
36
+ type ActionFunction = (ctx: LambderRenderContext, resolver: LambderResolver) => LambderResolverResponse|Promise<LambderResolverResponse>;
37
37
  type ActionObject = { conditionFn: ConditionFunction, actionFn: ActionFunction };
38
38
 
39
+ type HookEventType = "created"|"beforeRender"|"afterRender"|"fallback";
39
40
  type HookCreatedFunction = (lambderInstance: Lambder) => Promise<void>;
40
- type HookBeforeRenderFunction = (ctx: RenderContext, resolver: Resolver) => RenderContext|Error|Promise<RenderContext|Error>;
41
- type HookAfterRenderFunction = (ctx: RenderContext, resolver: Resolver, response: LambderResolverResponse) => LambderResolverResponse|Error|Promise<LambderResolverResponse|Error>;
42
- type HookFallbackFunction = (ctx: RenderContext, resolver: Resolver) => void|Promise<void>;
41
+ type HookBeforeRenderFunction = (ctx: LambderRenderContext, resolver: LambderResolver) => LambderRenderContext|Error|Promise<LambderRenderContext|Error>;
42
+ type HookAfterRenderFunction = (ctx: LambderRenderContext, resolver: LambderResolver, response: LambderResolverResponse) => LambderResolverResponse|Error|Promise<LambderResolverResponse|Error>;
43
+ type HookFallbackFunction = (ctx: LambderRenderContext, resolver: LambderResolver) => void|Promise<void>;
43
44
 
44
- type GlobalErrorHandlerFunction = (err: Error, ctx: RenderContext|null, response: LambderResponseBuilder) => LambderResolverResponse|Promise<LambderResolverResponse>;
45
- type RouteFallbackHandlerFunction = (ctx:RenderContext, resolver: Resolver) => LambderResolverResponse;
46
- type ApiFallbackHandlerFunction = (ctx:RenderContext, resolver: Resolver) => LambderResolverResponse;
45
+ type GlobalErrorHandlerFunction = (err: Error, ctx: LambderRenderContext|null, response: LambderResponseBuilder) => LambderResolverResponse|Promise<LambderResolverResponse>;
46
+ type RouteFallbackHandlerFunction = (ctx:LambderRenderContext, resolver: LambderResolver) => LambderResolverResponse;
47
+ type ApiFallbackHandlerFunction = (ctx:LambderRenderContext, resolver: LambderResolver) => LambderResolverResponse;
47
48
 
48
- type HookEventType = "created"|"beforeRender"|"afterRender"|"fallback";
49
49
 
50
50
  export const createContext = (
51
51
  event: APIGatewayProxyEvent,
52
52
  lambdaContext: Context,
53
53
  apiPath: string|null = null
54
- ):RenderContext => {
54
+ ):LambderRenderContext => {
55
55
  const host = event.headers.Host || event.headers.host || "";
56
56
  const path = event.path;
57
57
  const pathParams = null;
@@ -123,7 +123,7 @@ export default class Lambder {
123
123
  return (match(pattern, { decode: decodeURIComponent }))(path) !== false;
124
124
  }
125
125
 
126
- private async validateSession (ctx: RenderContext): Promise<boolean>{
126
+ private async validateSession (ctx: LambderRenderContext): Promise<boolean>{
127
127
  const { session, apiName, post, cookie } = ctx;
128
128
  if(!session) return false;
129
129
  if(!session.userId || !session.userIdHash || !session.sessionHash || !session.csrfToken) return false;
@@ -139,7 +139,7 @@ export default class Lambder {
139
139
  return false;
140
140
  };
141
141
 
142
- private async handleNoMatchedAction(ctx: RenderContext, resolver: Resolver){
142
+ private async handleNoMatchedAction(ctx: LambderRenderContext, resolver: LambderResolver){
143
143
  for(const hook of this.hookList["fallback"]){ await hook.hookFn(ctx, resolver); }
144
144
 
145
145
  const isAPI = ctx.path === this.apiPath;
@@ -159,7 +159,7 @@ export default class Lambder {
159
159
  }
160
160
  addRoute(condition: Path|ConditionFunction|RegExp, actionFn: ActionFunction):void{
161
161
  this.actionList.push({
162
- conditionFn: (ctx:RenderContext) => (
162
+ conditionFn: (ctx:LambderRenderContext) => (
163
163
  ctx.method === "GET" &&
164
164
  (
165
165
  (typeof condition === "string" && this.testPatternMatch(condition, ctx.path)) ||
@@ -167,7 +167,7 @@ export default class Lambder {
167
167
  (condition?.constructor == RegExp && condition.test(ctx.path))
168
168
  )
169
169
  ),
170
- actionFn: async (ctx:RenderContext, resolver: Resolver) => {
170
+ actionFn: async (ctx:LambderRenderContext, resolver: LambderResolver) => {
171
171
  if(typeof condition === "string"){
172
172
  ctx.pathParams = this.getPatternMatch(condition, ctx.path);
173
173
  }else if(condition?.constructor == RegExp){
@@ -181,7 +181,7 @@ export default class Lambder {
181
181
 
182
182
  addSessionRoute(condition: Path|ConditionFunction|RegExp, actionFn: ActionFunction):void{
183
183
  this.actionList.push({
184
- conditionFn: (ctx:RenderContext) => (
184
+ conditionFn: (ctx:LambderRenderContext) => (
185
185
  ctx.method === "GET" &&
186
186
  (
187
187
  (typeof condition === "string" && this.testPatternMatch(condition, ctx.path)) ||
@@ -189,7 +189,7 @@ export default class Lambder {
189
189
  (condition?.constructor == RegExp && condition.test(ctx.path))
190
190
  )
191
191
  ),
192
- actionFn: async (ctx:RenderContext, resolver: Resolver) => {
192
+ actionFn: async (ctx:LambderRenderContext, resolver: LambderResolver) => {
193
193
  const isSessionValid = this.validateSession(ctx);
194
194
  if(!isSessionValid) throw new Error("Session not found");
195
195
  if(typeof condition === "string"){
@@ -204,23 +204,23 @@ export default class Lambder {
204
204
 
205
205
  addApi(apiName: string|ConditionFunction|RegExp, actionFn: ActionFunction):void{
206
206
  this.actionList.push({
207
- conditionFn: (ctx:RenderContext) => (
207
+ conditionFn: (ctx:LambderRenderContext) => (
208
208
  (typeof apiName === "string" && ctx.apiName === apiName) ||
209
209
  (typeof apiName === "function" && apiName(ctx)) ||
210
210
  (apiName?.constructor == RegExp && apiName.test(ctx.apiName))
211
211
  ),
212
- actionFn: async (ctx:RenderContext, resolver: Resolver) => await actionFn(ctx, resolver),
212
+ actionFn: async (ctx:LambderRenderContext, resolver: LambderResolver) => await actionFn(ctx, resolver),
213
213
  });
214
214
  };
215
215
 
216
216
  addSessionApi(apiName: string|ConditionFunction|RegExp, actionFn: ActionFunction):void{
217
217
  this.actionList.push({
218
- conditionFn: (ctx:RenderContext) => (
218
+ conditionFn: (ctx:LambderRenderContext) => (
219
219
  (typeof apiName === "string" && ctx.apiName === apiName) ||
220
220
  (typeof apiName === "function" && apiName(ctx)) ||
221
221
  (apiName?.constructor == RegExp && apiName.test(ctx.apiName))
222
222
  ),
223
- actionFn: async (ctx:RenderContext, resolver: Resolver) => {
223
+ actionFn: async (ctx:LambderRenderContext, resolver: LambderResolver) => {
224
224
  const isSessionValid = this.validateSession(ctx);
225
225
  if(!isSessionValid) throw new Error("Session not found");
226
226
  return await actionFn(ctx, resolver);
@@ -254,7 +254,7 @@ export default class Lambder {
254
254
  };
255
255
 
256
256
  private getResolver(resolve: (response: LambderResolverResponse) => void, reject: (err: Error) => void){
257
- return new Resolver({
257
+ return new LambderResolver({
258
258
  isCorsEnabled: this.isCorsEnabled,
259
259
  publicPath: this.publicPath,
260
260
  apiVersion: this.apiVersion,
@@ -266,7 +266,7 @@ export default class Lambder {
266
266
  event: APIGatewayProxyEvent,
267
267
  lambdaContext: Context
268
268
  ): Promise<LambderResolverResponse>{
269
- let eventRenderContext:RenderContext|null = null;
269
+ let eventRenderContext:LambderRenderContext|null = null;
270
270
 
271
271
  try {
272
272
  let ctx = createContext(event, lambdaContext);
@@ -15,7 +15,7 @@ interface DieResolverMethods {
15
15
  api: MethodType<LambderResponseBuilder, 'api'>;
16
16
  }
17
17
 
18
- export default class Resolver extends LambderResponseBuilder {
18
+ export default class LambderResolver extends LambderResponseBuilder {
19
19
  public resolve: (response: LambderResolverResponse) => void;
20
20
  public reject: (err: Error) => void;
21
21
  public die: DieResolverMethods;
package/src/index.ts CHANGED
@@ -3,4 +3,4 @@ import Lambder from './Lambder.js';
3
3
  export default Lambder;
4
4
  export { default as LambderCaller } from "./LambderCaller.js";
5
5
  export { default as LambderResponseBuilder } from "./LambderResponseBuilder.js";
6
- export { default as Resolver } from "./Resolver.js";
6
+ export { default as LambderResolver } from "./LambderResolver.js";