@middy/validator 4.0.0-alpha.1 → 4.0.0-alpha.3

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/index.cjs CHANGED
@@ -2,35 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- transpileSchema: ()=>transpileSchema,
13
- transpileLocale: ()=>transpileLocale,
14
- default: ()=>_default
5
+ Object.defineProperty(module, "exports", {
6
+ enumerable: true,
7
+ get: ()=>_default
15
8
  });
16
9
  const _util = require("@middy/util");
17
- const _ajvCmd = require("ajv-cmd");
18
- const _ajvFtlI18N = _interopRequireDefault(require("ajv-ftl-i18n"));
19
- function _interopRequireDefault(obj) {
20
- return obj && obj.__esModule ? obj : {
21
- default: obj
22
- };
23
- }
24
10
  const defaults = {
25
11
  eventSchema: undefined,
26
12
  contextSchema: undefined,
27
13
  responseSchema: undefined,
28
- i18nEnabled: true,
29
14
  defaultLanguage: 'en',
30
15
  languages: {}
31
16
  };
32
17
  const validatorMiddleware = (opts = {})=>{
33
- const { eventSchema , contextSchema , responseSchema , i18nEnabled , defaultLanguage , languages } = {
18
+ const { eventSchema , contextSchema , responseSchema , defaultLanguage , languages } = {
34
19
  ...defaults,
35
20
  ...opts
36
21
  };
@@ -38,14 +23,8 @@ const validatorMiddleware = (opts = {})=>{
38
23
  if (eventSchema) {
39
24
  const validEvent = await eventSchema(request.event);
40
25
  if (!validEvent) {
41
- if (i18nEnabled) {
42
- const language = chooseLanguage(request.event, defaultLanguage);
43
- if (languages[language]) {
44
- languages[language](eventSchema.errors);
45
- } else {
46
- _ajvFtlI18N.default[language](eventSchema.errors);
47
- }
48
- }
26
+ const localize = languages[request.event.preferredLanguage] ?? languages[defaultLanguage];
27
+ localize?.(eventSchema.errors);
49
28
  throw (0, _util.createError)(400, 'Event object failed validation', {
50
29
  cause: eventSchema.errors
51
30
  });
@@ -73,30 +52,6 @@ const validatorMiddleware = (opts = {})=>{
73
52
  after: responseSchema ? validatorMiddlewareAfter : undefined
74
53
  };
75
54
  };
76
- const ajvDefaults = {
77
- strict: true,
78
- coerceTypes: 'array',
79
- allErrors: true,
80
- useDefaults: 'empty',
81
- messages: true
82
- };
83
- const transpileSchema = (schema, ajvOptions)=>{
84
- const options = {
85
- ...ajvDefaults,
86
- ...ajvOptions
87
- };
88
- return (0, _ajvCmd.compile)(schema, options);
89
- };
90
- const transpileLocale = _ajvCmd.ftl;
91
- const availableLanguages = Object.keys(_ajvFtlI18N.default);
92
- const chooseLanguage = ({ preferredLanguage }, defaultLanguage)=>{
93
- if (preferredLanguage) {
94
- if (availableLanguages.includes(preferredLanguage)) {
95
- return preferredLanguage;
96
- }
97
- }
98
- return defaultLanguage;
99
- };
100
55
  const _default = validatorMiddleware;
101
56
 
102
57
 
package/index.js CHANGED
@@ -1,16 +1,13 @@
1
1
  import { createError } from '@middy/util';
2
- import { compile, ftl } from 'ajv-cmd';
3
- import localize from 'ajv-ftl-i18n';
4
2
  const defaults = {
5
3
  eventSchema: undefined,
6
4
  contextSchema: undefined,
7
5
  responseSchema: undefined,
8
- i18nEnabled: true,
9
6
  defaultLanguage: 'en',
10
7
  languages: {}
11
8
  };
12
9
  const validatorMiddleware = (opts = {})=>{
13
- const { eventSchema , contextSchema , responseSchema , i18nEnabled , defaultLanguage , languages } = {
10
+ const { eventSchema , contextSchema , responseSchema , defaultLanguage , languages } = {
14
11
  ...defaults,
15
12
  ...opts
16
13
  };
@@ -18,14 +15,8 @@ const validatorMiddleware = (opts = {})=>{
18
15
  if (eventSchema) {
19
16
  const validEvent = await eventSchema(request.event);
20
17
  if (!validEvent) {
21
- if (i18nEnabled) {
22
- const language = chooseLanguage(request.event, defaultLanguage);
23
- if (languages[language]) {
24
- languages[language](eventSchema.errors);
25
- } else {
26
- localize[language](eventSchema.errors);
27
- }
28
- }
18
+ const localize = languages[request.event.preferredLanguage] ?? languages[defaultLanguage];
19
+ localize?.(eventSchema.errors);
29
20
  throw createError(400, 'Event object failed validation', {
30
21
  cause: eventSchema.errors
31
22
  });
@@ -53,30 +44,6 @@ const validatorMiddleware = (opts = {})=>{
53
44
  after: responseSchema ? validatorMiddlewareAfter : undefined
54
45
  };
55
46
  };
56
- const ajvDefaults = {
57
- strict: true,
58
- coerceTypes: 'array',
59
- allErrors: true,
60
- useDefaults: 'empty',
61
- messages: true
62
- };
63
- export const transpileSchema = (schema, ajvOptions)=>{
64
- const options = {
65
- ...ajvDefaults,
66
- ...ajvOptions
67
- };
68
- return compile(schema, options);
69
- };
70
- export const transpileLocale = ftl;
71
- const availableLanguages = Object.keys(localize);
72
- const chooseLanguage = ({ preferredLanguage }, defaultLanguage)=>{
73
- if (preferredLanguage) {
74
- if (availableLanguages.includes(preferredLanguage)) {
75
- return preferredLanguage;
76
- }
77
- }
78
- return defaultLanguage;
79
- };
80
47
  export default validatorMiddleware;
81
48
 
82
49
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@middy/validator",
3
- "version": "4.0.0-alpha.1",
3
+ "version": "4.0.0-alpha.3",
4
4
  "description": "Validator middleware for the middy framework",
5
5
  "type": "module",
6
6
  "engines": {
@@ -22,13 +22,25 @@
22
22
  "types": "./index.d.ts",
23
23
  "default": "./index.cjs"
24
24
  }
25
+ },
26
+ "./transpile": {
27
+ "import": {
28
+ "types": "./transpile.d.ts",
29
+ "default": "./transpile.js"
30
+ },
31
+ "require": {
32
+ "types": "./transpile.d.ts",
33
+ "default": "./transpile.cjs"
34
+ }
25
35
  }
26
36
  },
27
37
  "types": "index.d.ts",
28
38
  "files": [
29
39
  "index.js",
30
40
  "index.cjs",
31
- "index.d.ts"
41
+ "index.d.ts",
42
+ "transpile.js",
43
+ "transpile.cjs"
32
44
  ],
33
45
  "scripts": {
34
46
  "test": "npm run test:unit",
@@ -61,13 +73,13 @@
61
73
  },
62
74
  "homepage": "https://middy.js.org",
63
75
  "dependencies": {
64
- "@middy/util": "4.0.0-alpha.1",
76
+ "@middy/util": "4.0.0-alpha.3",
65
77
  "ajv-cmd": "0.1.10"
66
78
  },
67
79
  "devDependencies": {
68
- "@middy/core": "4.0.0-alpha.1",
80
+ "@middy/core": "4.0.0-alpha.3",
69
81
  "@types/http-errors": "^1.8.1",
70
82
  "ajv-bsontype": "^1.0.7"
71
83
  },
72
- "gitHead": "b531f61dac3a5268728a21fc4b2b32054b170f88"
84
+ "gitHead": "d1c508197ccb3afcfed55013edc51c8e9f40c884"
73
85
  }
package/transpile.cjs ADDED
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ transpileSchema: ()=>transpileSchema,
13
+ transpileLocale: ()=>transpileLocale
14
+ });
15
+ const _ajvCmd = require("ajv-cmd");
16
+ const ajvDefaults = {
17
+ strict: true,
18
+ coerceTypes: 'array',
19
+ allErrors: true,
20
+ useDefaults: 'empty',
21
+ messages: true
22
+ };
23
+ const transpileSchema = (schema, ajvOptions)=>{
24
+ const options = {
25
+ ...ajvDefaults,
26
+ ...ajvOptions
27
+ };
28
+ return (0, _ajvCmd.compile)(schema, options);
29
+ };
30
+ const transpileLocale = _ajvCmd.ftl;
31
+
32
+
33
+ //# sourceMappingURL=transpile.cjs.map
package/transpile.js ADDED
@@ -0,0 +1,19 @@
1
+ import { compile, ftl } from 'ajv-cmd';
2
+ const ajvDefaults = {
3
+ strict: true,
4
+ coerceTypes: 'array',
5
+ allErrors: true,
6
+ useDefaults: 'empty',
7
+ messages: true
8
+ };
9
+ export const transpileSchema = (schema, ajvOptions)=>{
10
+ const options = {
11
+ ...ajvDefaults,
12
+ ...ajvOptions
13
+ };
14
+ return compile(schema, options);
15
+ };
16
+ export const transpileLocale = ftl;
17
+
18
+
19
+ //# sourceMappingURL=transpile.js.map