my-q-format-response-aws-lambda 1.0.63 → 2.0.3

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.
Files changed (3) hide show
  1. package/index.js +60 -38
  2. package/index.ts +68 -61
  3. package/package.json +1 -1
package/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseMessageResponse = exports.controlResponseNull = exports.normaliseMongoPaginate = exports.normaliseMongoFilter = exports.optionsPaginationParams = exports.messagesREST = exports.CreateResponse = exports.ResponseVO = exports.ResponseBodyVO = exports.StatusCode = exports.StatusResult = void 0;
3
+ exports.parseMessageResponse = exports.controlResponseNull = exports.normaliseMongoPaginate = exports.normaliseMongoFilter = exports.optionsPaginationParams = exports.messagesREST = exports.CreateResponse = exports.bodyToString = exports.ResponseBodyJSON = exports.ResponseBodyVOFull = exports.ResponseBodyVO = exports.ResponseBodyVOBase = exports.StatusCode = exports.StatusResult = void 0;
4
4
  class StatusResult {
5
5
  }
6
6
  exports.StatusResult = StatusResult;
@@ -61,7 +61,7 @@ StatusCode.Forbidden = 403;
61
61
  StatusCode.InternalServerError = 500;
62
62
  StatusCode.NotImplemented = 501;
63
63
  StatusCode.BadGateway = 502;
