@fishka/express 0.9.19 → 0.9.20

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 CHANGED
@@ -53,10 +53,10 @@ import { transform, toInt, minLength, matches, min, range, oneOf } from '@fishka
53
53
 
54
54
  routes.get('users/:id', async ctx => ({
55
55
  id: ctx.path('id', transform(toInt())), // string → number (required)
56
- page: ctx.query('page', transform(toInt(), min(1))), // number >= 1, optional
57
- limit: ctx.query('limit', transform(toInt(), range(1, 100))), // number 1-100, optional
58
- sort: ctx.query('sort', transform(oneOf('asc', 'desc'))), // enum, optional
59
- search: ctx.query('search', transform(minLength(3))), // string min 3 chars, optional
56
+ page: ctx.query('page', transform(toInt(), min(1))), // number >= 1, required (throws 400 if missing)
57
+ limit: ctx.query('limit', transform(toInt(), range(1, 100))), // number 1-100, required (throws 400 if missing)
58
+ sort: ctx.query('sort', transform(oneOf('asc', 'desc'))), // enum, required (throws 400 if missing)
59
+ search: ctx.query('search', transform(minLength(3))), // string min 3 chars, required (throws 400 if missing)
60
60
  }));
61
61
  ```
62
62
 
@@ -64,6 +64,7 @@ routes.get('users/:id', async ctx => ({
64
64
 
65
65
  - `ctx.path('name')` - returns string (throws 400 if missing)
66
66
  - `ctx.query('name')` - returns string | undefined (returns undefined if missing/empty)
67
+ - `ctx.query('name', validator)` - returns validated value (throws 400 if missing/empty/invalid)
67
68
  - Validators receive raw values (including undefined/null/empty) and can enforce requiredness
68
69
 
69
70
  ### Available Operators
@@ -96,15 +97,19 @@ routes.get('users/:id', async ctx => ({
96
97
  - `validator(fn)` - custom validator returning string|undefined
97
98
  - `map(fn)` - transform value
98
99
 
99
- ### Optional Parameters
100
+ ### Required vs Optional Parameters
100
101
 
101
- Query parameters are optional by default. Use `ctx.query()` without a validator to get optional string values:
102
+ - **Path parameters** are always required - `ctx.path()` throws 400 if missing
103
+ - **Query parameters without validators** are optional - `ctx.query('name')` returns `string | undefined`
104
+ - **Query parameters with validators** are required - `ctx.query('name', validator)` throws 400 if missing/empty
105
+
106
+ For optional query parameters with validation, provide a default value:
102
107
 
103
108
  ```typescript
104
109
  import { transform, toInt } from '@fishka/express';
105
110
 
