@jderstd/hono-standard-validator 0.2.0-dev.0 → 0.3.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/hook.js CHANGED
@@ -1,6 +1,6 @@
1
- let __jderstd_hono_response = require("@jderstd/hono/response");
2
- let __jderstd_hono_response_error = require("@jderstd/hono/response/error");
3
- let __jderstd_hono_response_error_http = require("@jderstd/hono/response/error/http");
1
+ let _jderstd_hono_response = require("@jderstd/hono/response");
2
+ let _jderstd_hono_response_error = require("@jderstd/hono/response/error");
3
+ let _jderstd_hono_response_error_http = require("@jderstd/hono/response/error/http");
4
4
 
5
5
  const sValidatorHook = (result, c) => {
6
6
  if (result.success) return void 0;
@@ -14,12 +14,12 @@ const sValidatorHook = (result, c) => {
14
14
  return p.toString();
15
15
  }) ?? [];
16
16
  errors.push({
17
- code: __jderstd_hono_response_error.ResponseErrorCode.Parse,
17
+ code: _jderstd_hono_response_error.ResponseErrorCode.Parse,
18
18
  path,
19
19
  message: err.message
20
20
  });
21
21
  }
22
- throw new __jderstd_hono_response_error_http.JderHttpException(400, { res: (0, __jderstd_hono_response.createJsonResponse)(c, { errors }) });
22
+ throw new _jderstd_hono_response_error_http.JderHttpException(400, { res: (0, _jderstd_hono_response.createJsonResponse)(c, { errors }) });
23
23
  };
24
24
 
25
25
  exports.sValidatorHook = sValidatorHook;
