@web-ts-toolkit/express-json-router 0.28.0 → 0.29.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 +26 -0
- package/index.d.mts +2 -1
- package/index.d.ts +2 -1
- package/index.js +24 -6
- package/index.mjs +24 -6
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -41,6 +41,32 @@ app.use(router.original);
|
|
|
41
41
|
- `JsonRouter.createHandler(...)`
|
|
42
42
|
- `JsonRouter.ErrorFormats`
|
|
43
43
|
|
|
44
|
+
## Handler Defaults
|
|
45
|
+
|
|
46
|
+
`JsonRouter` still exposes static customization points such as:
|
|
47
|
+
|
|
48
|
+
- `JsonRouter.errorMessageProvider`
|
|
49
|
+
- `JsonRouter.preJson`
|
|
50
|
+
- `JsonRouter.postJson`
|
|
51
|
+
- `JsonRouter.preError`
|
|
52
|
+
- `JsonRouter.postError`
|
|
53
|
+
|
|
54
|
+
These now behave as defaults for future `new JsonRouter(...)` instances.
|
|
55
|
+
|
|
56
|
+
- Updating a static property affects routers created after that change.
|
|
57
|
+
- Existing routers keep the response-handler instance they were constructed with.
|
|
58
|
+
- For fully isolated behavior, pass an explicit handler instance as the third constructor argument.
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
const handler = JsonRouter.createHandler({
|
|
62
|
+
errorFormat: JsonRouter.ErrorFormats.rfc9457,
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
handler.errorMessageProvider = () => 'custom-error';
|
|
66
|
+
|
|
67
|
+
const router = new JsonRouter('/api', undefined, handler);
|
|
68
|
+
```
|
|
69
|
+
|
|
44
70
|
## Documentation
|
|
45
71
|
|
|
46
72
|
Full package documentation lives in `website/docs/packages/express-json-router.md`.
|
package/index.d.mts
CHANGED
|
@@ -57,6 +57,7 @@ declare class JsonRouter {
|
|
|
57
57
|
unlock: RouteRegistrar;
|
|
58
58
|
unsubscribe: RouteRegistrar;
|
|
59
59
|
private readonly _router;
|
|
60
|
+
private static defaultHandlerDefaults;
|
|
60
61
|
private static getSharedHandlerProperty;
|
|
61
62
|
private static setSharedHandlerProperty;
|
|
62
63
|
static readonly clientErrors: typeof clientErrors;
|
|
@@ -72,7 +73,6 @@ declare class JsonRouter {
|
|
|
72
73
|
AlreadyReported: typeof AlreadyReported;
|
|
73
74
|
IMUsed: typeof IMUsed;
|
|
74
75
|
};
|
|
75
|
-
static readonly defaultHandler: ExpressResponseHandler;
|
|
76
76
|
static readonly HttpResponse: {
|
|
77
77
|
ok: (data: unknown) => OK<unknown>;
|
|
78
78
|
created: (data: unknown) => Created<unknown>;
|
|
@@ -124,6 +124,7 @@ declare class JsonRouter {
|
|
|
124
124
|
readonly rfc9457: "rfc9457";
|
|
125
125
|
};
|
|
126
126
|
static readonly createHandler: typeof createHandler;
|
|
127
|
+
static get defaultHandler(): ExpressResponseHandler;
|
|
127
128
|
static get errorMessageProvider(): typeof DEFAULT_RESPONSE_HANDLER.errorMessageProvider;
|
|
128
129
|
static set errorMessageProvider(customErrorMessageProvider: typeof DEFAULT_RESPONSE_HANDLER.errorMessageProvider);
|
|
129
130
|
static get preJson(): typeof DEFAULT_RESPONSE_HANDLER.preJson;
|
package/index.d.ts
CHANGED
|
@@ -57,6 +57,7 @@ declare class JsonRouter {
|
|
|
57
57
|
unlock: RouteRegistrar;
|
|
58
58
|
unsubscribe: RouteRegistrar;
|
|
59
59
|
private readonly _router;
|
|
60
|
+
private static defaultHandlerDefaults;
|
|
60
61
|
private static getSharedHandlerProperty;
|
|
61
62
|
private static setSharedHandlerProperty;
|
|
62
63
|
static readonly clientErrors: typeof clientErrors;
|
|
@@ -72,7 +73,6 @@ declare class JsonRouter {
|
|
|
72
73
|
AlreadyReported: typeof AlreadyReported;
|
|
73
74
|
IMUsed: typeof IMUsed;
|
|
74
75
|
};
|
|
75
|
-
static readonly defaultHandler: ExpressResponseHandler;
|
|
76
76
|
static readonly HttpResponse: {
|
|
77
77
|
ok: (data: unknown) => OK<unknown>;
|
|
78
78
|
created: (data: unknown) => Created<unknown>;
|
|
@@ -124,6 +124,7 @@ declare class JsonRouter {
|
|
|
124
124
|
readonly rfc9457: "rfc9457";
|
|
125
125
|
};
|
|
126
126
|
static readonly createHandler: typeof createHandler;
|
|
127
|
+
static get defaultHandler(): ExpressResponseHandler;
|
|
127
128
|
static get errorMessageProvider(): typeof DEFAULT_RESPONSE_HANDLER.errorMessageProvider;
|
|
128
129
|
static set errorMessageProvider(customErrorMessageProvider: typeof DEFAULT_RESPONSE_HANDLER.errorMessageProvider);
|
|
129
130
|
static get preJson(): typeof DEFAULT_RESPONSE_HANDLER.preJson;
|
package/index.js
CHANGED
|
@@ -80,8 +80,17 @@ var toMiddlewareList = (middlewares) => {
|
|
|
80
80
|
}
|
|
81
81
|
return Array.isArray(middlewares) ? middlewares : [middlewares];
|
|
82
82
|
};
|
|
83
|
+
var createResponseHandlerFromDefaults = (defaults) => {
|
|
84
|
+
const handler = (0, import_express_response_handler.createHandler)();
|
|
85
|
+
handler.errorMessageProvider = defaults.errorMessageProvider;
|
|
86
|
+
handler.preJson = defaults.preJson;
|
|
87
|
+
handler.postJson = defaults.postJson;
|
|
88
|
+
handler.preError = defaults.preError;
|
|
89
|
+
handler.postError = defaults.postError;
|
|
90
|
+
return handler;
|
|
91
|
+
};
|
|
83
92
|
var JsonRouter = class _JsonRouter {
|
|
84
|
-
constructor(basePath = "", middlewares, responseHandler =
|
|
93
|
+
constructor(basePath = "", middlewares, responseHandler = _JsonRouter.defaultHandler) {
|
|
85
94
|
this.methods = [];
|
|
86
95
|
this.endpoints = [];
|
|
87
96
|
this.basePath = normalizeBasePath(basePath);
|
|
@@ -108,11 +117,20 @@ var JsonRouter = class _JsonRouter {
|
|
|
108
117
|
});
|
|
109
118
|
}
|
|
110
119
|
}
|
|
120
|
+
static {
|
|
121
|
+
this.defaultHandlerDefaults = {
|
|
122
|
+
errorMessageProvider: DEFAULT_RESPONSE_HANDLER.errorMessageProvider,
|
|
123
|
+
preJson: DEFAULT_RESPONSE_HANDLER.preJson,
|
|
124
|
+
postJson: DEFAULT_RESPONSE_HANDLER.postJson,
|
|
125
|
+
preError: DEFAULT_RESPONSE_HANDLER.preError,
|
|
126
|
+
postError: DEFAULT_RESPONSE_HANDLER.postError
|
|
127
|
+
};
|
|
128
|
+
}
|
|
111
129
|
static getSharedHandlerProperty(name) {
|
|
112
|
-
return
|
|
130
|
+
return _JsonRouter.defaultHandlerDefaults[name];
|
|
113
131
|
}
|
|
114
132
|
static setSharedHandlerProperty(name, value) {
|
|
115
|
-
|
|
133
|
+
_JsonRouter.defaultHandlerDefaults[name] = value;
|
|
116
134
|
}
|
|
117
135
|
static {
|
|
118
136
|
this.clientErrors = clientErrors;
|
|
@@ -120,9 +138,6 @@ var JsonRouter = class _JsonRouter {
|
|
|
120
138
|
static {
|
|
121
139
|
this.success = success;
|
|
122
140
|
}
|
|
123
|
-
static {
|
|
124
|
-
this.defaultHandler = DEFAULT_RESPONSE_HANDLER;
|
|
125
|
-
}
|
|
126
141
|
static {
|
|
127
142
|
this.HttpResponse = import_express_response_handler.HttpResponse;
|
|
128
143
|
}
|
|
@@ -132,6 +147,9 @@ var JsonRouter = class _JsonRouter {
|
|
|
132
147
|
static {
|
|
133
148
|
this.createHandler = import_express_response_handler.createHandler;
|
|
134
149
|
}
|
|
150
|
+
static get defaultHandler() {
|
|
151
|
+
return createResponseHandlerFromDefaults(_JsonRouter.defaultHandlerDefaults);
|
|
152
|
+
}
|
|
135
153
|
static get errorMessageProvider() {
|
|
136
154
|
return _JsonRouter.getSharedHandlerProperty("errorMessageProvider");
|
|
137
155
|
}
|
package/index.mjs
CHANGED
|
@@ -77,8 +77,17 @@ var require_index = __commonJS({
|
|
|
77
77
|
}
|
|
78
78
|
return Array.isArray(middlewares) ? middlewares : [middlewares];
|
|
79
79
|
};
|
|
80
|
+
var createResponseHandlerFromDefaults = (defaults) => {
|
|
81
|
+
const handler = createHandler();
|
|
82
|
+
handler.errorMessageProvider = defaults.errorMessageProvider;
|
|
83
|
+
handler.preJson = defaults.preJson;
|
|
84
|
+
handler.postJson = defaults.postJson;
|
|
85
|
+
handler.preError = defaults.preError;
|
|
86
|
+
handler.postError = defaults.postError;
|
|
87
|
+
return handler;
|
|
88
|
+
};
|
|
80
89
|
var JsonRouter = class _JsonRouter {
|
|
81
|
-
constructor(basePath = "", middlewares, responseHandler =
|
|
90
|
+
constructor(basePath = "", middlewares, responseHandler = _JsonRouter.defaultHandler) {
|
|
82
91
|
this.methods = [];
|
|
83
92
|
this.endpoints = [];
|
|
84
93
|
this.basePath = normalizeBasePath(basePath);
|
|
@@ -105,11 +114,20 @@ var require_index = __commonJS({
|
|
|
105
114
|
});
|
|
106
115
|
}
|
|
107
116
|
}
|
|
117
|
+
static {
|
|
118
|
+
this.defaultHandlerDefaults = {
|
|
119
|
+
errorMessageProvider: DEFAULT_RESPONSE_HANDLER.errorMessageProvider,
|
|
120
|
+
preJson: DEFAULT_RESPONSE_HANDLER.preJson,
|
|
121
|
+
postJson: DEFAULT_RESPONSE_HANDLER.postJson,
|
|
122
|
+
preError: DEFAULT_RESPONSE_HANDLER.preError,
|
|
123
|
+
postError: DEFAULT_RESPONSE_HANDLER.postError
|
|
124
|
+
};
|
|
125
|
+
}
|
|
108
126
|
static getSharedHandlerProperty(name) {
|
|
109
|
-
return
|
|
127
|
+
return _JsonRouter.defaultHandlerDefaults[name];
|
|
110
128
|
}
|
|
111
129
|
static setSharedHandlerProperty(name, value) {
|
|
112
|
-
|
|
130
|
+
_JsonRouter.defaultHandlerDefaults[name] = value;
|
|
113
131
|
}
|
|
114
132
|
static {
|
|
115
133
|
this.clientErrors = clientErrors;
|
|
@@ -117,9 +135,6 @@ var require_index = __commonJS({
|
|
|
117
135
|
static {
|
|
118
136
|
this.success = success;
|
|
119
137
|
}
|
|
120
|
-
static {
|
|
121
|
-
this.defaultHandler = DEFAULT_RESPONSE_HANDLER;
|
|
122
|
-
}
|
|
123
138
|
static {
|
|
124
139
|
this.HttpResponse = HttpResponse;
|
|
125
140
|
}
|
|
@@ -129,6 +144,9 @@ var require_index = __commonJS({
|
|
|
129
144
|
static {
|
|
130
145
|
this.createHandler = createHandler;
|
|
131
146
|
}
|
|
147
|
+
static get defaultHandler() {
|
|
148
|
+
return createResponseHandlerFromDefaults(_JsonRouter.defaultHandlerDefaults);
|
|
149
|
+
}
|
|
132
150
|
static get errorMessageProvider() {
|
|
133
151
|
return _JsonRouter.getSharedHandlerProperty("errorMessageProvider");
|
|
134
152
|
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@web-ts-toolkit/express-json-router",
|
|
3
3
|
"description": "Express router wrapper for return-value JSON responses",
|
|
4
4
|
"homepage": "https://web-ts-toolkit.pages.dev/docs/packages/express-json-router",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.29.0",
|
|
6
6
|
"sideEffects": false,
|
|
7
7
|
"keywords": [
|
|
8
8
|
"express",
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
"node": ">=20"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@web-ts-toolkit/express-response-handler": "0.
|
|
30
|
-
"@web-ts-toolkit/http-errors": "0.
|
|
31
|
-
"@web-ts-toolkit/utils": "0.
|
|
29
|
+
"@web-ts-toolkit/express-response-handler": "0.29.0",
|
|
30
|
+
"@web-ts-toolkit/http-errors": "0.29.0",
|
|
31
|
+
"@web-ts-toolkit/utils": "0.29.0",
|
|
32
32
|
"express": "^5.2.1"
|
|
33
33
|
},
|
|
34
34
|
"files": [
|