minimonolith 0.22.3 → 0.23.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
@@ -27,7 +27,7 @@ Here's an example project using `minimonolith`:
27
27
 
28
28
  ### server.js
29
29
 
30
- This file is used for local development. It runs a local server using `minimonolith`'s `runLambdaServer` function:
30
+ This file is used for local development. It runs a local server using `minimonolith`'s `getServer` function:
31
31
 
32
32
  ```js
33
33
  // server.js
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "minimonolith",
3
3
  "type": "module",
4
- "version": "0.22.3",
4
+ "version": "0.23.0",
5
5
  "main": "index.js",
6
6
  "license": "MIT",
7
7
  "scripts": {
@@ -2,6 +2,7 @@ import getAPI from '../get/index.js';
2
2
 
3
3
  export default ({ DEV_ENV='FALSE', PROD_ENV='TRUE', TEST_ENV='FALSE' } = {}) => {
4
4
  getAPI().SERVICES = {};
5
+ getAPI().VALIDATORS = {};
5
6
  getAPI().SCHEMAS = {};
6
7
  getAPI().MODELS = {};
7
8
  getAPI().ORM = undefined;
@@ -15,7 +15,7 @@ const META_SERVICE_NAME = 'API', META_METHOD_NAME = 'POST_SERVICE';
15
15
  export default async (SERVICE_NAME, SRC_FOLDER='', MODULES_FOLDER='node_modules/') => {
16
16
 
17
17
  LOG_SERVICE.post(META_SERVICE_NAME, META_METHOD_NAME, SERVICE_NAME);
18
- getAPI().SERVICES[SERVICE_NAME] = {};
18
+ getAPI().SERVICES[SERVICE_NAME] = {}; getAPI().VALIDATORS[SERVICE_NAME] = {};
19
19
  try {
20
20
 
21
21
  const projectRootPath = PATH_SERVICE.getProjectRoot(import.meta.url, MODULES_FOLDER)+'/';
@@ -29,6 +29,11 @@ export default async (SERVICE_NAME, SERVICE_URL, METHOD_CODE) => {
29
29
  return await METHOD.CONTROLLER({ MODELS, SERVICES, ROUTE_CODE, body, claims });
30
30
  }
31
31
 
32
+ API_SERVICE.get().VALIDATORS[SERVICE_NAME][METHOD_NAME] = () => {
33
+ const { MODELS, SERVICES, VALIDATORS } = API_SERVICE.get();
34
+ return METHOD.VALIDATOR({ MODELS, SERVICES, VALIDATORS });
35
+ }
36
+
32
37
  const METHOD_TYPE = getType(METHOD_NAME);
33
38
 
34
39
  LOG_SERVICE.post('POSTING_ROUTE', METHOD_ROUTE);
@@ -4,16 +4,13 @@ import { z } from 'zod';
4
4
 
5
5
  import LOG_SERVICE from '../../log/index.js';
6
6
 
7
- import getOptionalObject from '../getOptionalObject/index.js';
8
-
9
7
  export default async (METHOD_NAME, SERVICE_URL) => {
10
8
  const VALIDATION_URL = new URL(`${METHOD_NAME}/valid.js`, SERVICE_URL);
11
9
 
12
10
  if (!fs.existsSync(url.fileURLToPath(VALIDATION_URL)))
13
- return EVENT_CONTEXT => z.undefined();
11
+ //return EVENT_CONTEXT => z.undefined();
12
+ return undefined;;
14
13
 
15
14
  LOG_SERVICE.post(' FOUND_VALIDATOR');
16
- const Z_ELEMENTS = (await import(VALIDATION_URL)).default;
17
-
18
- return EVENT_CONTEXT => getOptionalObject(Z_ELEMENTS(EVENT_CONTEXT));
15
+ return (await import(VALIDATION_URL)).default;
19
16
  };
@@ -2,7 +2,7 @@ import { z } from 'zod';
2
2
 
3
3
  export default zElements => {
4
4
  const zObject = z.object(zElements).strict();
5
- if (!Object.values(zElements).every(zElement => zElement.isOptional())) return zObject;
5
+ if (!Object.values(zElements).every(zElement => zElement.isOptional() )) return zObject;
6
6
 
7
7
  return z.custom(unifiedBody => unifiedBody===undefined ? true : zObject.parse(unifiedBody));
8
8
  }
@@ -1,15 +1,29 @@
1
1
  import API_SERVICE from '../../api/index.js';
2
2
  import LOG_SERVICE from '../../log/index.js';
3
3
 
4
+ import getOptionalObject from '../getOptionalObject/index.js';
5
+
4
6
  export default async (res, ROUTE_CODE, VALIDATOR, input) => {
5
- const { MODELS, SERVICES } = API_SERVICE.get(), EVENT_CONTEXT = { MODELS, SERVICES };
6
- const VALIDATION_ERROR = (await VALIDATOR(EVENT_CONTEXT).safeParseAsync(input)).error?.format();
7
+ const { MODELS, SERVICES, VALIDATORS } = API_SERVICE.get(), EVENT_CONTEXT = { MODELS, SERVICES, VALIDATORS };
8
+
9
+ if (!VALIDATOR && input) {
10
+ const MESSAGE = { ROUTE_CODE, VALIDATION_ERROR: JSON.stringify({ message: 'BODY_NOT_ALLOWED' }) };
11
+ LOG_SERVICE.postError(MESSAGE);
12
+ res.status(400).json(MESSAGE);
13
+ return true;
14
+ }
7
15
 
8
- if (!VALIDATION_ERROR) return false;
16
+ if (!VALIDATOR) return false;
17
+
18
+ const VALIDATION_ERROR =
19
+ (await getOptionalObject(VALIDATOR(EVENT_CONTEXT)).safeParseAsync(input)).error?.format();
9
20
 
10
- const MESSAGE = { ROUTE_CODE, VALIDATION_ERROR };
11
- LOG_SERVICE.postError(MESSAGE);
12
- res.status(400).json(MESSAGE);
21
+ if (VALIDATION_ERROR) {
22
+ const MESSAGE = { ROUTE_CODE, VALIDATION_ERROR: JSON.stringify(VALIDATION_ERROR) };
23
+ LOG_SERVICE.postError(MESSAGE);
24
+ res.status(400).json(MESSAGE);
25
+ return true;
26
+ }
13
27
 
14
- return true;
28
+ return false
15
29
  }