package/dist/hook.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","names":["errors: JsonResponseError[]","errs: readonly StandardSchemaV1.Issue[]","i: number","err: StandardSchemaV1.Issue | undefined","path: string[]","ResponseErrorCode","JderHttpException"],"sources":["../src/hook.ts"],"sourcesContent":["import type { JsonResponseError } from \"@jderstd/hono/response\";\nimport type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport type { Context } from \"hono\";\nimport type { Env, TypedResponse, ValidationTargets } from \"hono/types\";\n\nimport { createJsonResponse } from \"@jderstd/hono/response\";\nimport { ResponseErrorCode } from \"@jderstd/hono/response/error\";\nimport { JderHttpException } from \"@jderstd/hono/response/error/http\";\n\nconst sValidatorHook = <\n T,\n E extends Env,\n P extends string,\n Target extends keyof ValidationTargets = keyof ValidationTargets,\n // biome-ignore lint/complexity/noBannedTypes: any non-nullable value\n O = {},\n>(\n result: (\n | {\n success: true;\n data: T;\n }\n | {\n success: false;\n error: readonly StandardSchemaV1.Issue[];\n data: T;\n }\n ) & {\n target: Target;\n },\n c: Context<E, P>,\n):\n | Response\n | void\n | TypedResponse<O>\n // biome-ignore lint/suspicious/noConfusingVoidType: return type\n | Promise<Response | void | TypedResponse<O>> => {\n if (result.success) return void 0;\n\n const errors: JsonResponseError[] = [];\n\n const errs: readonly StandardSchemaV1.Issue[] = result.error;\n\n for (let i: number = 0; i < errs.length; i++) {\n const err: StandardSchemaV1.Issue | undefined = errs[i];\n\n if (!err) continue;\n\n const path: string[] =\n err.path?.map((p) => {\n if (typeof p === \"object\") return p.key.toString();\n return p.toString();\n }) ?? [];\n\n errors.push({\n code: ResponseErrorCode.Parse,\n path,\n message: err.message,\n });\n }\n\n throw new JderHttpException(400, {\n res: createJsonResponse(c, {\n errors,\n }),\n });\n};\n\nexport { sValidatorHook };\n"],"mappings":";;;;AASA,MAAM,kBAQF,QAaA,MAMiD;AACjD,KAAI,OAAO,QAAS,QAAO,KAAK;CAEhC,MAAMA,SAA8B,EAAE;CAEtC,MAAMC,OAA0C,OAAO;AAEvD,MAAK,IAAIC,IAAY,GAAG,IAAI,KAAK,QAAQ,KAAK;EAC1C,MAAMC,MAA0C,KAAK;AAErD,MAAI,CAAC,IAAK;EAEV,MAAMC,OACF,IAAI,MAAM,KAAK,MAAM;AACjB,OAAI,OAAO,MAAM,SAAU,QAAO,EAAE,IAAI,UAAU;AAClD,UAAO,EAAE,UAAU;IACrB,IAAI,EAAE;AAEZ,SAAO,KAAK;GACR,MAAMC,gDAAkB;GACxB;GACA,SAAS,IAAI;GAChB,CAAC;;AAGN,OAAM,IAAIC,qDAAkB,KAAK,EAC7B,qDAAwB,GAAG,EACvB,QACH,CAAC,EACL,CAAC"}
1
+ {"version":3,"file":"hook.js","names":["errors: JsonResponseError[]","errs: readonly StandardSchemaV1.Issue[]","i: number","err: StandardSchemaV1.Issue | undefined","path: string[]","ResponseErrorCode","JderHttpException"],"sources":["../src/hook.ts"],"sourcesContent":["import type { JsonResponseError } from \"@jderstd/hono/response\";\nimport type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport type { Context } from \"hono\";\nimport type { Env, TypedResponse, ValidationTargets } from \"hono/types\";\n\nimport { createJsonResponse } from \"@jderstd/hono/response\";\nimport { ResponseErrorCode } from \"@jderstd/hono/response/error\";\nimport { JderHttpException } from \"@jderstd/hono/response/error/http\";\n\nconst sValidatorHook = <\n T,\n E extends Env,\n P extends string,\n Target extends keyof ValidationTargets = keyof ValidationTargets,\n // biome-ignore lint/complexity/noBannedTypes: any non-nullable value\n O = {},\n>(\n result: (\n | {\n success: true;\n data: T;\n }\n | {\n success: false;\n error: readonly StandardSchemaV1.Issue[];\n data: T;\n }\n ) & {\n target: Target;\n },\n c: Context<E, P>,\n):\n | Response\n | void\n | TypedResponse<O>\n // biome-ignore lint/suspicious/noConfusingVoidType: return type\n | Promise<Response | void | TypedResponse<O>> => {\n if (result.success) return void 0;\n\n const errors: JsonResponseError[] = [];\n\n const errs: readonly StandardSchemaV1.Issue[] = result.error;\n\n for (let i: number = 0; i < errs.length; i++) {\n const err: StandardSchemaV1.Issue | undefined = errs[i];\n\n if (!err) continue;\n\n const path: string[] =\n err.path?.map(\n (p: PropertyKey | StandardSchemaV1.PathSegment): string => {\n if (typeof p === \"object\") return p.key.toString();\n return p.toString();\n },\n ) ?? [];\n\n errors.push({\n code: ResponseErrorCode.Parse,\n path,\n message: err.message,\n });\n }\n\n throw new JderHttpException(400, {\n res: createJsonResponse(c, {\n errors,\n }),\n });\n};\n\nexport { sValidatorHook };\n"],"mappings":";;;;AASA,MAAM,kBAQF,QAaA,MAMiD;AACjD,KAAI,OAAO,QAAS,QAAO,KAAK;CAEhC,MAAMA,SAA8B,EAAE;CAEtC,MAAMC,OAA0C,OAAO;AAEvD,MAAK,IAAIC,IAAY,GAAG,IAAI,KAAK,QAAQ,KAAK;EAC1C,MAAMC,MAA0C,KAAK;AAErD,MAAI,CAAC,IAAK;EAEV,MAAMC,OACF,IAAI,MAAM,KACL,MAA0D;AACvD,OAAI,OAAO,MAAM,SAAU,QAAO,EAAE,IAAI,UAAU;AAClD,UAAO,EAAE,UAAU;IAE1B,IAAI,EAAE;AAEX,SAAO,KAAK;GACR,MAAMC,+CAAkB;GACxB;GACA,SAAS,IAAI;GAChB,CAAC;;AAGN,OAAM,IAAIC,oDAAkB,KAAK,EAC7B,oDAAwB,GAAG,EACvB,QACH,CAAC,EACL,CAAC"}
package/dist/hook.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hook.mjs","names":["errors: JsonResponseError[]","errs: readonly StandardSchemaV1.Issue[]","i: number","err: StandardSchemaV1.Issue | undefined","path: string[]"],"sources":["../src/hook.ts"],"sourcesContent":["import type { JsonResponseError } from \"@jderstd/hono/response\";\nimport type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport type { Context } from \"hono\";\nimport type { Env, TypedResponse, ValidationTargets } from \"hono/types\";\n\nimport { createJsonResponse } from \"@jderstd/hono/response\";\nimport { ResponseErrorCode } from \"@jderstd/hono/response/error\";\nimport { JderHttpException } from \"@jderstd/hono/response/error/http\";\n\nconst sValidatorHook = <\n T,\n E extends Env,\n P extends string,\n Target extends keyof ValidationTargets = keyof ValidationTargets,\n // biome-ignore lint/complexity/noBannedTypes: any non-nullable value\n O = {},\n>(\n result: (\n | {\n success: true;\n data: T;\n }\n | {\n success: false;\n error: readonly StandardSchemaV1.Issue[];\n data: T;\n }\n ) & {\n target: Target;\n },\n c: Context<E, P>,\n):\n | Response\n | void\n | TypedResponse<O>\n // biome-ignore lint/suspicious/noConfusingVoidType: return type\n | Promise<Response | void | TypedResponse<O>> => {\n if (result.success) return void 0;\n\n const errors: JsonResponseError[] = [];\n\n const errs: readonly StandardSchemaV1.Issue[] = result.error;\n\n for (let i: number = 0; i < errs.length; i++) {\n const err: StandardSchemaV1.Issue | undefined = errs[i];\n\n if (!err) continue;\n\n const path: string[] =\n err.path?.map((p) => {\n if (typeof p === \"object\") return p.key.toString();\n return p.toString();\n }) ?? [];\n\n errors.push({\n code: ResponseErrorCode.Parse,\n path,\n message: err.message,\n });\n }\n\n throw new JderHttpException(400, {\n res: createJsonResponse(c, {\n errors,\n }),\n });\n};\n\nexport { sValidatorHook };\n"],"mappings":";;;;AASA,MAAM,kBAQF,QAaA,MAMiD;AACjD,KAAI,OAAO,QAAS,QAAO,KAAK;CAEhC,MAAMA,SAA8B,EAAE;CAEtC,MAAMC,OAA0C,OAAO;AAEvD,MAAK,IAAIC,IAAY,GAAG,IAAI,KAAK,QAAQ,KAAK;EAC1C,MAAMC,MAA0C,KAAK;AAErD,MAAI,CAAC,IAAK;EAEV,MAAMC,OACF,IAAI,MAAM,KAAK,MAAM;AACjB,OAAI,OAAO,MAAM,SAAU,QAAO,EAAE,IAAI,UAAU;AAClD,UAAO,EAAE,UAAU;IACrB,IAAI,EAAE;AAEZ,SAAO,KAAK;GACR,MAAM,kBAAkB;GACxB;GACA,SAAS,IAAI;GAChB,CAAC;;AAGN,OAAM,IAAI,kBAAkB,KAAK,EAC7B,KAAK,mBAAmB,GAAG,EACvB,QACH,CAAC,EACL,CAAC"}
1
+ {"version":3,"file":"hook.mjs","names":["errors: JsonResponseError[]","errs: readonly StandardSchemaV1.Issue[]","i: number","err: StandardSchemaV1.Issue | undefined","path: string[]"],"sources":["../src/hook.ts"],"sourcesContent":["import type { JsonResponseError } from \"@jderstd/hono/response\";\nimport type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport type { Context } from \"hono\";\nimport type { Env, TypedResponse, ValidationTargets } from \"hono/types\";\n\nimport { createJsonResponse } from \"@jderstd/hono/response\";\nimport { ResponseErrorCode } from \"@jderstd/hono/response/error\";\nimport { JderHttpException } from \"@jderstd/hono/response/error/http\";\n\nconst sValidatorHook = <\n T,\n E extends Env,\n P extends string,\n Target extends keyof ValidationTargets = keyof ValidationTargets,\n // biome-ignore lint/complexity/noBannedTypes: any non-nullable value\n O = {},\n>(\n result: (\n | {\n success: true;\n data: T;\n }\n | {\n success: false;\n error: readonly StandardSchemaV1.Issue[];\n data: T;\n }\n ) & {\n target: Target;\n },\n c: Context<E, P>,\n):\n | Response\n | void\n | TypedResponse<O>\n // biome-ignore lint/suspicious/noConfusingVoidType: return type\n | Promise<Response | void | TypedResponse<O>> => {\n if (result.success) return void 0;\n\n const errors: JsonResponseError[] = [];\n\n const errs: readonly StandardSchemaV1.Issue[] = result.error;\n\n for (let i: number = 0; i < errs.length; i++) {\n const err: StandardSchemaV1.Issue | undefined = errs[i];\n\n if (!err) continue;\n\n const path: string[] =\n err.path?.map(\n (p: PropertyKey | StandardSchemaV1.PathSegment): string => {\n if (typeof p === \"object\") return p.key.toString();\n return p.toString();\n },\n ) ?? [];\n\n errors.push({\n code: ResponseErrorCode.Parse,\n path,\n message: err.message,\n });\n }\n\n throw new JderHttpException(400, {\n res: createJsonResponse(c, {\n errors,\n }),\n });\n};\n\nexport { sValidatorHook };\n"],"mappings":";;;;AASA,MAAM,kBAQF,QAaA,MAMiD;AACjD,KAAI,OAAO,QAAS,QAAO,KAAK;CAEhC,MAAMA,SAA8B,EAAE;CAEtC,MAAMC,OAA0C,OAAO;AAEvD,MAAK,IAAIC,IAAY,GAAG,IAAI,KAAK,QAAQ,KAAK;EAC1C,MAAMC,MAA0C,KAAK;AAErD,MAAI,CAAC,IAAK;EAEV,MAAMC,OACF,IAAI,MAAM,KACL,MAA0D;AACvD,OAAI,OAAO,MAAM,SAAU,QAAO,EAAE,IAAI,UAAU;AAClD,UAAO,EAAE,UAAU;IAE1B,IAAI,EAAE;AAEX,SAAO,KAAK;GACR,MAAM,kBAAkB;GACxB;GACA,SAAS,IAAI;GAChB,CAAC;;AAGN,OAAM,IAAI,kBAAkB,KAAK,EAC7B,KAAK,mBAAmB,GAAG,EACvB,QACH,CAAC,EACL,CAAC"}
package/dist/index.d.ts CHANGED
@@ -61,9 +61,13 @@ import { ValidationTargets } from "hono";
61
61
  * );