106
111
  routes.get('users', async ctx => {
107
- const page = ctx.query('page', transform(toInt())) ?? 1; // number | undefined
112
+ const page = ctx.query('page', transform(toInt())) ?? 1; // number, defaults to 1 if missing
108
113
  const search = ctx.query('search'); // string | undefined
109
114
 
110
115
  return { page, search };
@@ -62,7 +62,6 @@ class RequestContextImpl {
62
62
  * @param name Parameter name.
63
63
  * @param rawValue Raw parameter value from request.
64
64
  * @param validator Optional validator function.
65
- * @param cache Cache map for this parameter type.
66
65
  * @param isRequired Whether parameter is required (path=true, query=false).
67
66
  * @returns Validated value or undefined for optional missing parameters.
68
67
  */
@@ -70,6 +69,10 @@ class RequestContextImpl {
70
69
  try {
71
70
  let result;
72
71
  if (validator) {
72
+ // For required parameters, check if value is missing before validating
73
+ if (isRequired && (rawValue === undefined || rawValue === null || rawValue === '')) {
74
+ (0, api_types_1.assertHttp)(false, http_status_codes_1.HTTP_BAD_REQUEST, `Missing required parameter: ${name}`);
75
+ }
73
76
  // Pass value to validator even if it's undefined/null/empty
74
77
  result = validator(rawValue);
75
78
  }
@@ -101,7 +104,14 @@ class RequestContextImpl {
101
104
  const parsedUrl = url.parse(this.req.originalUrl, true);
102
105
  const rawValue = parsedUrl.query[name];
103
106
  const value = Array.isArray(rawValue) ? rawValue[0] : rawValue;
104
- return this.validateParam(name, value, validator, false);
107
+ // If validator is provided, parameter is required (like path parameters)
108
+ const isRequired = validator !== undefined;
109
+ const result = this.validateParam(name, value, validator, isRequired);
110
+ // For required parameters (with validator), ensure we don't return undefined
111
+ if (isRequired) {
112
+ (0, api_types_1.assertHttp)(result !== undefined, http_status_codes_1.HTTP_BAD_REQUEST, `Missing required query parameter: ${name}`);
113
+ }
114
+ return result;
105
115
  }
106
116
  body(validator) {
107
117
  const apiRequest = this.req.body;
@@ -206,8 +216,7 @@ async function executeBodyEndpoint(route, req, res) {
206
216
  async function executeWithMiddleware(run, middlewares, context) {
207
217
  const current = async (index) => {
208
218
  if (index >= middlewares.length) {
209
- const result = await run();
210
- return result;
219
+ return run();
211
220
  }
212
221
  const middleware = middlewares[index];
213
222
  return (await middleware(() => current(index + 1), context));
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/router.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,6 @@ class RequestContextImpl {
26
26
  * @param name Parameter name.
27
27
  * @param rawValue Raw parameter value from request.
28
28
  * @param validator Optional validator function.
29
- * @param cache Cache map for this parameter type.
30
29
  * @param isRequired Whether parameter is required (path=true, query=false).
31
30
  * @returns Validated value or undefined for optional missing parameters.
32
31
  */
@@ -34,6 +33,10 @@ class RequestContextImpl {
34
33
  try {
35
34
  let result;
36
35
  if (validator) {
36
+ // For required parameters, check if value is missing before validating
37
+ if (isRequired && (rawValue === undefined || rawValue === null || rawValue === '')) {
38
+ assertHttp(false, HTTP_BAD_REQUEST, `Missing required parameter: ${name}`);
39
+ }
37
40
  // Pass value to validator even if it's undefined/null/empty
38
41
  result = validator(rawValue);
39
42
  }
@@ -65,7 +68,14 @@ class RequestContextImpl {
65
68
  const parsedUrl = url.parse(this.req.originalUrl, true);
66
69
  const rawValue = parsedUrl.query[name];
67
70
  const value = Array.isArray(rawValue) ? rawValue[0] : rawValue;
68
- return this.validateParam(name, value, validator, false);
71
+ // If validator is provided, parameter is required (like path parameters)
72
+ const isRequired = validator !== undefined;
73
+ const result = this.validateParam(name, value, validator, isRequired);
74
+ // For required parameters (with validator), ensure we don't return undefined
75
+ if (isRequired) {
76
+ assertHttp(result !== undefined, HTTP_BAD_REQUEST, `Missing required query parameter: ${name}`);
77
+ }
78
+ return result;
69
79
  }
70
80
  body(validator) {
71
81
  const apiRequest = this.req.body;
@@ -170,8 +180,7 @@ async function executeBodyEndpoint(route, req, res) {
170
180
  async function executeWithMiddleware(run, middlewares, context) {
171
181
  const current = async (index) => {
172
182
  if (index >= middlewares.length) {
173
- const result = await run();
174
- return result;
183
+ return run();
175
184
  }
176
185
  const middleware = middlewares[index];
177
186
  return (await middleware(() => current(index + 1), context));
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/router.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fishka/express",
3
- "version": "0.9.19",
3
+ "version": "0.9.20",
4
4
  "description": "Express.js extension with built-in validation, and type safety",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",