serverless-event-orchestrator 1.0.1 → 1.2.0
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/dispatcher.d.ts.map +1 -1
- package/dist/dispatcher.js +16 -0
- package/dist/dispatcher.js.map +1 -1
- package/dist/http/response.d.ts +15 -13
- package/dist/http/response.d.ts.map +1 -1
- package/dist/http/response.js +22 -13
- package/dist/http/response.js.map +1 -1
- package/package.json +1 -1
- package/src/dispatcher.ts +17 -0
- package/src/http/response.ts +34 -24
package/dist/dispatcher.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgB,MAAM,4BAA4B,CAAC;AACrE,OAAO,EACL,cAAc,EASd,kBAAkB,EAEnB,MAAM,mBAAmB,CAAC;AAO3B;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,SAAS,CAMrD;AAyOD;;GAEG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,cAAc,EACtB,MAAM,GAAE,kBAAuB,GAC9B,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAgB,MAAM,4BAA4B,CAAC;AACrE,OAAO,EACL,cAAc,EASd,kBAAkB,EAEnB,MAAM,mBAAmB,CAAC;AAO3B;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,SAAS,CAMrD;AAyOD;;GAEG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,cAAc,EACtB,MAAM,GAAE,kBAAuB,GAC9B,OAAO,CAAC,GAAG,CAAC,CAwJd;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,GAAE,kBAAuB;sBAE5C,GAAG,UAAU,cAAc;;EAGhD"}
|
package/dist/dispatcher.js
CHANGED
|
@@ -235,6 +235,22 @@ async function dispatchEvent(event, routes, config = {}) {
|
|
|
235
235
|
const method = event.httpMethod?.toLowerCase();
|
|
236
236
|
const routePattern = event.resource || event.path;
|
|
237
237
|
const actualPath = event.path || event.resource;
|
|
238
|
+
// Handle CORS preflight requests automatically
|
|
239
|
+
if (method === 'options') {
|
|
240
|
+
if (debug) {
|
|
241
|
+
console.log('[SEO] Handling OPTIONS preflight request');
|
|
242
|
+
}
|
|
243
|
+
return {
|
|
244
|
+
statusCode: 204,
|
|
245
|
+
headers: {
|
|
246
|
+
'Access-Control-Allow-Origin': '*',
|
|
247
|
+
'Access-Control-Allow-Headers': 'Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token,X-App-Version,X-Platform',
|
|
248
|
+
'Access-Control-Allow-Methods': 'GET,POST,PUT,PATCH,DELETE,OPTIONS',
|
|
249
|
+
'Access-Control-Max-Age': '86400',
|
|
250
|
+
},
|
|
251
|
+
body: '',
|
|
252
|
+
};
|
|
253
|
+
}
|
|
238
254
|
if (debug) {
|
|
239
255
|
console.log('[SEO] Method:', method, 'Path:', routePattern, 'Actual:', actualPath);
|
|
240
256
|
}
|
package/dist/dispatcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":";;AAuBA,0CAMC;AA4OD,
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"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"}
|
package/dist/http/response.d.ts
CHANGED
|
@@ -50,50 +50,52 @@ export declare const DefaultResponseCode: {
|
|
|
50
50
|
readonly INTERNAL_ERROR: "INTERNAL_ERROR";
|
|
51
51
|
};
|
|
52
52
|
/**
|
|
53
|
-
* Creates a standardized HTTP response
|
|
53
|
+
* Creates a standardized HTTP response.
|
|
54
|
+
* Automatically handles data/message normalization to ensure consistent structure.
|
|
55
|
+
*
|
|
54
56
|
* @param statusCode - HTTP status code
|
|
55
|
-
* @param data - Response payload
|
|
56
|
-
* @param code - Custom response code
|
|
57
|
-
* @param message - Optional message
|
|
57
|
+
* @param data - Response payload (will be placed in 'data' field)
|
|
58
|
+
* @param code - Custom response code (Domain-specific)
|
|
59
|
+
* @param message - Optional message (if provided and data is null, message content will be put into 'data' for backward compatibility if needed, but the library now prefers explicit data)
|
|
58
60
|
* @param headers - Optional headers
|
|
59
61
|
*/
|
|
60
62
|
export declare function createStandardResponse<T, C = string>(statusCode: number, data?: T, code?: C, message?: string, headers?: Record<string, string>): HttpResponse;
|
|
61
63
|
/**
|
|
62
64
|
* Success response (200 OK)
|
|
63
65
|
*/
|
|
64
|
-
export declare function successResponse<T>(data?: T, code?:
|
|
66
|
+
export declare function successResponse<T, C = string>(data?: T, code?: C, headers?: Record<string, string>): HttpResponse;
|
|
65
67
|
/**
|
|
66
68
|
* Created response (201 Created)
|
|
67
69
|
*/
|
|
68
|
-
export declare function createdResponse<T>(data?: T, code?:
|
|
70
|
+
export declare function createdResponse<T, C = string>(data?: T, code?: C, headers?: Record<string, string>): HttpResponse;
|
|
69
71
|
/**
|
|
70
72
|
* Bad request response (400)
|
|
71
73
|
*/
|
|
72
|
-
export declare function badRequestResponse(message?: string, code?:
|
|
74
|
+
export declare function badRequestResponse<C = string>(message?: string, code?: C, headers?: Record<string, string>): HttpResponse;
|
|
73
75
|
/**
|
|
74
76
|
* Unauthorized response (401)
|
|
75
77
|
*/
|
|
76
|
-
export declare function unauthorizedResponse(message?: string, code?:
|
|
78
|
+
export declare function unauthorizedResponse<C = string>(message?: string, code?: C, headers?: Record<string, string>): HttpResponse;
|
|
77
79
|
/**
|
|
78
80
|
* Forbidden response (403)
|
|
79
81
|
*/
|
|
80
|
-
export declare function forbiddenResponse(message?: string, code?:
|
|
82
|
+
export declare function forbiddenResponse<C = string>(message?: string, code?: C, headers?: Record<string, string>): HttpResponse;
|
|
81
83
|
/**
|
|
82
84
|
* Not found response (404)
|
|
83
85
|
*/
|
|
84
|
-
export declare function notFoundResponse(message?: string, code?:
|
|
86
|
+
export declare function notFoundResponse<C = string>(message?: string, code?: C, headers?: Record<string, string>): HttpResponse;
|
|
85
87
|
/**
|
|
86
88
|
* Conflict response (409)
|
|
87
89
|
*/
|
|
88
|
-
export declare function conflictResponse(message?: string, code?:
|
|
90
|
+
export declare function conflictResponse<C = string>(message?: string, code?: C, headers?: Record<string, string>): HttpResponse;
|
|
89
91
|
/**
|
|
90
92
|
* Validation error response (422)
|
|
91
93
|
*/
|
|
92
|
-
export declare function validationErrorResponse(message?: string, code?:
|
|
94
|
+
export declare function validationErrorResponse<C = string>(message?: string, code?: C, headers?: Record<string, string>): HttpResponse;
|
|
93
95
|
/**
|
|
94
96
|
* Internal server error response (500)
|
|
95
97
|
*/
|
|
96
|
-
export declare function internalErrorResponse(message?: string, code?:
|
|
98
|
+
export declare function internalErrorResponse<C = string>(message?: string, code?: C, headers?: Record<string, string>): HttpResponse;
|
|
97
99
|
/**
|
|
98
100
|
* Custom error response with automatic status resolution
|
|
99
101
|
* @param customCode - Your domain-specific error code
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/http/response.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,oBAAY,UAAU;IACpB,EAAE,MAAM;IACR,OAAO,MAAM;IACb,UAAU,MAAM;IAChB,WAAW,MAAM;IACjB,YAAY,MAAM;IAClB,SAAS,MAAM;IACf,SAAS,MAAM;IACf,QAAQ,MAAM;IACd,oBAAoB,MAAM;IAC1B,qBAAqB,MAAM;IAC3B,mBAAmB,MAAM;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,MAAM;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;CAUtB,CAAC;AAEX
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/http/response.ts"],"names":[],"mappings":"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"}
|
package/dist/http/response.js
CHANGED
|
@@ -48,15 +48,21 @@ exports.DefaultResponseCode = {
|
|
|
48
48
|
INTERNAL_ERROR: 'INTERNAL_ERROR',
|
|
49
49
|
};
|
|
50
50
|
/**
|
|
51
|
-
* Creates a standardized HTTP response
|
|
51
|
+
* Creates a standardized HTTP response.
|
|
52
|
+
* Automatically handles data/message normalization to ensure consistent structure.
|
|
53
|
+
*
|
|
52
54
|
* @param statusCode - HTTP status code
|
|
53
|
-
* @param data - Response payload
|
|
54
|
-
* @param code - Custom response code
|
|
55
|
-
* @param message - Optional message
|
|
55
|
+
* @param data - Response payload (will be placed in 'data' field)
|
|
56
|
+
* @param code - Custom response code (Domain-specific)
|
|
57
|
+
* @param message - Optional message (if provided and data is null, message content will be put into 'data' for backward compatibility if needed, but the library now prefers explicit data)
|
|
56
58
|
* @param headers - Optional headers
|
|
57
59
|
*/
|
|
58
60
|
function createStandardResponse(statusCode, data, code, message, headers) {
|
|
59
61
|
const responseCode = code ?? getDefaultCodeForStatus(statusCode);
|
|
62
|
+
// Normalización automática:
|
|
63
|
+
// Si tenemos un mensaje pero no data, y el status es error,
|
|
64
|
+
// podríamos querer que el mensaje sea la descripción en data.
|
|
65
|
+
// Pero lo más limpio es seguir la estructura: { status, code, data, message }
|
|
60
66
|
const body = {
|
|
61
67
|
status: statusCode,
|
|
62
68
|
code: responseCode,
|
|
@@ -68,6 +74,9 @@ function createStandardResponse(statusCode, data, code, message, headers) {
|
|
|
68
74
|
body: JSON.stringify(body, null, 2),
|
|
69
75
|
headers: {
|
|
70
76
|
'Content-Type': 'application/json',
|
|
77
|
+
'Access-Control-Allow-Origin': '*',
|
|
78
|
+
'Access-Control-Allow-Headers': 'Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token,X-App-Version,X-Platform',
|
|
79
|
+
'Access-Control-Allow-Methods': 'GET,POST,PUT,PATCH,DELETE,OPTIONS',
|
|
71
80
|
...headers,
|
|
72
81
|
},
|
|
73
82
|
};
|
|
@@ -101,55 +110,55 @@ function getDefaultCodeForStatus(status) {
|
|
|
101
110
|
* Success response (200 OK)
|
|
102
111
|
*/
|
|
103
112
|
function successResponse(data, code, headers) {
|
|
104
|
-
return createStandardResponse(HttpStatus.OK, data, code
|
|
113
|
+
return createStandardResponse(HttpStatus.OK, data, code, undefined, headers);
|
|
105
114
|
}
|
|
106
115
|
/**
|
|
107
116
|
* Created response (201 Created)
|
|
108
117
|
*/
|
|
109
118
|
function createdResponse(data, code, headers) {
|
|
110
|
-
return createStandardResponse(HttpStatus.CREATED, data, code
|
|
119
|
+
return createStandardResponse(HttpStatus.CREATED, data, code, undefined, headers);
|
|
111
120
|
}
|
|
112
121
|
/**
|
|
113
122
|
* Bad request response (400)
|
|
114
123
|
*/
|
|
115
124
|
function badRequestResponse(message, code, headers) {
|
|
116
|
-
return createStandardResponse(HttpStatus.BAD_REQUEST, undefined, code
|
|
125
|
+
return createStandardResponse(HttpStatus.BAD_REQUEST, undefined, code, message, headers);
|
|
117
126
|
}
|
|
118
127
|
/**
|
|
119
128
|
* Unauthorized response (401)
|
|
120
129
|
*/
|
|
121
130
|
function unauthorizedResponse(message, code, headers) {
|
|
122
|
-
return createStandardResponse(HttpStatus.UNAUTHORIZED, undefined, code
|
|
131
|
+
return createStandardResponse(HttpStatus.UNAUTHORIZED, undefined, code, message, headers);
|
|
123
132
|
}
|
|
124
133
|
/**
|
|
125
134
|
* Forbidden response (403)
|
|
126
135
|
*/
|
|
127
136
|
function forbiddenResponse(message, code, headers) {
|
|
128
|
-
return createStandardResponse(HttpStatus.FORBIDDEN, undefined, code
|
|
137
|
+
return createStandardResponse(HttpStatus.FORBIDDEN, undefined, code, message, headers);
|
|
129
138
|
}
|
|
130
139
|
/**
|
|
131
140
|
* Not found response (404)
|
|
132
141
|
*/
|
|
133
142
|
function notFoundResponse(message, code, headers) {
|
|
134
|
-
return createStandardResponse(HttpStatus.NOT_FOUND, undefined, code
|
|
143
|
+
return createStandardResponse(HttpStatus.NOT_FOUND, undefined, code, message, headers);
|
|
135
144
|
}
|
|
136
145
|
/**
|
|
137
146
|
* Conflict response (409)
|
|
138
147
|
*/
|
|
139
148
|
function conflictResponse(message, code, headers) {
|
|
140
|
-
return createStandardResponse(HttpStatus.CONFLICT, undefined, code
|
|
149
|
+
return createStandardResponse(HttpStatus.CONFLICT, undefined, code, message, headers);
|
|
141
150
|
}
|
|
142
151
|
/**
|
|
143
152
|
* Validation error response (422)
|
|
144
153
|
*/
|
|
145
154
|
function validationErrorResponse(message, code, headers) {
|
|
146
|
-
return createStandardResponse(HttpStatus.UNPROCESSABLE_ENTITY, undefined, code
|
|
155
|
+
return createStandardResponse(HttpStatus.UNPROCESSABLE_ENTITY, undefined, code, message, headers);
|
|
147
156
|
}
|
|
148
157
|
/**
|
|
149
158
|
* Internal server error response (500)
|
|
150
159
|
*/
|
|
151
160
|
function internalErrorResponse(message, code, headers) {
|
|
152
|
-
return createStandardResponse(HttpStatus.INTERNAL_SERVER_ERROR, undefined, code
|
|
161
|
+
return createStandardResponse(HttpStatus.INTERNAL_SERVER_ERROR, undefined, code, message, headers);
|
|
153
162
|
}
|
|
154
163
|
/**
|
|
155
164
|
* Custom error response with automatic status resolution
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/http/response.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/http/response.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "serverless-event-orchestrator",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "A lightweight, type-safe event dispatcher and middleware orchestrator for AWS Lambda. Designed for hexagonal architectures with support for segmented routing (public, private, backoffice), Cognito User Pool validation, and built-in infrastructure middlewares.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
package/src/dispatcher.ts
CHANGED
|
@@ -286,6 +286,23 @@ export async function dispatchEvent(
|
|
|
286
286
|
const routePattern = event.resource || event.path;
|
|
287
287
|
const actualPath = event.path || event.resource;
|
|
288
288
|
|
|
289
|
+
// Handle CORS preflight requests automatically
|
|
290
|
+
if (method === 'options') {
|
|
291
|
+
if (debug) {
|
|
292
|
+
console.log('[SEO] Handling OPTIONS preflight request');
|
|
293
|
+
}
|
|
294
|
+
return {
|
|
295
|
+
statusCode: 204,
|
|
296
|
+
headers: {
|
|
297
|
+
'Access-Control-Allow-Origin': '*',
|
|
298
|
+
'Access-Control-Allow-Headers': 'Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token,X-App-Version,X-Platform',
|
|
299
|
+
'Access-Control-Allow-Methods': 'GET,POST,PUT,PATCH,DELETE,OPTIONS',
|
|
300
|
+
'Access-Control-Max-Age': '86400',
|
|
301
|
+
},
|
|
302
|
+
body: '',
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
|
|
289
306
|
if (debug) {
|
|
290
307
|
console.log('[SEO] Method:', method, 'Path:', routePattern, 'Actual:', actualPath);
|
|
291
308
|
}
|
package/src/http/response.ts
CHANGED
|
@@ -55,11 +55,13 @@ export const DefaultResponseCode = {
|
|
|
55
55
|
} as const;
|
|
56
56
|
|
|
57
57
|
/**
|
|
58
|
-
* Creates a standardized HTTP response
|
|
58
|
+
* Creates a standardized HTTP response.
|
|
59
|
+
* Automatically handles data/message normalization to ensure consistent structure.
|
|
60
|
+
*
|
|
59
61
|
* @param statusCode - HTTP status code
|
|
60
|
-
* @param data - Response payload
|
|
61
|
-
* @param code - Custom response code
|
|
62
|
-
* @param message - Optional message
|
|
62
|
+
* @param data - Response payload (will be placed in 'data' field)
|
|
63
|
+
* @param code - Custom response code (Domain-specific)
|
|
64
|
+
* @param message - Optional message (if provided and data is null, message content will be put into 'data' for backward compatibility if needed, but the library now prefers explicit data)
|
|
63
65
|
* @param headers - Optional headers
|
|
64
66
|
*/
|
|
65
67
|
export function createStandardResponse<T, C = string>(
|
|
@@ -69,9 +71,14 @@ export function createStandardResponse<T, C = string>(
|
|
|
69
71
|
message?: string,
|
|
70
72
|
headers?: Record<string, string>
|
|
71
73
|
): HttpResponse {
|
|
72
|
-
const responseCode = code ?? getDefaultCodeForStatus(statusCode);
|
|
74
|
+
const responseCode = code ?? (getDefaultCodeForStatus(statusCode) as unknown as C);
|
|
73
75
|
|
|
74
|
-
|
|
76
|
+
// Normalización automática:
|
|
77
|
+
// Si tenemos un mensaje pero no data, y el status es error,
|
|
78
|
+
// podríamos querer que el mensaje sea la descripción en data.
|
|
79
|
+
// Pero lo más limpio es seguir la estructura: { status, code, data, message }
|
|
80
|
+
|
|
81
|
+
const body: StandardResponse<T, C> = {
|
|
75
82
|
status: statusCode,
|
|
76
83
|
code: responseCode,
|
|
77
84
|
...(data !== undefined && { data }),
|
|
@@ -83,6 +90,9 @@ export function createStandardResponse<T, C = string>(
|
|
|
83
90
|
body: JSON.stringify(body, null, 2),
|
|
84
91
|
headers: {
|
|
85
92
|
'Content-Type': 'application/json',
|
|
93
|
+
'Access-Control-Allow-Origin': '*',
|
|
94
|
+
'Access-Control-Allow-Headers': 'Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token,X-App-Version,X-Platform',
|
|
95
|
+
'Access-Control-Allow-Methods': 'GET,POST,PUT,PATCH,DELETE,OPTIONS',
|
|
86
96
|
...headers,
|
|
87
97
|
},
|
|
88
98
|
};
|
|
@@ -117,64 +127,64 @@ function getDefaultCodeForStatus(status: number): string {
|
|
|
117
127
|
/**
|
|
118
128
|
* Success response (200 OK)
|
|
119
129
|
*/
|
|
120
|
-
export function successResponse<T>(data?: T, code?:
|
|
121
|
-
return createStandardResponse(HttpStatus.OK, data, code
|
|
130
|
+
export function successResponse<T, C = string>(data?: T, code?: C, headers?: Record<string, string>): HttpResponse {
|
|
131
|
+
return createStandardResponse(HttpStatus.OK, data, code, undefined, headers);
|
|
122
132
|
}
|
|
123
133
|
|
|
124
134
|
/**
|
|
125
135
|
* Created response (201 Created)
|
|
126
136
|
*/
|
|
127
|
-
export function createdResponse<T>(data?: T, code?:
|
|
128
|
-
return createStandardResponse(HttpStatus.CREATED, data, code
|
|
137
|
+
export function createdResponse<T, C = string>(data?: T, code?: C, headers?: Record<string, string>): HttpResponse {
|
|
138
|
+
return createStandardResponse(HttpStatus.CREATED, data, code, undefined, headers);
|
|
129
139
|
}
|
|
130
140
|
|
|
131
141
|
/**
|
|
132
142
|
* Bad request response (400)
|
|
133
143
|
*/
|
|
134
|
-
export function badRequestResponse(message?: string, code?:
|
|
135
|
-
return createStandardResponse(HttpStatus.BAD_REQUEST, undefined, code
|
|
144
|
+
export function badRequestResponse<C = string>(message?: string, code?: C, headers?: Record<string, string>): HttpResponse {
|
|
145
|
+
return createStandardResponse(HttpStatus.BAD_REQUEST, undefined, code, message, headers);
|
|
136
146
|
}
|
|
137
147
|
|
|
138
148
|
/**
|
|
139
149
|
* Unauthorized response (401)
|
|
140
150
|
*/
|
|
141
|
-
export function unauthorizedResponse(message?: string, code?:
|
|
142
|
-
return createStandardResponse(HttpStatus.UNAUTHORIZED, undefined, code
|
|
151
|
+
export function unauthorizedResponse<C = string>(message?: string, code?: C, headers?: Record<string, string>): HttpResponse {
|
|
152
|
+
return createStandardResponse(HttpStatus.UNAUTHORIZED, undefined, code, message, headers);
|
|
143
153
|
}
|
|
144
154
|
|
|
145
155
|
/**
|
|
146
156
|
* Forbidden response (403)
|
|
147
157
|
*/
|
|
148
|
-
export function forbiddenResponse(message?: string, code?:
|
|
149
|
-
return createStandardResponse(HttpStatus.FORBIDDEN, undefined, code
|
|
158
|
+
export function forbiddenResponse<C = string>(message?: string, code?: C, headers?: Record<string, string>): HttpResponse {
|
|
159
|
+
return createStandardResponse(HttpStatus.FORBIDDEN, undefined, code, message, headers);
|
|
150
160
|
}
|
|
151
161
|
|
|
152
162
|
/**
|
|
153
163
|
* Not found response (404)
|
|
154
164
|
*/
|
|
155
|
-
export function notFoundResponse(message?: string, code?:
|
|
156
|
-
return createStandardResponse(HttpStatus.NOT_FOUND, undefined, code
|
|
165
|
+
export function notFoundResponse<C = string>(message?: string, code?: C, headers?: Record<string, string>): HttpResponse {
|
|
166
|
+
return createStandardResponse(HttpStatus.NOT_FOUND, undefined, code, message, headers);
|
|
157
167
|
}
|
|
158
168
|
|
|
159
169
|
/**
|
|
160
170
|
* Conflict response (409)
|
|
161
171
|
*/
|
|
162
|
-
export function conflictResponse(message?: string, code?:
|
|
163
|
-
return createStandardResponse(HttpStatus.CONFLICT, undefined, code
|
|
172
|
+
export function conflictResponse<C = string>(message?: string, code?: C, headers?: Record<string, string>): HttpResponse {
|
|
173
|
+
return createStandardResponse(HttpStatus.CONFLICT, undefined, code, message, headers);
|
|
164
174
|
}
|
|
165
175
|
|
|
166
176
|
/**
|
|
167
177
|
* Validation error response (422)
|
|
168
178
|
*/
|
|
169
|
-
export function validationErrorResponse(message?: string, code?:
|
|
170
|
-
return createStandardResponse(HttpStatus.UNPROCESSABLE_ENTITY, undefined, code
|
|
179
|
+
export function validationErrorResponse<C = string>(message?: string, code?: C, headers?: Record<string, string>): HttpResponse {
|
|
180
|
+
return createStandardResponse(HttpStatus.UNPROCESSABLE_ENTITY, undefined, code, message, headers);
|
|
171
181
|
}
|
|
172
182
|
|
|
173
183
|
/**
|
|
174
184
|
* Internal server error response (500)
|
|
175
185
|
*/
|
|
176
|
-
export function internalErrorResponse(message?: string, code?:
|
|
177
|
-
return createStandardResponse(HttpStatus.INTERNAL_SERVER_ERROR, undefined, code
|
|
186
|
+
export function internalErrorResponse<C = string>(message?: string, code?: C, headers?: Record<string, string>): HttpResponse {
|
|
187
|
+
return createStandardResponse(HttpStatus.INTERNAL_SERVER_ERROR, undefined, code, message, headers);
|
|
178
188
|
}
|
|
179
189
|
|
|
180
190
|
/**
|