62
62
  * ```
63
63
  */
64
- declare const sValidator: <Target extends keyof ValidationTargets, Schema extends StandardSchemaV1>(target: Target, schema: Schema) => hono0.MiddlewareHandler<hono0.Env, string, {
64
+ declare const sValidator: <Target extends keyof ValidationTargets, Schema extends StandardSchemaV1>(target: Target, schema: Schema) => hono0.Handler<hono0.Env, string, {
65
65
  in: (undefined extends StandardSchemaV1.InferInput<Schema> ? true : false) extends true ? { [K in Target]?: (StandardSchemaV1.InferInput<Schema> extends infer T ? T extends StandardSchemaV1.InferInput<Schema> ? T extends ValidationTargets[K] ? T : { [K2 in keyof T]?: ValidationTargets[K][K2] | undefined } : never : never) | undefined } : { [K_1 in Target]: StandardSchemaV1.InferInput<Schema> extends infer T ? T extends StandardSchemaV1.InferInput<Schema> ? T extends ValidationTargets[K_1] ? T : { [K2 in keyof T]: ValidationTargets[K_1][K2] } : never : never };
66
66
  out: { [K_2 in Target]: StandardSchemaV1.InferOutput<Schema> };
67
- }>;
67
+ }, Response & hono0.TypedResponse<{
68
+ readonly success: false;
69
+ readonly error: readonly StandardSchemaV1.Issue[];
70
+ readonly data: ValidationTargets[Target];
71
+ }, 400, "json">>;
68
72
  export { sValidator };
69
73
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  const require_hook = require('./hook.js');
2
- let __hono_standard_validator = require("@hono/standard-validator");
2
+ let _hono_standard_validator = require("@hono/standard-validator");
3
3
 
4
4
  /**
5
5
  * Validate the request with validator based on Standard Schema.
@@ -62,7 +62,7 @@ let __hono_standard_validator = require("@hono/standard-validator");
62
62
  * ```
