minimonolith 0.23.2 → 0.24.1

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/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "minimonolith",
3
3
  "type": "module",
4
- "version": "0.23.2",
4
+ "version": "0.24.1",
5
5
  "main": "index.js",
6
6
  "license": "MIT",
7
7
  "scripts": {
8
8
  "start": "nodemon --inspect=0.0.0.0 ./server.js",
9
- "test": "NODE_OPTIONS=--experimental-vm-modules npx jest --coverage"
9
+ "test": "cross-env NODE_OPTIONS=--experimental-vm-modules npx jest --coverage"
10
10
  },
11
11
  "keywords": [
12
12
  "lambda-api",
@@ -21,6 +21,7 @@
21
21
  "devDependencies": {
22
22
  "@aws-sdk/client-s3": "^3.304.0",
23
23
  "@aws-sdk/s3-request-presigner": "^3.304.0",
24
+ "cross-env": "^7.0.3",
24
25
  "cross-fetch": "^3.1.5",
25
26
  "dotenv": "^16.0.3",
26
27
  "jest": "^29.5.0",
@@ -1,5 +1,6 @@
1
1
  import fs from 'fs';
2
2
  import url from 'url'
3
+ import path from 'path';
3
4
 
4
5
  import PATH_SERVICE from '../../path/index.js';
5
6
  import MODEL_SERVICE from '../../model/index.js';
@@ -12,14 +13,14 @@ import getAPI from '../get/index.js';
12
13
 
13
14
  const META_SERVICE_NAME = 'API', META_METHOD_NAME = 'POST_SERVICE';
14
15
 
15
- export default async (SERVICE_NAME, SRC_FOLDER='', MODULES_FOLDER='node_modules/') => {
16
+ export default async (SERVICE_NAME, SRC_FOLDER='', MODULES_FOLDER='node_modules' + path.sep) => {
16
17
 
17
18
  LOG_SERVICE.post(META_SERVICE_NAME, META_METHOD_NAME, SERVICE_NAME);
18
19
  getAPI().SERVICES[SERVICE_NAME] = {}; getAPI().VALIDATORS[SERVICE_NAME] = {};
19
20
  try {
20
21
 
21
- const projectRootPath = PATH_SERVICE.getProjectRoot(import.meta.url, MODULES_FOLDER)+'/';
22
- const projectRelativeServicePath = './' + SRC_FOLDER + `${SERVICE_NAME}/`;
22
+ const projectRootPath = PATH_SERVICE.getProjectRoot(import.meta.url, MODULES_FOLDER) + path.sep;
23
+ const projectRelativeServicePath = path.join('.', SRC_FOLDER, SERVICE_NAME) + path.sep;
23
24
  const SERVICE_URL = new URL(projectRelativeServicePath, projectRootPath);
24
25
  await MODEL_SERVICE.post(SERVICE_NAME, SERVICE_URL);
25
26
 
@@ -24,24 +24,27 @@ export default async (SERVICE_NAME, SERVICE_URL, METHOD_CODE) => {
24
24
  VALIDATOR: await VALIDATION_SERVICE.get(METHOD_NAME, SERVICE_URL),
25
25
  };
26
26
 
27
+ // Register service within API
27
28
  API_SERVICE.get().SERVICES[SERVICE_NAME][METHOD_NAME] = async (body, claims=undefined) => {
28
29
  const { MODELS, SERVICES } = API_SERVICE.get();
29
30
  return await METHOD.CONTROLLER({ MODELS, SERVICES, ROUTE_CODE, body, claims });
30
31
  }
31
32
 
32
- API_SERVICE.get().VALIDATORS[SERVICE_NAME][METHOD_NAME] = () => {
33
+ // Register service within API
34
+ API_SERVICE.get().VALIDATORS[SERVICE_NAME][METHOD_NAME] = (body, claims=undefined) => {
33
35
  const { MODELS, SERVICES, VALIDATORS } = API_SERVICE.get();
34
- return METHOD.VALIDATOR({ MODELS, SERVICES, VALIDATORS });
36
+ return METHOD.VALIDATOR({ MODELS, SERVICES, VALIDATORS, body, claims });
35
37
  }
36
38
 
37
39
  const METHOD_TYPE = getType(METHOD_NAME);
38
40
 
41
+ // Register route forn lAMBDA API
39
42
  LOG_SERVICE.post('POSTING_ROUTE', METHOD_ROUTE);
40
43
  API_SERVICE.get()[METHOD_TYPE](METHOD_ROUTE, async (event, res) => {
41
44
  const { body, claims } = EVENT_SERVICE.getParsedEvent(event);
42
45
 
43
46
  try {
44
- if (await VALIDATION_SERVICE.postError(res, ROUTE_CODE, METHOD.VALIDATOR, body)) return;
47
+ if (await VALIDATION_SERVICE.postError(res, ROUTE_CODE, METHOD.VALIDATOR, body, claims)) return;
45
48
  await postResponse(res, ROUTE_CODE, METHOD.CONTROLLER, METHOD_TYPE, body, claims);
46
49
  }
47
50
  catch (METHOD_ERROR) { ERROR_SERVICE.postRuntime(res, ROUTE_CODE, METHOD_ERROR); }
@@ -1,8 +1,9 @@
1
1
  import http from 'http';
2
+ import path from 'path';
2
3
 
3
4
  import getNodejsServerHandler from '../getNodejsServerHandler/index.js';
4
5
 
5
- export default async (ENV_FILE='.env', MODULE_FOLDER='node_modules/') => {
6
+ export default async (ENV_FILE='.env', MODULE_FOLDER='node_modules'+path.sep) => {
6
7
  (await import('../../environment/postEnvFile/index.js')).default(ENV_FILE, MODULE_FOLDER);
7
8
 
8
9
  return (lambdaHandler) => {
@@ -3,8 +3,9 @@ import LOG_SERVICE from '../../log/index.js';
3
3
 
4
4
  import getOptionalObject from '../getOptionalObject/index.js';
5
5
 
6
- export default async (res, ROUTE_CODE, VALIDATOR, input) => {
7
- const { MODELS, SERVICES, VALIDATORS } = API_SERVICE.get(), EVENT_CONTEXT = { MODELS, SERVICES, VALIDATORS };
6
+ export default async (res, ROUTE_CODE, VALIDATOR, input, claims) => {
7
+ const { MODELS, SERVICES, VALIDATORS } = API_SERVICE.get(),
8
+ EVENT_CONTEXT = { MODELS, SERVICES, VALIDATORS, body: input, claims };
8
9
 
9
10
  if (!VALIDATOR && input) {
10
11
  const MESSAGE = { ROUTE_CODE, VALIDATION_ERROR: JSON.stringify({ message: 'BODY_NOT_ALLOWED' }) };
@@ -14,9 +15,8 @@ export default async (res, ROUTE_CODE, VALIDATOR, input) => {
14
15
  }
15
16
 
16
17
  if (!VALIDATOR) return false;
17
-
18
- const VALIDATION_ERROR =
19
- (await getOptionalObject(VALIDATOR(EVENT_CONTEXT)).safeParseAsync(input)).error?.format();
18
+ const VALIDATION_OBJECT = await VALIDATOR(EVENT_CONTEXT);
19
+ const VALIDATION_ERROR = (await getOptionalObject(VALIDATION_OBJECT).safeParseAsync(input)).error?.format();
20
20
 
21
21
  if (VALIDATION_ERROR) {
22
22
  const MESSAGE = { ROUTE_CODE, VALIDATION_ERROR: JSON.stringify(VALIDATION_ERROR) };