@nathan3boss/expressu 0.1.1 → 1.0.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 CHANGED
@@ -1,10 +1,16 @@
1
- # expressu
1
+ # @nathan3boss/expressu
2
2
 
3
- ![npm version](https://img.shields.io/npm/v/expressu?style=flat&logo=npm)
3
+ ![npm version](https://img.shields.io/npm/v/@nathan3boss/expressu?style=flat&logo=npm)
4
4
  ![CI](https://img.shields.io/github/actions/workflow/status/nathan2slime/expressu/ci.yml?branch=main&style=flat&logo=github)
5
5
 
6
6
  Composable Express middleware builders for request validators.
7
7
 
8
+ ## Install
9
+
10
+ ```bash
11
+ pnpm add @nathan3boss/expressu
12
+ ```
13
+
8
14
  ## What it does
9
15
 
10
16
  - Validates `body`, `params`, and `query`.
@@ -17,7 +23,7 @@ Composable Express middleware builders for request validators.
17
23
  Set a default validation message once at app startup.
18
24
 
19
25
  ```ts
20
- import { configure } from "expressu";
26
+ import { configure } from "@nathan3boss/expressu";
21
27
 
22
28
  configure({ validationMessage: "Dados inválidos" });
23
29
  ```
@@ -26,7 +32,7 @@ configure({ validationMessage: "Dados inválidos" });
26
32
 
27
33
  ```ts
28
34
  import express from "express";
29
- import { createBodyValidator, createValidationAdapter } from "expressu";
35
+ import { createBodyValidator, createValidationAdapter } from "@nathan3boss/expressu";
30
36
 
31
37
  const app = express();
32
38
 
@@ -46,8 +52,8 @@ app.post("/users", createBodyValidator(adapter), (req, res) => {
46
52
  ```ts
47
53
  import express from "express";
48
54
  import { z } from "zod";
49
- import { createBodyValidator } from "expressu";
50
- import { createZodAdapter } from "expressu/zod";
55
+ import { createBodyValidator } from "@nathan3boss/expressu";
56
+ import { createZodAdapter } from "@nathan3boss/expressu/zod";
51
57
 
52
58
  const app = express();
53
59
  const schema = z.object({ userId: z.coerce.number().int() });
@@ -62,8 +68,8 @@ app.post("/users", createBodyValidator(createZodAdapter(schema)), (req, res) =>
62
68
 
63
69
  ```ts
64
70
  import * as yup from "yup";
65
- import { createBodyValidator } from "expressu";
66
- import { createYupAdapter } from "expressu/yup";
71
+ import { createBodyValidator } from "@nathan3boss/expressu";
72
+ import { createYupAdapter } from "@nathan3boss/expressu/yup";
67
73
 
68
74
  const schema = yup.object({ userId: yup.number().required().integer() });
69
75
 
@@ -76,7 +82,7 @@ app.post("/users", createBodyValidator(createYupAdapter(schema)), (req, res) =>
76
82
 
77
83
  ```ts
78
84
  import { createBodyValidator } from "expressu";
79
- import { createClassTransformerAdapter } from "expressu/class-transformer";
85
+ import { createClassTransformerAdapter } from "@nathan3boss/expressu/class-transformer";
80
86
 
81
87
  class UserDto {
82
88
  id!: number;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ createClassTransformerAdapter: ()=>createClassTransformerAdapter,
28
+ classTransformerParamsValidator: ()=>classTransformerParamsValidator,
29
+ classTransformerMiddleware: ()=>classTransformerMiddleware,
30
+ classTransformerBodyValidator: ()=>classTransformerBodyValidator,
31
+ classTransformerQueryValidator: ()=>classTransformerQueryValidator
32
+ });
33
+ const external_class_transformer_namespaceObject = require("class-transformer");
34
+ const external_config_cjs_namespaceObject = require("../config.cjs");
35
+ const external_validator_cjs_namespaceObject = require("../validator.cjs");
36
+ const defaultFailure = (error, message)=>({
37
+ message,
38
+ issues: error instanceof Error ? error.message : error
39
+ });
40
+ const createClassTransformerAdapter = (target, options = {})=>(0, external_validator_cjs_namespaceObject.createValidationAdapter)((input)=>{
41
+ const value = (0, external_class_transformer_namespaceObject.plainToInstance)(target, input, options);
42
+ const message = (0, external_config_cjs_namespaceObject.resolveValidationMessage)(options.message);
43
+ if (Array.isArray(value)) throw new Error(message);
44
+ if (options.validate && !options.validate(value)) throw new Error(message);
45
+ return value;
46
+ }, (error)=>defaultFailure(error, (0, external_config_cjs_namespaceObject.resolveValidationMessage)(options.message)));
47
+ const classTransformerMiddleware = (target, options = {})=>(0, external_validator_cjs_namespaceObject.createValidatorMiddleware)(createClassTransformerAdapter(target, options));
48
+ const classTransformerBodyValidator = (target, options = {})=>(0, external_validator_cjs_namespaceObject.createBodyValidator)(createClassTransformerAdapter(target, options));
49
+ const classTransformerParamsValidator = (target, options = {})=>(0, external_validator_cjs_namespaceObject.createParamsValidator)(createClassTransformerAdapter(target, options));
50
+ const classTransformerQueryValidator = (target, options = {})=>(0, external_validator_cjs_namespaceObject.createQueryValidator)(createClassTransformerAdapter(target, options));
51
+ exports.classTransformerBodyValidator = __webpack_exports__.classTransformerBodyValidator;
52
+ exports.classTransformerMiddleware = __webpack_exports__.classTransformerMiddleware;
53
+ exports.classTransformerParamsValidator = __webpack_exports__.classTransformerParamsValidator;
54
+ exports.classTransformerQueryValidator = __webpack_exports__.classTransformerQueryValidator;
55
+ exports.createClassTransformerAdapter = __webpack_exports__.createClassTransformerAdapter;
56
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
57
+ "classTransformerBodyValidator",
58
+ "classTransformerMiddleware",
59
+ "classTransformerParamsValidator",
60
+ "classTransformerQueryValidator",
61
+ "createClassTransformerAdapter"
62
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
63
+ Object.defineProperty(exports, '__esModule', {
64
+ value: true
65
+ });
package/dist/config.d.ts CHANGED
@@ -13,10 +13,18 @@ export declare const configure: (config?: ExpressuConfig) => void;
13
13
  * Resets the global Expressu configuration to defaults.
14
14
  */
15
15
  export declare const resetExpressuConfig: () => void;
16
+ /**
17
+ * Alias for `resetExpressuConfig`.
18
+ */
19
+ export declare const resetConfig: () => void;
16
20
  /**
17
21
  * Returns the current global Expressu configuration.
18
22
  */
19
23
  export declare const getExpressuConfig: () => Readonly<ExpressuConfig>;
24
+ /**
25
+ * Alias for `getExpressuConfig`.
26
+ */
27
+ export declare const getConfig: () => Readonly<ExpressuConfig>;
20
28
  /**
21
29
  * Resolves the validation message using the provided override, the global config,
22
30
  * and the package default.
package/dist/index.cjs ADDED
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ createParamsValidator: ()=>external_validator_cjs_namespaceObject.createParamsValidator,
28
+ configure: ()=>external_config_cjs_namespaceObject.configure,
29
+ resolveValidationMessage: ()=>external_config_cjs_namespaceObject.resolveValidationMessage,
30
+ createValidationAdapter: ()=>external_validator_cjs_namespaceObject.createValidationAdapter,
31
+ createQueryValidator: ()=>external_validator_cjs_namespaceObject.createQueryValidator,
32
+ resetExpressuConfig: ()=>external_config_cjs_namespaceObject.resetExpressuConfig,
33
+ getConfig: ()=>external_config_cjs_namespaceObject.getConfig,
34
+ DEFAULT_VALIDATION_MESSAGE: ()=>external_config_cjs_namespaceObject.DEFAULT_VALIDATION_MESSAGE,
35
+ getExpressuConfig: ()=>external_config_cjs_namespaceObject.getExpressuConfig,
36
+ resetConfig: ()=>external_config_cjs_namespaceObject.resetConfig,
37
+ createValidatorMiddleware: ()=>external_validator_cjs_namespaceObject.createValidatorMiddleware,
38
+ createBodyValidator: ()=>external_validator_cjs_namespaceObject.createBodyValidator
39
+ });
40
+ const external_config_cjs_namespaceObject = require("./config.cjs");
41
+ const external_validator_cjs_namespaceObject = require("./validator.cjs");
42
+ exports.DEFAULT_VALIDATION_MESSAGE = __webpack_exports__.DEFAULT_VALIDATION_MESSAGE;
43
+ exports.configure = __webpack_exports__.configure;
44
+ exports.createBodyValidator = __webpack_exports__.createBodyValidator;
45
+ exports.createParamsValidator = __webpack_exports__.createParamsValidator;
46
+ exports.createQueryValidator = __webpack_exports__.createQueryValidator;
47
+ exports.createValidationAdapter = __webpack_exports__.createValidationAdapter;
48
+ exports.createValidatorMiddleware = __webpack_exports__.createValidatorMiddleware;
49
+ exports.getConfig = __webpack_exports__.getConfig;
50
+ exports.getExpressuConfig = __webpack_exports__.getExpressuConfig;
51
+ exports.resetConfig = __webpack_exports__.resetConfig;
52
+ exports.resetExpressuConfig = __webpack_exports__.resetExpressuConfig;
53
+ exports.resolveValidationMessage = __webpack_exports__.resolveValidationMessage;
54
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
55
+ "DEFAULT_VALIDATION_MESSAGE",
56
+ "configure",
57
+ "createBodyValidator",
58
+ "createParamsValidator",
59
+ "createQueryValidator",
60
+ "createValidationAdapter",
61
+ "createValidatorMiddleware",
62
+ "getConfig",
63
+ "getExpressuConfig",
64
+ "resetConfig",
65
+ "resetExpressuConfig",
66
+ "resolveValidationMessage"
67
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
68
+ Object.defineProperty(exports, '__esModule', {
69
+ value: true
70
+ });
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
- export * from "./config";
2
- export * from "./types";
3
- export * from "./validator";
1
+ export { configure, DEFAULT_VALIDATION_MESSAGE, getConfig, getExpressuConfig, resetConfig, resetExpressuConfig, resolveValidationMessage, } from "./config";
2
+ export type { ExpressuConfig } from "./config";
3
+ export type { MiddlewareOptions, ValidationAdapter, ValidationFailure, ValidationTarget, } from "./types";
4
+ export { createBodyValidator, createParamsValidator, createQueryValidator, createValidationAdapter, createValidatorMiddleware, } from "./validator";
package/dist/index.js CHANGED
@@ -1,3 +1,2 @@
1
- export * from "./config.js";
2
- export * from "./types.js";
3
- export * from "./validator.js";
1
+ export { DEFAULT_VALIDATION_MESSAGE, configure, getConfig, getExpressuConfig, resetConfig, resetExpressuConfig, resolveValidationMessage } from "./config.js";
2
+ export { createBodyValidator, createParamsValidator, createQueryValidator, createValidationAdapter, createValidatorMiddleware } from "./validator.js";
package/dist/yup.cjs ADDED
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ yupMiddleware: ()=>yupMiddleware,
28
+ yupBodyValidator: ()=>yupBodyValidator,
29
+ createYupAdapter: ()=>createYupAdapter,
30
+ yupQueryValidator: ()=>yupQueryValidator,
31
+ yupParamsValidator: ()=>yupParamsValidator
32
+ });
33
+ const external_yup_namespaceObject = require("yup");
34
+ const external_config_cjs_namespaceObject = require("../config.cjs");
35
+ const external_validator_cjs_namespaceObject = require("../validator.cjs");
36
+ const defaultFailure = (error, message)=>({
37
+ message,
38
+ issues: error instanceof Error ? error.message : error
39
+ });
40
+ const createYupAdapter = (schema, options = {})=>(0, external_validator_cjs_namespaceObject.createValidationAdapter)((input)=>schema.validateSync(input, options), (error)=>{
41
+ if (error instanceof external_yup_namespaceObject.ValidationError) return {
42
+ message: (0, external_config_cjs_namespaceObject.resolveValidationMessage)(options.message),
43
+ issues: {
44
+ errors: error.errors,
45
+ inner: error.inner,
46
+ path: error.path
47
+ }
48
+ };
49
+ return defaultFailure(error, (0, external_config_cjs_namespaceObject.resolveValidationMessage)(options.message));
50
+ });
51
+ const yupMiddleware = (schema, options = {})=>(0, external_validator_cjs_namespaceObject.createValidatorMiddleware)(createYupAdapter(schema, options));
52
+ const yupBodyValidator = (schema, options = {})=>(0, external_validator_cjs_namespaceObject.createBodyValidator)(createYupAdapter(schema, options));
53
+ const yupParamsValidator = (schema, options = {})=>(0, external_validator_cjs_namespaceObject.createParamsValidator)(createYupAdapter(schema, options));
54
+ const yupQueryValidator = (schema, options = {})=>(0, external_validator_cjs_namespaceObject.createQueryValidator)(createYupAdapter(schema, options));
55
+ exports.createYupAdapter = __webpack_exports__.createYupAdapter;
56
+ exports.yupBodyValidator = __webpack_exports__.yupBodyValidator;
57
+ exports.yupMiddleware = __webpack_exports__.yupMiddleware;
58
+ exports.yupParamsValidator = __webpack_exports__.yupParamsValidator;
59
+ exports.yupQueryValidator = __webpack_exports__.yupQueryValidator;
60
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
61
+ "createYupAdapter",
62
+ "yupBodyValidator",
63
+ "yupMiddleware",
64
+ "yupParamsValidator",
65
+ "yupQueryValidator"
66
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
67
+ Object.defineProperty(exports, '__esModule', {
68
+ value: true
69
+ });
package/dist/zod.cjs ADDED
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ zodParamsValidator: ()=>zodParamsValidator,
28
+ zodBodyValidator: ()=>zodBodyValidator,
29
+ createZodAdapter: ()=>createZodAdapter,
30
+ zodQueryValidator: ()=>zodQueryValidator,
31
+ zodMiddleware: ()=>zodMiddleware
32
+ });
33
+ const external_zod_namespaceObject = require("zod");
34
+ const external_config_cjs_namespaceObject = require("../config.cjs");
35
+ const external_validator_cjs_namespaceObject = require("../validator.cjs");
36
+ const createZodAdapter = (schema)=>(0, external_validator_cjs_namespaceObject.createValidationAdapter)((input)=>schema.parse(input), (error)=>{
37
+ if (error instanceof external_zod_namespaceObject.z.ZodError) return {
38
+ message: (0, external_config_cjs_namespaceObject.resolveValidationMessage)(),
39
+ issues: error.issues
40
+ };
41
+ return {
42
+ message: (0, external_config_cjs_namespaceObject.resolveValidationMessage)(),
43
+ issues: error
44
+ };
45
+ });
46
+ const zodMiddleware = (schema, options = {})=>(0, external_validator_cjs_namespaceObject.createValidatorMiddleware)(createZodAdapter(schema), options);
47
+ const zodBodyValidator = (schema, options = {})=>(0, external_validator_cjs_namespaceObject.createBodyValidator)(createZodAdapter(schema), options);
48
+ const zodParamsValidator = (schema, options = {})=>(0, external_validator_cjs_namespaceObject.createParamsValidator)(createZodAdapter(schema), options);
49
+ const zodQueryValidator = (schema, options = {})=>(0, external_validator_cjs_namespaceObject.createQueryValidator)(createZodAdapter(schema), options);
50
+ exports.createZodAdapter = __webpack_exports__.createZodAdapter;
51
+ exports.zodBodyValidator = __webpack_exports__.zodBodyValidator;
52
+ exports.zodMiddleware = __webpack_exports__.zodMiddleware;
53
+ exports.zodParamsValidator = __webpack_exports__.zodParamsValidator;
54
+ exports.zodQueryValidator = __webpack_exports__.zodQueryValidator;
55
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
56
+ "createZodAdapter",
57
+ "zodBodyValidator",
58
+ "zodMiddleware",
59
+ "zodParamsValidator",
60
+ "zodQueryValidator"
61
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
62
+ Object.defineProperty(exports, '__esModule', {
63
+ value: true
64
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nathan3boss/expressu",
3
- "version": "0.1.1",
3
+ "version": "1.0.0",
4
4
  "description": "Composable middleware builders for Express validators",
5
5
  "license": "MIT",
6
6
  "author": "nathan2slime",
@@ -16,24 +16,40 @@
16
16
  "access": "public"
17
17
  },
18
18
  "type": "module",
19
- "main": "./dist/index.js",
19
+ "main": "./dist/index.cjs",
20
20
  "types": "./dist/index.d.ts",
21
21
  "exports": {
22
22
  ".": {
23
- "types": "./dist/index.d.ts",
24
- "import": "./dist/index.js"
23
+ "types": {
24
+ "import": "./dist/index.d.ts",
25
+ "require": "./dist/index.d.ts"
26
+ },
27
+ "import": "./dist/index.js",
28
+ "require": "./dist/index.cjs"
25
29
  },
26
30
  "./zod": {
27
- "types": "./dist/adapters/zod.d.ts",
28
- "import": "./dist/adapters/zod.js"
31
+ "types": {
32
+ "import": "./dist/adapters/zod.d.ts",
33
+ "require": "./dist/adapters/zod.d.ts"
34
+ },
35
+ "import": "./dist/adapters/zod.js",
36
+ "require": "./dist/adapters/zod.cjs"
29
37
  },
30
38
  "./yup": {
31
- "types": "./dist/adapters/yup.d.ts",
32
- "import": "./dist/adapters/yup.js"
39
+ "types": {
40
+ "import": "./dist/adapters/yup.d.ts",
41
+ "require": "./dist/adapters/yup.d.ts"
42
+ },
43
+ "import": "./dist/adapters/yup.js",
44
+ "require": "./dist/adapters/yup.cjs"
33
45
  },
34
46
  "./class-transformer": {
35
- "types": "./dist/adapters/class-transformer.d.ts",
36
- "import": "./dist/adapters/class-transformer.js"
47
+ "types": {
48
+ "import": "./dist/adapters/class-transformer.d.ts",
49
+ "require": "./dist/adapters/class-transformer.d.ts"
50
+ },
51
+ "import": "./dist/adapters/class-transformer.js",
52
+ "require": "./dist/adapters/class-transformer.cjs"
37
53
  }
38
54
  },
39
55
  "files": [
@@ -50,8 +66,7 @@
50
66
  "test:coverage": "rstest --globals --coverage",
51
67
  "changeset": "changeset",
52
68
  "version-packages": "changeset version",
53
- "release": "changeset publish",
54
- "prepare": "lefthook install"
69
+ "release": "changeset publish"
55
70
  },
56
71
  "peerDependencies": {
57
72
  "class-transformer": "^0.5.1",