63
63
  */
64
64
  const sValidator = (target, schema) => {
65
- return (0, __hono_standard_validator.sValidator)(target, schema, require_hook.sValidatorHook);
65
+ return (0, _hono_standard_validator.sValidator)(target, schema, require_hook.sValidatorHook);
66
66
  };
67
67
 
68
68
  exports.sValidator = sValidator;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["sValidatorHook"],"sources":["../src/index.ts"],"sourcesContent":["import type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport type { ValidationTargets } from \"hono\";\n\nimport { sValidator as sv } from \"@hono/standard-validator\";\n\nimport { sValidatorHook } from \"#/hook\";\n\n/**\n * Validate the request with validator based on Standard Schema.\n *\n * Following error may returned if the request is invalid:\n *\n * ```jsonc\n * // Status: 400\n * {\n * \"success\": false,\n * \"errors\": [\n * {\n * \"code\": \"parse\",\n * \"path\": [\"xxx\"],\n * \"message\": \"xxx\"\n * }\n * ]\n * }\n * ```\n *\n * ### Example\n *\n * ```ts\n * import type { Context, Env } from \"hono\";\n *\n * import { Hono } from \"hono\";\n * import { z } from \"zod\";\n * import { sValidator } from \"@jderstd/hono-standard-validator\";\n *\n * const app: Hono = new Hono();\n *\n * const json = z.object({\n * name: z.string(),\n * age: z.number()\n * });\n *\n * type Json = z.infer<typeof json>;\n *\n * type RouteContext = Context<\n * Env,\n * \"/\",\n * {\n * in: {\n * json: Json;\n * },\n * out: {\n * json: Json;\n * },\n * },\n * >;\n *\n * app.post(\n * \"/\",\n * sValidator(\"json\", json),\n * (c: RouteContext): Response => {\n * const data: Json = c.req.valid(\"json\");\n * return c.json(data);\n * }\n * );\n * ```\n */\nconst sValidator = <\n Target extends keyof ValidationTargets,\n Schema extends StandardSchemaV1,\n>(\n target: Target,\n schema: Schema,\n) => {\n return sv(target, schema, sValidatorHook);\n};\n\nexport { sValidator };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmEA,MAAM,cAIF,QACA,WACC;AACD,kDAAU,QAAQ,QAAQA,4BAAe"}
