@naman_deep_singh/http-response 3.0.0 → 3.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/README.md +4 -4
- package/dist/cjs/adapters/express/ExpressResponder.d.ts +2 -2
- package/dist/cjs/adapters/express/ExpressResponder.js +2 -2
- package/dist/cjs/adapters/express/index.d.ts +1 -0
- package/dist/cjs/adapters/express/index.js +17 -0
- package/dist/cjs/adapters/index.d.ts +1 -0
- package/dist/cjs/adapters/index.js +17 -0
- package/dist/cjs/constants/index.d.ts +1 -0
- package/dist/cjs/constants/index.js +17 -0
- package/dist/cjs/core/BaseResponder.d.ts +2 -2
- package/dist/cjs/core/BaseResponder.js +16 -16
- package/dist/cjs/core/config.d.ts +1 -1
- package/dist/cjs/core/factory.d.ts +2 -2
- package/dist/cjs/core/factory.js +2 -2
- package/dist/cjs/core/index.d.ts +4 -0
- package/dist/cjs/core/index.js +20 -0
- package/dist/cjs/index.d.ts +4 -8
- package/dist/cjs/index.js +6 -14
- package/dist/cjs/middleware/express/expressMiddleware.d.ts +1 -1
- package/dist/cjs/middleware/express/expressMiddleware.js +2 -2
- package/dist/cjs/middleware/express/index.d.ts +1 -0
- package/dist/cjs/middleware/express/index.js +17 -0
- package/dist/cjs/middleware/index.d.ts +1 -0
- package/dist/cjs/middleware/index.js +17 -0
- package/dist/esm/adapters/express/ExpressResponder.d.ts +2 -2
- package/dist/esm/adapters/express/ExpressResponder.js +1 -1
- package/dist/esm/adapters/express/index.d.ts +1 -0
- package/dist/esm/adapters/express/index.js +1 -0
- package/dist/esm/adapters/index.d.ts +1 -0
- package/dist/esm/adapters/index.js +1 -0
- package/dist/esm/constants/index.d.ts +1 -0
- package/dist/esm/constants/index.js +1 -0
- package/dist/esm/core/BaseResponder.d.ts +2 -2
- package/dist/esm/core/BaseResponder.js +3 -3
- package/dist/esm/core/config.d.ts +1 -1
- package/dist/esm/core/factory.d.ts +2 -2
- package/dist/esm/core/factory.js +1 -1
- package/dist/esm/core/index.d.ts +4 -0
- package/dist/esm/core/index.js +4 -0
- package/dist/esm/index.d.ts +4 -8
- package/dist/esm/index.js +6 -8
- package/dist/esm/middleware/express/expressMiddleware.d.ts +1 -1
- package/dist/esm/middleware/express/expressMiddleware.js +1 -1
- package/dist/esm/middleware/express/index.d.ts +1 -0
- package/dist/esm/middleware/express/index.js +1 -0
- package/dist/esm/middleware/index.d.ts +1 -0
- package/dist/esm/middleware/index.js +1 -0
- package/dist/types/adapters/express/ExpressResponder.d.ts +2 -2
- package/dist/types/adapters/express/index.d.ts +1 -0
- package/dist/types/adapters/index.d.ts +1 -0
- package/dist/types/constants/index.d.ts +1 -0
- package/dist/types/core/BaseResponder.d.ts +2 -2
- package/dist/types/core/config.d.ts +1 -1
- package/dist/types/core/factory.d.ts +2 -2
- package/dist/types/core/index.d.ts +4 -0
- package/dist/types/index.d.ts +4 -8
- package/dist/types/middleware/express/expressMiddleware.d.ts +1 -1
- package/dist/types/middleware/express/index.d.ts +1 -0
- package/dist/types/middleware/index.d.ts +1 -0
- package/package.json +20 -10
- package/src/adapters/express/ExpressResponder.ts +2 -2
- package/src/adapters/express/index.ts +1 -0
- package/src/adapters/index.ts +1 -0
- package/src/constants/index.ts +1 -0
- package/src/core/BaseResponder.ts +4 -6
- package/src/core/config.ts +1 -1
- package/src/core/factory.ts +2 -3
- package/src/core/index.ts +4 -0
- package/src/index.ts +6 -11
- package/src/middleware/express/expressMiddleware.ts +2 -2
- package/src/middleware/express/index.ts +1 -0
- package/src/middleware/index.ts +1 -0
- package/tsconfig.cjs.json +9 -5
- package/tsconfig.esm.json +8 -5
- package/tsconfig.json +17 -0
- package/tsconfig.types.json +16 -0
- package/tsconfig.base.json +0 -11
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @naman_deep_singh/http-response
|
|
2
2
|
|
|
3
|
-
**Version:** 3.
|
|
3
|
+
**Version:** 3.2.0
|
|
4
4
|
|
|
5
5
|
A flexible, framework-agnostic **TypeScript response utility library** for building consistent, typed, and configurable API responses.
|
|
6
6
|
|
|
@@ -168,12 +168,12 @@ declare global {
|
|
|
168
168
|
⚠️ Do not use for new projects.
|
|
169
169
|
|
|
170
170
|
🔗 Integration with Other Packages
|
|
171
|
-
With @naman_deep_singh/server
|
|
171
|
+
With @naman_deep_singh/server
|
|
172
172
|
import { responderMiddleware } from '@naman_deep_singh/http-response'
|
|
173
173
|
|
|
174
174
|
server.app.use(responderMiddleware())
|
|
175
|
-
With @naman_deep_singh/errors
|
|
176
|
-
import { expressErrorHandler } from '@naman_deep_singh/errors
|
|
175
|
+
With @naman_deep_singh/errors
|
|
176
|
+
import { expressErrorHandler } from '@naman_deep_singh/errors'
|
|
177
177
|
|
|
178
178
|
server.app.use(expressErrorHandler)
|
|
179
179
|
Provides consistent error responses across services.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Response } from 'express';
|
|
2
|
-
import { BaseResponder } from '../../core/BaseResponder';
|
|
3
|
-
import type { ResponderConfig } from '../../core/config';
|
|
2
|
+
import { BaseResponder } from '../../core/BaseResponder.js';
|
|
3
|
+
import type { ResponderConfig } from '../../core/config.js';
|
|
4
4
|
export declare class ExpressResponder<P = unknown> extends BaseResponder<P> {
|
|
5
5
|
private readonly res;
|
|
6
6
|
constructor(cfg: Partial<ResponderConfig> | undefined, res: Response);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ExpressResponder = void 0;
|
|
4
|
-
const
|
|
5
|
-
class ExpressResponder extends
|
|
4
|
+
const BaseResponder_js_1 = require("../../core/BaseResponder.js");
|
|
5
|
+
class ExpressResponder extends BaseResponder_js_1.BaseResponder {
|
|
6
6
|
constructor(cfg, res) {
|
|
7
7
|
// attach sender which calls res.status().json()
|
|
8
8
|
super(cfg, (status, body) => res.status(status).json(body));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ExpressResponder.js';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ExpressResponder.js"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './express/index.js';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./express/index.js"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './httpStatus.js';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./httpStatus.js"), exports);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type ResponderConfig } from './config';
|
|
2
|
-
import type { PaginationMeta, ResponseEnvelope, Sender } from './types';
|
|
1
|
+
import { type ResponderConfig } from './config.js';
|
|
2
|
+
import type { PaginationMeta, ResponseEnvelope, Sender } from './types.js';
|
|
3
3
|
export declare class BaseResponder<P = unknown, M = PaginationMeta> {
|
|
4
4
|
protected readonly cfg: ResponderConfig;
|
|
5
5
|
protected sender?: Sender;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseResponder = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const httpStatus_js_1 = require("../constants/httpStatus.js");
|
|
5
|
+
const config_js_1 = require("./config.js");
|
|
6
6
|
class BaseResponder {
|
|
7
7
|
constructor(cfg, sender) {
|
|
8
|
-
this.cfg = { ...
|
|
8
|
+
this.cfg = { ...config_js_1.defaultConfig, ...(cfg ?? {}) };
|
|
9
9
|
this.sender = sender;
|
|
10
10
|
}
|
|
11
11
|
attachSender(sender) {
|
|
12
12
|
this.sender = sender;
|
|
13
13
|
}
|
|
14
14
|
normalizeError(err) {
|
|
15
|
-
// errors
|
|
15
|
+
// errors AppError compatibility
|
|
16
16
|
if (typeof err === 'object' && err !== null) {
|
|
17
17
|
const e = err;
|
|
18
18
|
if (typeof e.message === 'string') {
|
|
@@ -62,37 +62,37 @@ class BaseResponder {
|
|
|
62
62
|
* Standard REST Response Helpers
|
|
63
63
|
* ----------------------------- */
|
|
64
64
|
ok(data, message = 'Success') {
|
|
65
|
-
return this.send(
|
|
65
|
+
return this.send(httpStatus_js_1.HTTP_STATUS.SUCCESS.OK, this.buildEnvelope(data, message));
|
|
66
66
|
}
|
|
67
67
|
created(data, message = 'Created successfully') {
|
|
68
|
-
return this.send(
|
|
68
|
+
return this.send(httpStatus_js_1.HTTP_STATUS.SUCCESS.CREATED, this.buildEnvelope(data, message));
|
|
69
69
|
}
|
|
70
70
|
noContent(message = 'No Content') {
|
|
71
|
-
return this.send(
|
|
71
|
+
return this.send(httpStatus_js_1.HTTP_STATUS.SUCCESS.NO_CONTENT, this.buildEnvelope(undefined, message));
|
|
72
72
|
}
|
|
73
73
|
badRequest(message = 'Bad request', error) {
|
|
74
|
-
return this.send(
|
|
74
|
+
return this.send(httpStatus_js_1.HTTP_STATUS.CLIENT_ERROR.BAD_REQUEST, this.buildEnvelope(undefined, message, error));
|
|
75
75
|
}
|
|
76
76
|
unauthorized(message = 'Unauthorized') {
|
|
77
|
-
return this.send(
|
|
77
|
+
return this.send(httpStatus_js_1.HTTP_STATUS.CLIENT_ERROR.UNAUTHORIZED, this.buildEnvelope(undefined, message));
|
|
78
78
|
}
|
|
79
79
|
forbidden(message = 'Forbidden') {
|
|
80
|
-
return this.send(
|
|
80
|
+
return this.send(httpStatus_js_1.HTTP_STATUS.CLIENT_ERROR.FORBIDDEN, this.buildEnvelope(undefined, message));
|
|
81
81
|
}
|
|
82
82
|
notFound(message = 'Not found') {
|
|
83
|
-
return this.send(
|
|
83
|
+
return this.send(httpStatus_js_1.HTTP_STATUS.CLIENT_ERROR.NOT_FOUND, this.buildEnvelope(undefined, message));
|
|
84
84
|
}
|
|
85
85
|
conflict(message = 'Conflict') {
|
|
86
|
-
return this.send(
|
|
86
|
+
return this.send(httpStatus_js_1.HTTP_STATUS.CLIENT_ERROR.CONFLICT, this.buildEnvelope(undefined, message));
|
|
87
87
|
}
|
|
88
88
|
unprocessableEntity(message = 'Unprocessable Entity', error) {
|
|
89
|
-
return this.send(
|
|
89
|
+
return this.send(httpStatus_js_1.HTTP_STATUS.CLIENT_ERROR.UNPROCESSABLE_ENTITY, this.buildEnvelope(undefined, message, error));
|
|
90
90
|
}
|
|
91
91
|
tooManyRequests(message = 'Too Many Requests') {
|
|
92
|
-
return this.send(
|
|
92
|
+
return this.send(httpStatus_js_1.HTTP_STATUS.CLIENT_ERROR.TOO_MANY_REQUESTS, this.buildEnvelope(undefined, message));
|
|
93
93
|
}
|
|
94
94
|
serverError(message = 'Internal server error', error) {
|
|
95
|
-
return this.send(
|
|
95
|
+
return this.send(httpStatus_js_1.HTTP_STATUS.SERVER_ERROR.INTERNAL_SERVER_ERROR, this.buildEnvelope(undefined, message, error));
|
|
96
96
|
}
|
|
97
97
|
paginate(data, page, limit, total, message = 'Success') {
|
|
98
98
|
const totalPages = Math.max(1, Math.ceil(total / limit));
|
|
@@ -106,7 +106,7 @@ class BaseResponder {
|
|
|
106
106
|
hasNext: page < totalPages,
|
|
107
107
|
hasPrev: page > 1,
|
|
108
108
|
};
|
|
109
|
-
return this.send(
|
|
109
|
+
return this.send(httpStatus_js_1.HTTP_STATUS.SUCCESS.OK, this.buildEnvelope(data, message, undefined, pagination));
|
|
110
110
|
}
|
|
111
111
|
paginateOffset(data, offset, limit, total, message = 'Success') {
|
|
112
112
|
const page = Math.floor(offset / limit) + 1;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ExpressResponder } from '../adapters/
|
|
2
|
-
import type { ResponderConfig } from './config';
|
|
1
|
+
import { ExpressResponder } from '../adapters/index.js';
|
|
2
|
+
import type { ResponderConfig } from './config.js';
|
|
3
3
|
export declare const createResponderFactory: (cfg?: Partial<ResponderConfig>) => <P = unknown, _M = Record<string, unknown>>(res: import("express").Response) => ExpressResponder<P>;
|
package/dist/cjs/core/factory.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createResponderFactory = void 0;
|
|
4
|
-
const
|
|
4
|
+
const index_js_1 = require("../adapters/index.js");
|
|
5
5
|
const createResponderFactory = (cfg) => {
|
|
6
6
|
return (res) => {
|
|
7
|
-
return new
|
|
7
|
+
return new index_js_1.ExpressResponder(cfg, res);
|
|
8
8
|
};
|
|
9
9
|
};
|
|
10
10
|
exports.createResponderFactory = createResponderFactory;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./BaseResponder.js"), exports);
|
|
18
|
+
__exportStar(require("./config.js"), exports);
|
|
19
|
+
__exportStar(require("./factory.js"), exports);
|
|
20
|
+
__exportStar(require("./types.js"), exports);
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './
|
|
5
|
-
export { ExpressResponder } from './adapters/express/ExpressResponder';
|
|
6
|
-
export { responderMiddleware } from './middleware/express/expressMiddleware';
|
|
7
|
-
export { HTTP_STATUS } from './constants/httpStatus';
|
|
8
|
-
export type { HttpStatusCode } from './constants/httpStatus';
|
|
1
|
+
export * from './core/index.js';
|
|
2
|
+
export * from './constants/index.js';
|
|
3
|
+
export * from './adapters/index.js';
|
|
4
|
+
export * from './middleware/index.js';
|
package/dist/cjs/index.js
CHANGED
|
@@ -14,19 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.HTTP_STATUS = exports.responderMiddleware = exports.ExpressResponder = exports.createResponderFactory = exports.BaseResponder = void 0;
|
|
18
17
|
// Core Responders
|
|
19
|
-
|
|
20
|
-
Object.defineProperty(exports, "BaseResponder", { enumerable: true, get: function () { return BaseResponder_1.BaseResponder; } });
|
|
21
|
-
var factory_1 = require("./core/factory");
|
|
22
|
-
Object.defineProperty(exports, "createResponderFactory", { enumerable: true, get: function () { return factory_1.createResponderFactory; } });
|
|
23
|
-
__exportStar(require("./core/types"), exports);
|
|
24
|
-
__exportStar(require("./core/config"), exports);
|
|
25
|
-
// Adapters (Express)
|
|
26
|
-
var ExpressResponder_1 = require("./adapters/express/ExpressResponder");
|
|
27
|
-
Object.defineProperty(exports, "ExpressResponder", { enumerable: true, get: function () { return ExpressResponder_1.ExpressResponder; } });
|
|
28
|
-
var expressMiddleware_1 = require("./middleware/express/expressMiddleware");
|
|
29
|
-
Object.defineProperty(exports, "responderMiddleware", { enumerable: true, get: function () { return expressMiddleware_1.responderMiddleware; } });
|
|
18
|
+
__exportStar(require("./core/index.js"), exports);
|
|
30
19
|
// HTTP Status Constants
|
|
31
|
-
|
|
32
|
-
|
|
20
|
+
__exportStar(require("./constants/index.js"), exports);
|
|
21
|
+
// Adapters (Express)
|
|
22
|
+
__exportStar(require("./adapters/index.js"), exports);
|
|
23
|
+
// Utility Middleware (Express)
|
|
24
|
+
__exportStar(require("./middleware/index.js"), exports);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.responderMiddleware = void 0;
|
|
4
|
-
const
|
|
4
|
+
const factory_js_1 = require("../../core/factory.js");
|
|
5
5
|
const responderMiddleware = (cfg) => {
|
|
6
|
-
const factory = (0,
|
|
6
|
+
const factory = (0, factory_js_1.createResponderFactory)(cfg);
|
|
7
7
|
return (_req, res, next) => {
|
|
8
8
|
;
|
|
9
9
|
res.responder = () => factory(res);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './expressMiddleware.js';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./expressMiddleware.js"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './express/index.js';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./express/index.js"), exports);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Response } from 'express';
|
|
2
|
-
import { BaseResponder } from '../../core/BaseResponder';
|
|
3
|
-
import type { ResponderConfig } from '../../core/config';
|
|
2
|
+
import { BaseResponder } from '../../core/BaseResponder.js';
|
|
3
|
+
import type { ResponderConfig } from '../../core/config.js';
|
|
4
4
|
export declare class ExpressResponder<P = unknown> extends BaseResponder<P> {
|
|
5
5
|
private readonly res;
|
|
6
6
|
constructor(cfg: Partial<ResponderConfig> | undefined, res: Response);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ExpressResponder.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ExpressResponder.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './express/index.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './express/index.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './httpStatus.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './httpStatus.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type ResponderConfig } from './config';
|
|
2
|
-
import type { PaginationMeta, ResponseEnvelope, Sender } from './types';
|
|
1
|
+
import { type ResponderConfig } from './config.js';
|
|
2
|
+
import type { PaginationMeta, ResponseEnvelope, Sender } from './types.js';
|
|
3
3
|
export declare class BaseResponder<P = unknown, M = PaginationMeta> {
|
|
4
4
|
protected readonly cfg: ResponderConfig;
|
|
5
5
|
protected sender?: Sender;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { HTTP_STATUS } from '../constants/httpStatus';
|
|
2
|
-
import { defaultConfig } from './config';
|
|
1
|
+
import { HTTP_STATUS } from '../constants/httpStatus.js';
|
|
2
|
+
import { defaultConfig } from './config.js';
|
|
3
3
|
export class BaseResponder {
|
|
4
4
|
constructor(cfg, sender) {
|
|
5
5
|
this.cfg = { ...defaultConfig, ...(cfg ?? {}) };
|
|
@@ -9,7 +9,7 @@ export class BaseResponder {
|
|
|
9
9
|
this.sender = sender;
|
|
10
10
|
}
|
|
11
11
|
normalizeError(err) {
|
|
12
|
-
// errors
|
|
12
|
+
// errors AppError compatibility
|
|
13
13
|
if (typeof err === 'object' && err !== null) {
|
|
14
14
|
const e = err;
|
|
15
15
|
if (typeof e.message === 'string') {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ExpressResponder } from '../adapters/
|
|
2
|
-
import type { ResponderConfig } from './config';
|
|
1
|
+
import { ExpressResponder } from '../adapters/index.js';
|
|
2
|
+
import type { ResponderConfig } from './config.js';
|
|
3
3
|
export declare const createResponderFactory: (cfg?: Partial<ResponderConfig>) => <P = unknown, _M = Record<string, unknown>>(res: import("express").Response) => ExpressResponder<P>;
|
package/dist/esm/core/factory.js
CHANGED
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './
|
|
5
|
-
export { ExpressResponder } from './adapters/express/ExpressResponder';
|
|
6
|
-
export { responderMiddleware } from './middleware/express/expressMiddleware';
|
|
7
|
-
export { HTTP_STATUS } from './constants/httpStatus';
|
|
8
|
-
export type { HttpStatusCode } from './constants/httpStatus';
|
|
1
|
+
export * from './core/index.js';
|
|
2
|
+
export * from './constants/index.js';
|
|
3
|
+
export * from './adapters/index.js';
|
|
4
|
+
export * from './middleware/index.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
// Core Responders
|
|
2
|
-
export
|
|
3
|
-
export { createResponderFactory } from './core/factory';
|
|
4
|
-
export * from './core/types';
|
|
5
|
-
export * from './core/config';
|
|
6
|
-
// Adapters (Express)
|
|
7
|
-
export { ExpressResponder } from './adapters/express/ExpressResponder';
|
|
8
|
-
export { responderMiddleware } from './middleware/express/expressMiddleware';
|
|
2
|
+
export * from './core/index.js';
|
|
9
3
|
// HTTP Status Constants
|
|
10
|
-
export
|
|
4
|
+
export * from './constants/index.js';
|
|
5
|
+
// Adapters (Express)
|
|
6
|
+
export * from './adapters/index.js';
|
|
7
|
+
// Utility Middleware (Express)
|
|
8
|
+
export * from './middleware/index.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './expressMiddleware.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './expressMiddleware.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './express/index.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './express/index.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Response } from 'express';
|
|
2
|
-
import { BaseResponder } from '../../core/BaseResponder';
|
|
3
|
-
import type { ResponderConfig } from '../../core/config';
|
|
2
|
+
import { BaseResponder } from '../../core/BaseResponder.js';
|
|
3
|
+
import type { ResponderConfig } from '../../core/config.js';
|
|
4
4
|
export declare class ExpressResponder<P = unknown> extends BaseResponder<P> {
|
|
5
5
|
private readonly res;
|
|
6
6
|
constructor(cfg: Partial<ResponderConfig> | undefined, res: Response);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ExpressResponder.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './express/index.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './httpStatus.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type ResponderConfig } from './config';
|
|
2
|
-
import type { PaginationMeta, ResponseEnvelope, Sender } from './types';
|
|
1
|
+
import { type ResponderConfig } from './config.js';
|
|
2
|
+
import type { PaginationMeta, ResponseEnvelope, Sender } from './types.js';
|
|
3
3
|
export declare class BaseResponder<P = unknown, M = PaginationMeta> {
|
|
4
4
|
protected readonly cfg: ResponderConfig;
|
|
5
5
|
protected sender?: Sender;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ExpressResponder } from '../adapters/
|
|
2
|
-
import type { ResponderConfig } from './config';
|
|
1
|
+
import { ExpressResponder } from '../adapters/index.js';
|
|
2
|
+
import type { ResponderConfig } from './config.js';
|
|
3
3
|
export declare const createResponderFactory: (cfg?: Partial<ResponderConfig>) => <P = unknown, _M = Record<string, unknown>>(res: import("express").Response) => ExpressResponder<P>;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './
|
|
5
|
-
export { ExpressResponder } from './adapters/express/ExpressResponder';
|
|
6
|
-
export { responderMiddleware } from './middleware/express/expressMiddleware';
|
|
7
|
-
export { HTTP_STATUS } from './constants/httpStatus';
|
|
8
|
-
export type { HttpStatusCode } from './constants/httpStatus';
|
|
1
|
+
export * from './core/index.js';
|
|
2
|
+
export * from './constants/index.js';
|
|
3
|
+
export * from './adapters/index.js';
|
|
4
|
+
export * from './middleware/index.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './expressMiddleware.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './express/index.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@naman_deep_singh/http-response",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "TypeScript utilities for standardized API responses",
|
|
5
5
|
"author": "Naman Deep Singh",
|
|
6
6
|
"license": "MIT",
|
|
@@ -13,15 +13,25 @@
|
|
|
13
13
|
"require": "./dist/cjs/index.js",
|
|
14
14
|
"types": "./dist/types/index.d.ts"
|
|
15
15
|
},
|
|
16
|
-
"./
|
|
17
|
-
"import": "./dist/esm/
|
|
18
|
-
"require": "./dist/cjs/
|
|
19
|
-
"types": "./dist/types/
|
|
16
|
+
"./core": {
|
|
17
|
+
"import": "./dist/esm/core/index.js",
|
|
18
|
+
"require": "./dist/cjs/core/index.js",
|
|
19
|
+
"types": "./dist/types/core/index.d.ts"
|
|
20
20
|
},
|
|
21
|
-
"./
|
|
22
|
-
"import": "./dist/esm/
|
|
23
|
-
"require": "./dist/cjs/
|
|
24
|
-
"types": "./dist/types/
|
|
21
|
+
"./constants": {
|
|
22
|
+
"import": "./dist/esm/constants/index.js",
|
|
23
|
+
"require": "./dist/cjs/constants/index.js",
|
|
24
|
+
"types": "./dist/types/constants/index.d.ts"
|
|
25
|
+
},
|
|
26
|
+
"./adapters": {
|
|
27
|
+
"import": "./dist/esm/adapters/index.js",
|
|
28
|
+
"require": "./dist/cjs/adapters/index.js",
|
|
29
|
+
"types": "./dist/types/adapters/index.d.ts"
|
|
30
|
+
},
|
|
31
|
+
"./middleware": {
|
|
32
|
+
"import": "./dist/esm/middleware/index.js",
|
|
33
|
+
"require": "./dist/cjs/middleware/index.js",
|
|
34
|
+
"types": "./dist/types/middleware/index.d.ts"
|
|
25
35
|
}
|
|
26
36
|
},
|
|
27
37
|
"sideEffects": false,
|
|
@@ -47,7 +57,7 @@
|
|
|
47
57
|
},
|
|
48
58
|
"scripts": {
|
|
49
59
|
"build": "pnpm run build:types && tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json",
|
|
50
|
-
"build:types": "tsc -p tsconfig.
|
|
60
|
+
"build:types": "tsc -p tsconfig.types.json",
|
|
51
61
|
"clean": "rimraf dist"
|
|
52
62
|
}
|
|
53
63
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Response } from 'express'
|
|
2
|
-
import { BaseResponder } from '../../core/BaseResponder'
|
|
3
|
-
import type { ResponderConfig } from '../../core/config'
|
|
2
|
+
import { BaseResponder } from '../../core/BaseResponder.js'
|
|
3
|
+
import type { ResponderConfig } from '../../core/config.js'
|
|
4
4
|
|
|
5
5
|
export class ExpressResponder<P = unknown> extends BaseResponder<P> {
|
|
6
6
|
constructor(
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ExpressResponder.js'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './express/index.js'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './httpStatus.js'
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { HTTP_STATUS } from '../constants/httpStatus'
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
import type { PaginationMeta, ResponseEnvelope, Sender } from './types'
|
|
1
|
+
import { HTTP_STATUS } from '../constants/httpStatus.js'
|
|
2
|
+
import { type ResponderConfig, defaultConfig } from './config.js'
|
|
3
|
+
import type { PaginationMeta, ResponseEnvelope, Sender } from './types.js'
|
|
6
4
|
|
|
7
5
|
export class BaseResponder<P = unknown, M = PaginationMeta> {
|
|
8
6
|
protected readonly cfg: ResponderConfig
|
|
@@ -22,7 +20,7 @@ export class BaseResponder<P = unknown, M = PaginationMeta> {
|
|
|
22
20
|
code?: string
|
|
23
21
|
details?: unknown
|
|
24
22
|
} {
|
|
25
|
-
// errors
|
|
23
|
+
// errors AppError compatibility
|
|
26
24
|
if (typeof err === 'object' && err !== null) {
|
|
27
25
|
const e = err as Record<string, unknown>
|
|
28
26
|
|
package/src/core/config.ts
CHANGED
package/src/core/factory.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { ExpressResponder } from '../adapters/
|
|
2
|
-
|
|
3
|
-
import type { ResponderConfig } from './config'
|
|
1
|
+
import { ExpressResponder } from '../adapters/index.js'
|
|
2
|
+
import type { ResponderConfig } from './config.js'
|
|
4
3
|
|
|
5
4
|
export const createResponderFactory = (cfg?: Partial<ResponderConfig>) => {
|
|
6
5
|
return <P = unknown, _M = Record<string, unknown>>(
|
package/src/index.ts
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
// Core Responders
|
|
2
|
-
export
|
|
3
|
-
export { createResponderFactory } from './core/factory'
|
|
4
|
-
export * from './core/types'
|
|
5
|
-
export * from './core/config'
|
|
6
|
-
|
|
7
|
-
// Adapters (Express)
|
|
8
|
-
export { ExpressResponder } from './adapters/express/ExpressResponder'
|
|
9
|
-
export { responderMiddleware } from './middleware/express/expressMiddleware'
|
|
10
|
-
|
|
2
|
+
export * from './core/index.js'
|
|
11
3
|
// HTTP Status Constants
|
|
12
|
-
export
|
|
13
|
-
|
|
4
|
+
export * from './constants/index.js'
|
|
5
|
+
// Adapters (Express)
|
|
6
|
+
export * from './adapters/index.js'
|
|
7
|
+
// Utility Middleware (Express)
|
|
8
|
+
export * from './middleware/index.js'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { RequestHandler } from 'express'
|
|
2
|
-
import type { ResponderConfig } from '../../core/config'
|
|
3
|
-
import { createResponderFactory } from '../../core/factory'
|
|
2
|
+
import type { ResponderConfig } from '../../core/config.js'
|
|
3
|
+
import { createResponderFactory } from '../../core/factory.js'
|
|
4
4
|
|
|
5
5
|
export const responderMiddleware = (
|
|
6
6
|
cfg?: Partial<ResponderConfig>,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './expressMiddleware.js'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './express/index.js'
|
package/tsconfig.cjs.json
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"extends": "./tsconfig.base.json",
|
|
3
2
|
"compilerOptions": {
|
|
3
|
+
"target": "ES2020",
|
|
4
4
|
"module": "CommonJS",
|
|
5
5
|
"moduleResolution": "Node",
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
}
|
|
6
|
+
"strict": true,
|
|
7
|
+
"esModuleInterop": true,
|
|
8
|
+
"outDir": "dist/cjs"
|
|
9
|
+
},
|
|
10
|
+
"include": [
|
|
11
|
+
"src"
|
|
12
|
+
]
|
|
13
|
+
}
|
package/tsconfig.esm.json
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"extends": "./tsconfig.base.json",
|
|
3
2
|
"compilerOptions": {
|
|
3
|
+
"target": "ES2020",
|
|
4
4
|
"module": "ESNext",
|
|
5
5
|
"moduleResolution": "Bundler",
|
|
6
|
-
"
|
|
7
|
-
"outDir": "
|
|
8
|
-
}
|
|
9
|
-
|
|
6
|
+
"strict": true,
|
|
7
|
+
"outDir": "dist/esm"
|
|
8
|
+
},
|
|
9
|
+
"include": [
|
|
10
|
+
"src"
|
|
11
|
+
]
|
|
12
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2020",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"moduleResolution": "Bundler",
|
|
6
|
+
"strict": true,
|
|
7
|
+
"esModuleInterop": true,
|
|
8
|
+
"skipLibCheck": true
|
|
9
|
+
},
|
|
10
|
+
"include": [
|
|
11
|
+
"src"
|
|
12
|
+
],
|
|
13
|
+
"exclude": [
|
|
14
|
+
"dist",
|
|
15
|
+
"node_modules"
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2020",
|
|
4
|
+
"module": "NodeNext",
|
|
5
|
+
"moduleResolution": "NodeNext",
|
|
6
|
+
"strict": true,
|
|
7
|
+
"esModuleInterop": true,
|
|
8
|
+
"skipLibCheck": false,
|
|
9
|
+
"declaration": true,
|
|
10
|
+
"emitDeclarationOnly": true,
|
|
11
|
+
"outDir": "dist/types"
|
|
12
|
+
},
|
|
13
|
+
"include": [
|
|
14
|
+
"src"
|
|
15
|
+
]
|
|
16
|
+
}
|