lambder 1.0.60 → 1.0.62

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,6 +1,6 @@
1
1
  import type { APIGatewayProxyEvent, APIGatewayProxyEventHeaders, Context } from "aws-lambda";
2
2
  import Resolver from "./Resolver.js";
3
- import ResponseBuilder, { ResolverResponse } from "./ResponseBuilder.js";
3
+ import LambderResponseBuilder, { LambderResolverResponse } from "./LambderResponseBuilder.js";
4
4
  type Path = `/${string}`;
5
5
  type Session = {
6
6
  userId: string;
@@ -25,14 +25,14 @@ type RenderContext = {
25
25
  lambdaContext: Context;
26
26
  };
27
27
  type ConditionFunction = (ctx: RenderContext) => boolean;
28
- type ActionFunction = (ctx: RenderContext, resolver: Resolver) => ResolverResponse | Promise<ResolverResponse>;
28
+ type ActionFunction = (ctx: RenderContext, resolver: Resolver) => LambderResolverResponse | Promise<LambderResolverResponse>;
29
29
  type HookCreatedFunction = (lambderInstance: Lambder) => Promise<void>;
30
30
  type HookBeforeRenderFunction = (ctx: RenderContext, resolver: Resolver) => RenderContext | Error | Promise<RenderContext | Error>;
31
- type HookAfterRenderFunction = (ctx: RenderContext, resolver: Resolver, response: ResolverResponse) => ResolverResponse | Error | Promise<ResolverResponse | Error>;
31
+ type HookAfterRenderFunction = (ctx: RenderContext, resolver: Resolver, response: LambderResolverResponse) => LambderResolverResponse | Error | Promise<LambderResolverResponse | Error>;
32
32
  type HookFallbackFunction = (ctx: RenderContext, resolver: Resolver) => void | Promise<void>;
33
- type GlobalErrorHandlerFunction = (err: Error, ctx: RenderContext | null, response: ResponseBuilder) => ResolverResponse | Promise<ResolverResponse>;
34
- type RouteFallbackHandlerFunction = (ctx: RenderContext, resolver: Resolver) => ResolverResponse;
35
- type ApiFallbackHandlerFunction = (ctx: RenderContext, resolver: Resolver) => ResolverResponse;
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
36
  export declare const createContext: (event: APIGatewayProxyEvent, lambdaContext: Context, apiPath?: string | null) => RenderContext;
37
37
  export default class Lambder {
38
38
  private apiPath;
@@ -66,8 +66,8 @@ export default class Lambder {
66
66
  addHook(hookEvent: 'beforeRender', hookFn: HookBeforeRenderFunction, priority?: number): Promise<void>;
67
67
  addHook(hookEvent: 'afterRender', hookFn: HookAfterRenderFunction, priority?: number): Promise<void>;
68
68
  addHook(hookEvent: 'fallback', hookFn: HookFallbackFunction, priority?: number): Promise<void>;
69
- getResponseBuilder(): ResponseBuilder;
69
+ getResponseBuilder(): LambderResponseBuilder;
70
70
  private getResolver;
71
- render(event: APIGatewayProxyEvent, lambdaContext: Context): Promise<ResolverResponse>;
71
+ render(event: APIGatewayProxyEvent, lambdaContext: Context): Promise<LambderResolverResponse>;
72
72
  }
73
73
  export {};
package/dist/Lambder.js CHANGED
@@ -2,7 +2,7 @@ import querystring from "querystring";
2
2
  import cookieParser from "cookie";
3
3
  import { match } from "path-to-regexp";
4
4
  import Resolver from "./Resolver.js";
5
- import ResponseBuilder from "./ResponseBuilder.js";
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 || "";
8
8
  const path = event.path;
@@ -175,7 +175,7 @@ export default class Lambder {
175
175
  }
176
176
  }
177
177
  getResponseBuilder() {
178
- return new ResponseBuilder({
178
+ return new LambderResponseBuilder({
179
179
  isCorsEnabled: this.isCorsEnabled,
180
180
  publicPath: this.publicPath,
181
181
  apiVersion: this.apiVersion,
@@ -47,7 +47,7 @@ export default class LambderCaller {
47
47
  fetchStartedHandler?: FetchStartEventHandler;
48
48
  fetchEndedHandler?: FetchEndEventHandler;
49
49
  });
50
- api(apiName: string, payload?: any, headers?: Record<string, any>, options?: {
50
+ api<T>(apiName: string, payload?: any, headers?: Record<string, any>, options?: {
51
51
  versionExpiredHandler?: VoidFunction;
52
52
  sessionExpiredHandler?: VoidFunction;
53
53
  messageHandler?: MessageHandler;
@@ -56,6 +56,6 @@ export default class LambderCaller {
56
56
  errorHandler?: ErrorHandler;
57
57
  fetchStartedHandler?: FetchStartEventHandler;
58
58
  fetchEndedHandler?: FetchEndEventHandler;
59
- }): Promise<any>;
59
+ }): Promise<T | null>;
60
60
  }
61
61
  export {};
@@ -108,6 +108,7 @@ export default class LambderCaller {
108
108
  if (this.errorHandler) {
109
109
  this.errorHandler(wrappedError);
110
110
  }
111
+ return null;
111
112
  }
112
113
  }
113
114
  ;
@@ -0,0 +1,36 @@
1
+ export type LambderResolverResponse = {
2
+ statusCode: number;
3
+ multiValueHeaders?: Record<string, string[]>;
4
+ body: string | null;
5
+ isBase64Encoded?: boolean;
6
+ };
7
+ export type LambderApiResponse<T> = {
8
+ payload?: T | null;
9
+ versionExpired?: boolean;
10
+ sessionExpired?: boolean;
11
+ notAuthorized?: boolean;
12
+ message?: any;
13
+ errorMessage?: any;
14
+ };
15
+ export default class LambderResponseBuilder {
16
+ private isCorsEnabled;
17
+ private publicPath;
18
+ private apiVersion;
19
+ constructor({ isCorsEnabled, publicPath, apiVersion }: {
20
+ isCorsEnabled: boolean;
21
+ publicPath: string;
22
+ apiVersion?: string | null;
23
+ });
24
+ private readFileSync;
25
+ private checkFileExist;
26
+ raw(param: LambderResolverResponse): LambderResolverResponse;
27
+ json(data: Record<string, any>, headers?: Record<string, string | string[]>): LambderResolverResponse;
28
+ xml(data: string): LambderResolverResponse;
29
+ html(data: string, headers?: Record<string, string | string[]>): LambderResolverResponse;
30
+ status301(url: string, headers?: Record<string, string | string[]>): LambderResolverResponse;
31
+ status404(data: string, headers?: Record<string, string | string[]>): LambderResolverResponse;
32
+ cors(): LambderResolverResponse;
33
+ fileBase64(fileBase64: string, mimeType: string, headers?: Record<string, string | string[]>): LambderResolverResponse;
34
+ file(filePath: string, headers?: Record<string, string | string[]>, fallbackFilePath?: string): LambderResolverResponse;
35
+ api<T>({ payload, versionExpired, sessionExpired, notAuthorized, message, errorMessage, }: LambderApiResponse<T>, headers?: Record<string, string | string[]>): LambderResolverResponse;
36
+ }
@@ -8,7 +8,7 @@ const CORS_HEADERS = convertToMultiHeader({
8
8
  "Access-Control-Allow-Origin": "*",
9
9
  "Access-Control-Allow-Methods": "OPTIONS,POST",
10
10
  });
11
- export default class ResponseBuilder {
11
+ export default class LambderResponseBuilder {
12
12
  isCorsEnabled;
13
13
  publicPath;
14
14
  apiVersion;
@@ -119,9 +119,7 @@ export default class ResponseBuilder {
119
119
  return this.fileBase64(bodyBase64, mimeType || "", headers);
120
120
  }
121
121
  ;
122
- api({ payload, versionExpired, sessionExpired, notAuthorized, message = null, errorMessage = null, ...other }, headers) {
123
- if (Object.keys(other).length)
124
- console.log("ERROR: Unexpected key in result: " + Object.keys(other).join(", "));
122
+ api({ payload, versionExpired, sessionExpired, notAuthorized, message = null, errorMessage = null, }, headers) {
125
123
  return this.json({
126
124
  apiVersion: this.apiVersion,
127
125
  payload,
@@ -1,26 +1,26 @@
1
- import ResponseBuilder, { ResolverResponse } from "./ResponseBuilder.js";
1
+ import LambderResponseBuilder, { LambderResolverResponse } from "./LambderResponseBuilder.js";
2
2
  type MethodType<T, M extends keyof T> = T[M] extends (...args: any[]) => any ? T[M] : never;
3
3
  interface DieResolverMethods {
4
- raw: MethodType<ResponseBuilder, 'raw'>;
5
- json: MethodType<ResponseBuilder, 'json'>;
6
- xml: MethodType<ResponseBuilder, 'xml'>;
7
- html: MethodType<ResponseBuilder, 'html'>;
8
- status301: MethodType<ResponseBuilder, 'status301'>;
9
- status404: MethodType<ResponseBuilder, 'status404'>;
10
- cors: MethodType<ResponseBuilder, 'cors'>;
11
- fileBase64: MethodType<ResponseBuilder, 'fileBase64'>;
12
- file: MethodType<ResponseBuilder, 'file'>;
13
- api: MethodType<ResponseBuilder, 'api'>;
4
+ raw: MethodType<LambderResponseBuilder, 'raw'>;
5
+ json: MethodType<LambderResponseBuilder, 'json'>;
6
+ xml: MethodType<LambderResponseBuilder, 'xml'>;
7
+ html: MethodType<LambderResponseBuilder, 'html'>;
8
+ status301: MethodType<LambderResponseBuilder, 'status301'>;
9
+ status404: MethodType<LambderResponseBuilder, 'status404'>;
10
+ cors: MethodType<LambderResponseBuilder, 'cors'>;
11
+ fileBase64: MethodType<LambderResponseBuilder, 'fileBase64'>;
12
+ file: MethodType<LambderResponseBuilder, 'file'>;
13
+ api: MethodType<LambderResponseBuilder, 'api'>;
14
14
  }
15
- export default class Resolver extends ResponseBuilder {
16
- resolve: (response: ResolverResponse) => void;
15
+ export default class Resolver extends LambderResponseBuilder {
16
+ resolve: (response: LambderResolverResponse) => void;
17
17
  reject: (err: Error) => void;
18
18
  die: DieResolverMethods;
19
19
  constructor({ isCorsEnabled, publicPath, apiVersion, resolve, reject }: {
20
20
  isCorsEnabled: boolean;
21
21
  publicPath: string;
22
22
  apiVersion?: string | null;
23
- resolve: (response: ResolverResponse) => void;
23
+ resolve: (response: LambderResolverResponse) => void;
24
24
  reject: (err: Error) => void;
25
25
  });
26
26
  private autoResolve;
package/dist/Resolver.js CHANGED
@@ -1,5 +1,5 @@
1
- import ResponseBuilder from "./ResponseBuilder.js";
2
- export default class Resolver extends ResponseBuilder {
1
+ import LambderResponseBuilder from "./LambderResponseBuilder.js";
2
+ export default class Resolver extends LambderResponseBuilder {
3
3
  resolve;
4
4
  reject;
5
5
  die;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Lambder from './Lambder.js';
2
2
  export default Lambder;
3
3
  export { default as LambderCaller } from "./LambderCaller.js";
4
- export { default as ResponseBuilder } from "./ResponseBuilder.js";
4
+ export { default as LambderResponseBuilder } from "./LambderResponseBuilder.js";
5
5
  export { default as Resolver } from "./Resolver.js";
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import Lambder from './Lambder.js';
2
2
  export default Lambder;
3
3
  export { default as LambderCaller } from "./LambderCaller.js";
4
- export { default as ResponseBuilder } from "./ResponseBuilder.js";
4
+ export { default as LambderResponseBuilder } from "./LambderResponseBuilder.js";
5
5
  export { default as Resolver } from "./Resolver.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lambder",
3
- "version": "1.0.60",
3
+ "version": "1.0.62",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/Lambder.ts CHANGED
@@ -4,7 +4,7 @@ import { match } from "path-to-regexp";
4
4
 
5
5
  import type { APIGatewayProxyEvent, APIGatewayProxyEventHeaders, Context } from "aws-lambda";
6
6
  import Resolver from "./Resolver.js";
7
- import ResponseBuilder, { ResolverResponse } from "./ResponseBuilder.js";
7
+ import LambderResponseBuilder, { LambderResolverResponse } from "./LambderResponseBuilder.js";
8
8
 
9
9
  type Path = `/${string}`;
10
10
 
@@ -33,23 +33,19 @@ type RenderContext = {
33
33
  };
34
34
 
35
35
  type ConditionFunction = (ctx: RenderContext) => boolean;
36
- type ActionFunction = (ctx: RenderContext, resolver: Resolver) => ResolverResponse|Promise<ResolverResponse>;
36
+ type ActionFunction = (ctx: RenderContext, resolver: Resolver) => LambderResolverResponse|Promise<LambderResolverResponse>;
37
37
  type ActionObject = { conditionFn: ConditionFunction, actionFn: ActionFunction };
38
38
 
39
39
  type HookCreatedFunction = (lambderInstance: Lambder) => Promise<void>;
40
40
  type HookBeforeRenderFunction = (ctx: RenderContext, resolver: Resolver) => RenderContext|Error|Promise<RenderContext|Error>;
41
- type HookAfterRenderFunction = (ctx: RenderContext, resolver: Resolver, response: ResolverResponse) => ResolverResponse|Error|Promise<ResolverResponse|Error>;
41
+ type HookAfterRenderFunction = (ctx: RenderContext, resolver: Resolver, response: LambderResolverResponse) => LambderResolverResponse|Error|Promise<LambderResolverResponse|Error>;
42
42
  type HookFallbackFunction = (ctx: RenderContext, resolver: Resolver) => void|Promise<void>;
43
43
 
44
- type GlobalErrorHandlerFunction = (err: Error, ctx: RenderContext|null, response: ResponseBuilder) => ResolverResponse|Promise<ResolverResponse>;
45
- type RouteFallbackHandlerFunction = (ctx:RenderContext, resolver: Resolver) => ResolverResponse;
46
- type ApiFallbackHandlerFunction = (ctx:RenderContext, resolver: Resolver) => ResolverResponse;
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;
47
47
 
48
48
  type HookEventType = "created"|"beforeRender"|"afterRender"|"fallback";
49
- type HookListType = {
50
- priority: number,
51
- hookFn: HookCreatedFunction|HookBeforeRenderFunction|HookAfterRenderFunction|HookFallbackFunction,
52
- }[];
53
49
 
54
50
  export const createContext = (
55
51
  event: APIGatewayProxyEvent,
@@ -243,14 +239,14 @@ export default class Lambder {
243
239
  }
244
240
 
245
241
  public getResponseBuilder(){
246
- return new ResponseBuilder({
242
+ return new LambderResponseBuilder({
247
243
  isCorsEnabled: this.isCorsEnabled,
248
244
  publicPath: this.publicPath,
249
245
  apiVersion: this.apiVersion,
250
246
  });
251
247
  };
252
248
 
253
- private getResolver(resolve: (response: ResolverResponse) => void, reject: (err: Error) => void){
249
+ private getResolver(resolve: (response: LambderResolverResponse) => void, reject: (err: Error) => void){
254
250
  return new Resolver({
255
251
  isCorsEnabled: this.isCorsEnabled,
256
252
  publicPath: this.publicPath,
@@ -262,7 +258,7 @@ export default class Lambder {
262
258
  async render(
263
259
  event: APIGatewayProxyEvent,
264
260
  lambdaContext: Context
265
- ): Promise<ResolverResponse>{
261
+ ): Promise<LambderResolverResponse>{
266
262
  let eventRenderContext:RenderContext|null = null;
267
263
 
268
264
  try {
@@ -270,7 +266,7 @@ export default class Lambder {
270
266
  eventRenderContext = ctx;
271
267
 
272
268
  return await new Promise(async (
273
- resolve:(response: ResolverResponse)=>void,
269
+ resolve:(response: LambderResolverResponse)=>void,
274
270
  reject:(err: Error)=>void
275
271
  )=> {
276
272
  try{
@@ -1,4 +1,5 @@
1
1
  import Cookies from 'js-cookie';
2
+ import { LambderApiResponse } from './LambderResponseBuilder';
2
3
 
3
4
  type VoidFunction = ()=>void|Promise<void>;
4
5
  type FetchTracker = { apiName: string, done: boolean, fetchEndCalled: boolean };
@@ -80,7 +81,7 @@ export default class LambderCaller {
80
81
 
81
82
  };
82
83
 
83
- async api(apiName: string, payload?: any, headers?: Record<string, any>, options?: {
84
+ async api<T>(apiName: string, payload?: any, headers?: Record<string, any>, options?: {
84
85
  versionExpiredHandler?: VoidFunction,
85
86
  sessionExpiredHandler?: VoidFunction,
86
87
  messageHandler?: MessageHandler,
@@ -89,7 +90,7 @@ export default class LambderCaller {
89
90
  errorHandler?: ErrorHandler,
90
91
  fetchStartedHandler?: FetchStartEventHandler,
91
92
  fetchEndedHandler?: FetchEndEventHandler,
92
- }){
93
+ }): Promise<T|null>{
93
94
  const fetchTracker: FetchTracker = { apiName, done: false, fetchEndCalled: false };
94
95
  try {
95
96
  this.fetchTrackerList.push(fetchTracker);
@@ -108,7 +109,7 @@ export default class LambderCaller {
108
109
  }).then(res=>{
109
110
  if(res.status >= 500) throw new Error("Request failed: " + res.status + " - " + res.statusText);
110
111
  return res.json();
111
- });
112
+ }) as LambderApiResponse<T>;
112
113
  fetchTracker.done = true;
113
114
  if(this.fetchEndedHandler){
114
115
  fetchTracker.fetchEndCalled = true;
@@ -162,6 +163,7 @@ export default class LambderCaller {
162
163
  });
163
164
  }
164
165
  if(this.errorHandler){ this.errorHandler(wrappedError); }
166
+ return null;
165
167
  }
166
168
  };
167
169
  }
@@ -14,15 +14,23 @@ const CORS_HEADERS = convertToMultiHeader({
14
14
  "Access-Control-Allow-Methods": "OPTIONS,POST",
15
15
  });
16
16
 
17
- export type ResolverResponse = {
17
+ export type LambderResolverResponse = {
18
18
  statusCode: number,
19
19
  multiValueHeaders?: Record<string, string[]>,
20
20
  body: string | null,
21
21
  isBase64Encoded?: boolean,
22
22
  };
23
23
 
24
+ export type LambderApiResponse<T> = {
25
+ payload?: T | null;
26
+ versionExpired?: boolean;
27
+ sessionExpired?: boolean;
28
+ notAuthorized?: boolean;
29
+ message?: any;
30
+ errorMessage?: any;
31
+ }
24
32
 
25
- export default class ResponseBuilder {
33
+ export default class LambderResponseBuilder {
26
34
  private isCorsEnabled: boolean;
27
35
  private publicPath: string;
28
36
  private apiVersion: string|null;
@@ -56,14 +64,14 @@ export default class ResponseBuilder {
56
64
  return fs.existsSync(absolutePath) && fs.statSync(absolutePath).isFile();
57
65
  };
58
66
 
59
- raw(param: ResolverResponse){
67
+ raw(param: LambderResolverResponse){
60
68
  return param;
61
69
  };
62
70
 
63
71
  json(
64
72
  data: Record<string, any>,
65
73
  headers?: Record<string, string|string[]>
66
- ):ResolverResponse{
74
+ ):LambderResolverResponse{
67
75
  return this.raw({
68
76
  statusCode: 200,
69
77
  multiValueHeaders: {
@@ -75,7 +83,7 @@ export default class ResponseBuilder {
75
83
  });
76
84
  }
77
85
 
78
- xml(data: string):ResolverResponse{
86
+ xml(data: string):LambderResolverResponse{
79
87
  return this.raw({
80
88
  statusCode: 200,
81
89
  isBase64Encoded: true,
@@ -87,7 +95,7 @@ export default class ResponseBuilder {
87
95
  html(
88
96
  data: string,
89
97
  headers?: Record<string, string|string[]>,
90
- ):ResolverResponse{
98
+ ):LambderResolverResponse{
91
99
  return this.raw({
92
100
  statusCode: 200,
93
101
  isBase64Encoded: true,
@@ -99,7 +107,7 @@ export default class ResponseBuilder {
99
107
  status301(
100
108
  url: string,
101
109
  headers?: Record<string, string|string[]>,
102
- ):ResolverResponse{
110
+ ):LambderResolverResponse{
103
111
  return this.raw({
104
112
  statusCode: 301,
105
113
  multiValueHeaders: { "Location" : [url], ...convertToMultiHeader(headers) },
@@ -110,7 +118,7 @@ export default class ResponseBuilder {
110
118
  status404(
111
119
  data: string,
112
120
  headers?: Record<string, string|string[]>,
113
- ):ResolverResponse{
121
+ ):LambderResolverResponse{
114
122
  return this.raw({
115
123
  statusCode: 404,
116
124
  isBase64Encoded: true,
@@ -119,7 +127,7 @@ export default class ResponseBuilder {
119
127
  });
120
128
  };
121
129
 
122
- cors():ResolverResponse{
130
+ cors():LambderResolverResponse{
123
131
  return this.raw({
124
132
  statusCode: 200,
125
133
  multiValueHeaders: this.isCorsEnabled ? CORS_HEADERS: {},
@@ -131,7 +139,7 @@ export default class ResponseBuilder {
131
139
  fileBase64: string,
132
140
  mimeType: string,
133
141
  headers?: Record<string, string|string[]>,
134
- ):ResolverResponse{
142
+ ):LambderResolverResponse{
135
143
  return this.raw({
136
144
  statusCode: 200,
137
145
  isBase64Encoded: true,
@@ -144,7 +152,7 @@ export default class ResponseBuilder {
144
152
  filePath: string,
145
153
  headers?: Record<string, string|string[]>,
146
154
  fallbackFilePath?: string,
147
- ):ResolverResponse{
155
+ ):LambderResolverResponse{
148
156
  if(!this.checkFileExist(filePath)){
149
157
  if(fallbackFilePath && this.checkFileExist(fallbackFilePath)){
150
158
  return this.file(fallbackFilePath, headers);
@@ -158,23 +166,14 @@ export default class ResponseBuilder {
158
166
  return this.fileBase64(bodyBase64, mimeType || "", headers);
159
167
  };
160
168
 
161
- api(
169
+ api<T>(
162
170
  {
163
171
  payload,
164
172
  versionExpired, sessionExpired, notAuthorized,
165
173
  message = null, errorMessage = null,
166
- ...other
167
- }: {
168
- payload?: any;
169
- versionExpired?: boolean;
170
- sessionExpired?: boolean;
171
- notAuthorized?: boolean;
172
- message?: any;
173
- errorMessage?: any;
174
- },
174
+ }: LambderApiResponse<T>,
175
175
  headers?: Record<string, string|string[]>,
176
- ): ResolverResponse {
177
- if(Object.keys(other).length) console.log("ERROR: Unexpected key in result: " + Object.keys(other).join(", "));
176
+ ): LambderResolverResponse {
178
177
  return this.json({
179
178
  apiVersion: this.apiVersion,
180
179
  payload,
package/src/Resolver.ts CHANGED
@@ -1,22 +1,22 @@
1
- import ResponseBuilder, { ResolverResponse } from "./ResponseBuilder.js";
1
+ import LambderResponseBuilder, { LambderResolverResponse } from "./LambderResponseBuilder.js";
2
2
 
3
3
  type MethodType<T, M extends keyof T> = T[M] extends (...args: any[]) => any ? T[M] : never;
4
4
 
5
5
  interface DieResolverMethods {
6
- raw: MethodType<ResponseBuilder, 'raw'>;
7
- json: MethodType<ResponseBuilder, 'json'>;
8
- xml: MethodType<ResponseBuilder, 'xml'>;
9
- html: MethodType<ResponseBuilder, 'html'>;
10
- status301: MethodType<ResponseBuilder, 'status301'>;
11
- status404: MethodType<ResponseBuilder, 'status404'>;
12
- cors: MethodType<ResponseBuilder, 'cors'>;
13
- fileBase64: MethodType<ResponseBuilder, 'fileBase64'>;
14
- file: MethodType<ResponseBuilder, 'file'>;
15
- api: MethodType<ResponseBuilder, 'api'>;
6
+ raw: MethodType<LambderResponseBuilder, 'raw'>;
7
+ json: MethodType<LambderResponseBuilder, 'json'>;
8
+ xml: MethodType<LambderResponseBuilder, 'xml'>;
9
+ html: MethodType<LambderResponseBuilder, 'html'>;
10
+ status301: MethodType<LambderResponseBuilder, 'status301'>;
11
+ status404: MethodType<LambderResponseBuilder, 'status404'>;
12
+ cors: MethodType<LambderResponseBuilder, 'cors'>;
13
+ fileBase64: MethodType<LambderResponseBuilder, 'fileBase64'>;
14
+ file: MethodType<LambderResponseBuilder, 'file'>;
15
+ api: MethodType<LambderResponseBuilder, 'api'>;
16
16
  }
17
17
 
18
- export default class Resolver extends ResponseBuilder {
19
- public resolve: (response: ResolverResponse) => void;
18
+ export default class Resolver extends LambderResponseBuilder {
19
+ public resolve: (response: LambderResolverResponse) => void;
20
20
  public reject: (err: Error) => void;
21
21
  public die: DieResolverMethods;
22
22
 
@@ -26,7 +26,7 @@ export default class Resolver extends ResponseBuilder {
26
26
  isCorsEnabled: boolean,
27
27
  publicPath: string,
28
28
  apiVersion?: string|null,
29
- resolve: (response: ResolverResponse) => void,
29
+ resolve: (response: LambderResolverResponse) => void,
30
30
  reject: (err: Error) => void,
31
31
  }
32
32
  ){
@@ -49,10 +49,10 @@ export default class Resolver extends ResponseBuilder {
49
49
  }
50
50
 
51
51
  private autoResolve<
52
- T extends (...args: any[]) => ResolverResponse
53
- >(method: T): (...funcArgs: Parameters<T>) => ResolverResponse {
54
- return (...args: Parameters<T>): ResolverResponse => {
55
- const result: ResolverResponse = method.apply(this, args);
52
+ T extends (...args: any[]) => LambderResolverResponse
53
+ >(method: T): (...funcArgs: Parameters<T>) => LambderResolverResponse {
54
+ return (...args: Parameters<T>): LambderResolverResponse => {
55
+ const result: LambderResolverResponse = method.apply(this, args);
56
56
  this.resolve(result);
57
57
  return result;
58
58
  };
package/src/index.ts CHANGED
@@ -2,5 +2,5 @@ import Lambder from './Lambder.js';
2
2
 
3
3
  export default Lambder;
4
4
  export { default as LambderCaller } from "./LambderCaller.js";
5
- export { default as ResponseBuilder } from "./ResponseBuilder.js";
5
+ export { default as LambderResponseBuilder } from "./LambderResponseBuilder.js";
6
6
  export { default as Resolver } from "./Resolver.js";
@@ -1,35 +0,0 @@
1
- export type ResolverResponse = {
2
- statusCode: number;
3
- multiValueHeaders?: Record<string, string[]>;
4
- body: string | null;
5
- isBase64Encoded?: boolean;
6
- };
7
- export default class ResponseBuilder {
8
- private isCorsEnabled;
9
- private publicPath;
10
- private apiVersion;
11
- constructor({ isCorsEnabled, publicPath, apiVersion }: {
12
- isCorsEnabled: boolean;
13
- publicPath: string;
14
- apiVersion?: string | null;
15
- });
16
- private readFileSync;
17
- private checkFileExist;
18
- raw(param: ResolverResponse): ResolverResponse;
19
- json(data: Record<string, any>, headers?: Record<string, string | string[]>): ResolverResponse;
20
- xml(data: string): ResolverResponse;
21
- html(data: string, headers?: Record<string, string | string[]>): ResolverResponse;
22
- status301(url: string, headers?: Record<string, string | string[]>): ResolverResponse;
23
- status404(data: string, headers?: Record<string, string | string[]>): ResolverResponse;
24
- cors(): ResolverResponse;
25
- fileBase64(fileBase64: string, mimeType: string, headers?: Record<string, string | string[]>): ResolverResponse;
26
- file(filePath: string, headers?: Record<string, string | string[]>, fallbackFilePath?: string): ResolverResponse;
27
- api({ payload, versionExpired, sessionExpired, notAuthorized, message, errorMessage, ...other }: {
28
- payload?: any;
29
- versionExpired?: boolean;
30
- sessionExpired?: boolean;
31
- notAuthorized?: boolean;
32
- message?: any;
33
- errorMessage?: any;
34
- }, headers?: Record<string, string | string[]>): ResolverResponse;
35
- }