1
+ {"version":3,"file":"index.js","names":["sValidatorHook"],"sources":["../src/index.ts"],"sourcesContent":["import type { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport type { ValidationTargets } from \"hono\";\n\nimport { sValidator as sv } from \"@hono/standard-validator\";\n\nimport { sValidatorHook } from \"#/hook\";\n\n/**\n * Validate the request with validator based on Standard Schema.\n *\n * Following error may returned if the request is invalid:\n *\n * ```jsonc\n * // Status: 400\n * {\n * \"success\": false,\n * \"errors\": [\n * {\n * \"code\": \"parse\",\n * \"path\": [\"xxx\"],\n * \"message\": \"xxx\"\n * }\n * ]\n * }\n * ```\n *\n * ### Example\n *\n * ```ts\n * import type { Context, Env } from \"hono\";\n *\n * import { Hono } from \"hono\";\n * import { z } from \"zod\";\n * import { sValidator } from \"@jderstd/hono-standard-validator\";\n *\n * const app: Hono = new Hono();\n *\n * const json = z.object({\n * name: z.string(),\n * age: z.number()\n * });\n *\n * type Json = z.infer<typeof json>;\n *\n * type RouteContext = Context<\n * Env,\n * \"/\",\n * {\n * in: {\n * json: Json;\n * },\n * out: {\n * json: Json;\n * },\n * },\n * >;\n *\n * app.post(\n * \"/\",\n * sValidator(\"json\", json),\n * (c: RouteContext): Response => {\n * const data: Json = c.req.valid(\"json\");\n * return c.json(data);\n * }\n * );\n * ```\n */\nconst sValidator = <\n Target extends keyof ValidationTargets,\n Schema extends StandardSchemaV1,\n>(\n target: Target,\n schema: Schema,\n) => {\n return sv(target, schema, sValidatorHook);\n};\n\nexport { sValidator };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmEA,MAAM,cAIF,QACA,WACC;AACD,iDAAU,QAAQ,QAAQA,4BAAe"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jderstd/hono-standard-validator",
3
- "version": "0.2.0-dev.0",
3
+ "version": "0.3.0",
4
4
  "description": "A standard validator for Hono",
5
5
  "keywords": [
6
6
  "jder",
@@ -43,15 +43,15 @@
43
43
  "dist"
44
44
  ],
45
45
  "dependencies": {
46
- "@hono/standard-validator": "~0.1.5",
46
+ "@hono/standard-validator": "~0.2.0",
47
47
  "@standard-schema/spec": "^1.0.0"
48
48
  },
49
49
  "devDependencies": {
50
50
  "hono": "4.5.0",
51
- "@jderstd/hono": "0.7.0-dev.0"
51
+ "@jderstd/hono": "0.8.0"
52
52
  },
53
53
  "peerDependencies": {
54
- "@jderstd/hono": "~0.6.0",
54
+ "@jderstd/hono": "~0.8.0",
55
55
  "hono": "^4.5.0"
56
56
  }
57
57
  }