64
- class ResponseBodyVO {
64
+ class ResponseBodyVOBase {
65
65
  constructor() {
66
66
  this.statusResult = StatusResult.ok;
67
67
  this.message = '';
@@ -70,20 +70,35 @@ class ResponseBodyVO {
70
70
  this.error = null;
71
71
  this.info = null;
72
72
  this.identity = null;
73
+ }
74
+ }
75
+ exports.ResponseBodyVOBase = ResponseBodyVOBase;
76
+ class ResponseBodyVO extends ResponseBodyVOBase {
77
+ constructor() {
78
+ super(...arguments);
73
79
  this.redirectTo = undefined;
74
80
  this.token = null;
81
+ this.bodyWrap = true;
75
82
  }
76
83
  }
77
84
  exports.ResponseBodyVO = ResponseBodyVO;
78
- class ResponseVO {
85
+ class ResponseBodyVOFull extends ResponseBodyVO {
86
+ constructor() {
87
+ super(...arguments);
88
+ this.statusCode = StatusCode.OK;
89
+ }
90
+ }
91
+ exports.ResponseBodyVOFull = ResponseBodyVOFull;
92
+ class ResponseBodyJSON {
79
93
  constructor() {
80
94
  this.statusCode = StatusCode.OK;
81
95
  this.body = '';
82
96
  }
83
97
  }
84
- exports.ResponseVO = ResponseVO;
85
- class Result {
98
+ exports.ResponseBodyJSON = ResponseBodyJSON;
99
+ class Result extends ResponseBodyVOFull {
86
100
  constructor({ statusCode = StatusCode.OK, statusResult = StatusResult.ok, message, data = null, count = null, error = null, info = null, identity = null, redirectTo = undefined, token = null, bodyWrap = true, }) {
101
+ super();
87
102
  this.statusCode = statusCode;
88
103
  this.statusResult = statusResult;
89
104
  this.message = !message ? '' : message;
@@ -96,31 +111,32 @@ class Result {
96
111
  this.token = token;
97
112
  this.bodyWrap = bodyWrap;
98
113
  }
99
- /**
100
- * Serverless: According to the API Gateway specs, the body content must be stringified
101
- * If use to AWS Appsync need response value without body wrap
102
- */
103
- bodyToString() {
104
- let _err = this.error && this.error.message ? this.error.message : !this.error ? null : JSON.stringify(this.error);
105
- const valueBody = {
106
- statusResult: this.statusResult,
107
- message: this.message,
108
- data: this.data,
109
- count: this.count,
110
- error: _err,
111
- info: this.info,
112
- identity: this.identity,
113
- token: this.token,
114
- };
115
- if (this.redirectTo)
116
- valueBody.redirectTo = this.redirectTo;
117
- const valueBodyWrap = {
118
- statusCode: this.statusCode,
119
- body: JSON.stringify(valueBody),
120
- };
121
- return this.bodyWrap ? valueBodyWrap : valueBody;
122
- }
123
114
  }
115
+ /**
116
+ * Serverless: According to the API Gateway specs, the body content must be stringified
117
+ * If use to AWS Appsync need response value without body wrap
118
+ */
119
+ const bodyToString = (result) => {
120
+ let _err = result.error && result.error.message ? result.error.message : !result.error ? null : JSON.stringify(result.error);
121
+ const valueBody = {
122
+ statusResult: result.statusResult,
123
+ message: result.message,
124
+ data: result.data,
125
+ count: result.count,
126
+ error: _err,
127
+ info: result.info,
128
+ identity: result.identity,
129
+ token: result.token,
130
+ };
131
+ if (result.redirectTo)
132
+ valueBody.redirectTo = result.redirectTo;
133
+ const valueBodyWrap = {
134
+ statusCode: result.statusCode,
135
+ body: JSON.stringify(valueBody),
136
+ };
137
+ return result.bodyWrap ? valueBodyWrap : valueBody;
138
+ };
139
+ exports.bodyToString = bodyToString;
124
140
  class CreateResponse {
125
141
  /**
126
142
  * Success
@@ -141,7 +157,7 @@ class CreateResponse {
141
157
  identity,
142
158
  token,
143
159
  });
144
- return result.bodyToString();
160
+ return result;
145
161
  }
146
162
  /**
147
163
  * Created
@@ -159,7 +175,7 @@ class CreateResponse {
159
175
  info,
160
176
  identity,
161
177
  });
162
- return result.bodyToString();
178
+ return result;
163
179
  }
164
180
  /**
165
181
  * Update
@@ -177,7 +193,7 @@ class CreateResponse {
177
193
  info,
178
194
  identity,
179
195
  });
180
- return result.bodyToString();
196
+ return result;
181
197
  }
182
198
  /**
183
199
  * Update or Create
@@ -195,7 +211,7 @@ class CreateResponse {
195
211
  info,
196
212
  identity,
197
213
  });
198
- return result.bodyToString();
214
+ return result;
199
215
  }
200
216
  /**
201
217
  * Not Found
@@ -213,7 +229,7 @@ class CreateResponse {
213
229
  bodyWrap,
214
230
  identity,
215
231
  });
216
- return result.bodyToString();
232
+ return result;
217
233
  }
218
234
  /**
219
235
  * Error
@@ -232,7 +248,7 @@ class CreateResponse {
232
248
  bodyWrap,
233
249
  identity,
234
250
  });
235
- return result.bodyToString();
251
+ return result;
236
252
  }
237
253
  /**
238
254
  * Unauthorized
@@ -251,7 +267,7 @@ class CreateResponse {
251
267
  bodyWrap,
252
268
  identity,
253
269
  });
254
- return result.bodyToString();
270
+ return result;
255
271
  }
256
272
  /**
257
273
  * Redirect
@@ -271,7 +287,7 @@ class CreateResponse {
271
287
  bodyWrap,
272
288
  identity,
273
289
  });
274
- return result.bodyToString();
290
+ return result;
275
291
  }
276
292
  /**
277
293
  * Custom
@@ -295,7 +311,7 @@ class CreateResponse {
295
311
  info,
296
312
  identity,
297
313
  });
298
- return result.bodyToString();
314
+ return result;
299
315
  }
300
316
  }
301
317
  exports.CreateResponse = CreateResponse;
@@ -404,6 +420,12 @@ const messagesREST = (prefix, suffix = '') => {
404
420
  MARK_SYSTEM: `${prefix}_MARK_SYSTEM${suffix}`,
405
421
  NOT_MARK_SYSTEM: `${prefix}_NOT_MARK_SYSTEM${suffix}`,
406
422
  ERROR_MARK_SYSTEM: `${prefix}_ERROR_MARK_SYSTEM${suffix}`,
423
+ GENERATE_PDF: `${prefix}_GENERATE_PDF${suffix}`,
424
+ NOT_GENERATE_PDF: `${prefix}_NOT_MGENERATE_PDF${suffix}`,
425
+ ERROR_GENERATE_PDF: `${prefix}_ERROR_GENERATE_PDF${suffix}`,
426
+ GENERATE_XLS: `${prefix}_GENERATE_PDF${suffix}`,
427
+ NOT_GENERATE_XLS: `${prefix}_NOT_MGENERATE_XLS${suffix}`,
428
+ ERROR_GENERATE_XLS: `${prefix}_ERROR_GENERATE_XLS${suffix}`,
407
429
  };
408
430
  };
409
431
  exports.messagesREST = messagesREST;
package/index.ts CHANGED
@@ -89,7 +89,7 @@ interface TResultIn {
89
89
  identity?: TIdentity
90
90
  redirectTo?: TRedirectTo
91
91
  token?: TToken
92
- bodyWrap: boolean
92
+ bodyWrap?: boolean
93
93
  }
94
94
 
95
95
  interface TFuncParams {
@@ -106,7 +106,7 @@ interface TFuncParams {
106
106
  bodyWrap?: boolean
107
107
  }
108
108
 
109
- export class ResponseBodyVO {
109
+ export class ResponseBodyVOBase {
110
110
  statusResult: StatusResult = StatusResult.ok
111
111
  message: string = ''
112
112
  data: TData = null
@@ -114,30 +114,26 @@ export class ResponseBodyVO {
114
114
  error: TError = null
115
115
  info: TInfo = null
116
116
  identity: TIdentity = null
117
+ }
118
+
119
+ export class ResponseBodyVO extends ResponseBodyVOBase {
117
120
  redirectTo?: TRedirectTo = undefined
118
121
  token?: TToken = null
122
+ bodyWrap?: boolean = true
119
123
  }
120
124
 
121
- export class ResponseVO {
122
- statusCode: StatusCode = StatusCode.OK
125
+ export class ResponseBodyVOFull extends ResponseBodyVO {
126
+ statusCode?: StatusCode = StatusCode.OK
127
+ }
128
+
129
+ export class ResponseBodyJSON {
130
+ statusCode?: StatusCode = StatusCode.OK
123
131
  body: string = ''
124
132
  }
125
133
 
126
- export type ResponseVoAWS = ResponseVO | ResponseBodyVO
127
-
128
- class Result {
129
- private statusCode: StatusCode
130
- private statusResult: StatusResult
131
- private message: string
132
- private data: TData
133
- private count: TCount
134
- private error: any
135
- private info: any
136
- private identity: any
137
- private redirectTo: TRedirectTo
138
- private token: TToken
139
- private bodyWrap: boolean
134
+ export type ResponseVoAWS = ResponseBodyJSON | ResponseBodyVO
140
135
 
136
+ class Result extends ResponseBodyVOFull {
141
137
  constructor({
142
138
  statusCode = StatusCode.OK,
143
139
  statusResult = StatusResult.ok,
@@ -151,6 +147,7 @@ class Result {
151
147
  token = null,
152
148
  bodyWrap = true,
153
149
  }: TResultIn) {
150
+ super()
154
151
  this.statusCode = statusCode
155
152
  this.statusResult = statusResult
156
153
  this.message = !message ? '' : message
@@ -162,34 +159,36 @@ class Result {
162
159
  this.redirectTo = redirectTo
163
160
  this.token = token
164
161
  this.bodyWrap = bodyWrap
165
- }
162
+ }
163
+ }
164
+
166
165
 
167
166
  /**
168
167
  * Serverless: According to the API Gateway specs, the body content must be stringified
169
168
  * If use to AWS Appsync need response value without body wrap
170
169
  */
171
- bodyToString(): ResponseVoAWS {
172
- let _err = this.error && this.error.message ? this.error.message : !this.error ? null : JSON.stringify(this.error)
173
-
174
- const valueBody: ResponseBodyVO = {
175
- statusResult: this.statusResult,
176
- message: this.message,
177
- data: this.data,
178
- count: this.count,
170
+ export const bodyToString = (result: ResponseBodyVOFull): ResponseVoAWS => {
171
+ let _err = result.error && result.error.message ? result.error.message : !result.error ? null : JSON.stringify(result.error)
172
+
173
+ const valueBody: ResponseBodyVOFull = {
174
+ statusResult: result.statusResult,
175
+ message: result.message,
176
+ data: result.data,
177
+ count: result.count,
179
178
  error: _err,
180
- info: this.info,
181
- identity: this.identity,
182
- token: this.token,
179
+ info: result.info,
180
+ identity: result.identity,
181
+ token: result.token,
183
182
  }
184
- if (this.redirectTo) valueBody.redirectTo = this.redirectTo
185
- const valueBodyWrap: ResponseVO = {
186
- statusCode: this.statusCode,
183
+ if (result.redirectTo) valueBody.redirectTo = result.redirectTo
184
+ const valueBodyWrap: ResponseBodyJSON = {
185
+ statusCode: result.statusCode,
187
186
  body: JSON.stringify(valueBody),
188
187
  }
189
188
 
190
- return this.bodyWrap ? valueBodyWrap : valueBody
189
+ return result.bodyWrap ? valueBodyWrap : valueBody
191
190
  }
192
- }
191
+
193
192
 
194
193
  export class CreateResponse {
195
194
  /**
@@ -207,7 +206,7 @@ export class CreateResponse {
207
206
  info = null,
208
207
  identity = null,
209
208
  token = null,
210
- }: TFuncParams): ResponseVoAWS {
209
+ }: TFuncParams): ResponseBodyVO {
211
210
  const result = new Result({
212
211
  statusCode: StatusCode.OK,
213
212
  statusResult: StatusResult.ok,
@@ -218,8 +217,8 @@ export class CreateResponse {
218
217
  info,
219
218
  identity,
220
219
  token,
221
- })
222
- return result.bodyToString()
220
+ }) as ResponseBodyVOFull
221
+ return result
223
222
  }
224
223
 
225
224
  /**
@@ -234,7 +233,7 @@ export class CreateResponse {
234
233
  bodyWrap = true,
235
234
  info = null,
236
235
  identity = null,
237
- }: TFuncParams): ResponseVoAWS {
236
+ }: TFuncParams): ResponseBodyVO {
238
237
  const result = new Result({
239
238
  statusCode: StatusCode.Created,
240
239
  statusResult: StatusResult.ok,
@@ -243,8 +242,8 @@ export class CreateResponse {
243
242
  bodyWrap,
244
243
  info,
245
244
  identity,
246
- })
247
- return result.bodyToString()
245
+ }) as ResponseBodyVOFull
246
+ return result
248
247
  }
249
248
 
250
249
  /**
@@ -259,7 +258,7 @@ export class CreateResponse {
259
258
  bodyWrap = true,
260
259
  info = null,
261
260
  identity = null,
262
- }: TFuncParams): ResponseVoAWS {
261
+ }: TFuncParams): ResponseBodyVO {
263
262
  const result = new Result({
264
263
  statusCode: StatusCode.OK,
265
264
  statusResult: StatusResult.ok,
@@ -268,8 +267,8 @@ export class CreateResponse {
268
267
  bodyWrap,
269
268
  info,
270
269
  identity,
271
- })
272
- return result.bodyToString()
270
+ }) as ResponseBodyVOFull
271
+ return result
273
272
  }
274
273
 
275
274
  /**
@@ -284,7 +283,7 @@ export class CreateResponse {
284
283
  bodyWrap = true,
285
284
  info = null,
286
285
  identity = null,
287
- }: TFuncParams): ResponseVoAWS {
286
+ }: TFuncParams): ResponseBodyVO {
288
287
  const result = new Result({
289
288
  statusCode: StatusCode.OK,
290
289
  statusResult: StatusResult.ok,
@@ -293,8 +292,8 @@ export class CreateResponse {
293
292
  bodyWrap,
294
293
  info,
295
294
  identity,
296
- })
297
- return result.bodyToString()
295
+ }) as ResponseBodyVOFull
296
+ return result
298
297
  }
299
298
 
300
299
  /**
@@ -303,7 +302,7 @@ export class CreateResponse {
303
302
  * @param message
304
303
  * @param bodyWrap
305
304
  */
306
- static notFound({ error = null, message = '', bodyWrap = true, identity = null }: TFuncParams): ResponseVoAWS {
305
+ static notFound({ error = null, message = '', bodyWrap = true, identity = null }: TFuncParams): ResponseBodyVO {
307
306
  const result = new Result({
308
307
  statusCode: StatusCode.NotFound,
309
308
  statusResult: StatusResult.notFound,
@@ -312,8 +311,8 @@ export class CreateResponse {
312
311
  error,
313
312
  bodyWrap,
314
313
  identity,
315
- })
316
- return result.bodyToString()
314
+ }) as ResponseBodyVOFull
315
+ return result
317
316
  }
318
317
 
319
318
  /**
@@ -329,7 +328,7 @@ export class CreateResponse {
329
328
  message = 'Error',
330
329
  bodyWrap = true,
331
330
  identity = null,
332
- }: TFuncParams): ResponseVoAWS {
331
+ }: TFuncParams): ResponseBodyVO {
333
332
  const result = new Result({
334
333
  statusCode,
335
334
  statusResult: StatusResult.error,
@@ -338,8 +337,8 @@ export class CreateResponse {
338
337
  message,
339
338
  bodyWrap,
340
339
  identity,
341
- })
342
- return result.bodyToString()
340
+ }) as ResponseBodyVOFull
341
+ return result
343
342
  }
344
343
 
345
344
  /**
@@ -355,7 +354,7 @@ export class CreateResponse {
355
354
  message = 'Unauthorized',
356
355
  bodyWrap = true,
357
356
  identity = null,
358
- }: TFuncParams): ResponseVoAWS {
357
+ }: TFuncParams): ResponseBodyVO {
359
358
  const result = new Result({
360
359
  statusCode,
361
360
  statusResult: StatusResult.unauthorized,
@@ -364,8 +363,8 @@ export class CreateResponse {
364
363
  message,
365
364
  bodyWrap,
366
365
  identity,
367
- })
368
- return result.bodyToString()
366
+ }) as ResponseBodyVOFull
367
+ return result
369
368
  }
370
369
 
371
370
  /**
@@ -381,7 +380,7 @@ export class CreateResponse {
381
380
  bodyWrap = true,
382
381
  redirectTo = '',
383
382
  identity = null,
384
- }: TFuncParams): ResponseVoAWS {
383
+ }: TFuncParams): ResponseBodyVO {
385
384
  const result = new Result({
386
385
  statusCode,
387
386
  statusResult: StatusResult.needRedirect,
@@ -391,8 +390,8 @@ export class CreateResponse {
391
390
  redirectTo,
392
391
  bodyWrap,
393
392
  identity,
394
- })
395
- return result.bodyToString()
393
+ }) as ResponseBodyVOFull
394
+ return result
396
395
  }
397
396
 
398
397
  /**
@@ -426,8 +425,8 @@ export class CreateResponse {
426
425
  bodyWrap,
427
426
  info,
428
427
  identity,
429
- })
430
- return result.bodyToString()
428
+ }) as ResponseBodyVOFull
429
+ return result
431
430
  }
432
431
  }
433
432
 
@@ -572,6 +571,14 @@ export const messagesREST = (prefix: string, suffix: string = ''): Record<string
572
571
  MARK_SYSTEM: `${prefix}_MARK_SYSTEM${suffix}`,
573
572
  NOT_MARK_SYSTEM: `${prefix}_NOT_MARK_SYSTEM${suffix}`,
574
573
  ERROR_MARK_SYSTEM: `${prefix}_ERROR_MARK_SYSTEM${suffix}`,
574
+
575
+ GENERATE_PDF: `${prefix}_GENERATE_PDF${suffix}`,
576
+ NOT_GENERATE_PDF: `${prefix}_NOT_MGENERATE_PDF${suffix}`,
577
+ ERROR_GENERATE_PDF: `${prefix}_ERROR_GENERATE_PDF${suffix}`,
578
+
579
+ GENERATE_XLS: `${prefix}_GENERATE_PDF${suffix}`,
580
+ NOT_GENERATE_XLS: `${prefix}_NOT_MGENERATE_XLS${suffix}`,
581
+ ERROR_GENERATE_XLS: `${prefix}_ERROR_GENERATE_XLS${suffix}`,
575
582
  }
576
583
  }
577
584
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "my-q-format-response-aws-lambda",
3
- "version": "1.0.63",
3
+ "version": "2.0.3",
4
4
  "homepage": "https://github.com/zhukyuri/my-q-format-response-aws-lambda",
5
5
  "description": "my-q-format-response-aws-lambda",
6
6
  "main": "index.js",