minimonolith 0.15.5 → 0.17.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/index.js +4 -5
- package/package.json +3 -2
- package/src/database/databaseService.js +4 -1
- package/src/model/loadModels.js +2 -2
- package/src/service/methodHandler.js +2 -2
- package/src/service/registerMethod.js +3 -2
- package/src/service/registerService.js +4 -2
- package/src/zod/index.js +5 -0
- package/src/zod/optionalZObject.js +8 -0
- package/src/service/back.registerMethods.js +0 -41
- /package/src/{local → development}/index.js +0 -0
- /package/src/{local → development}/lambdaServer.js +0 -0
- /package/src/{local → development}/loadEnvFile.js +0 -0
- /package/src/{local → development}/serverHandler.js +0 -0
package/index.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
|
|
1
|
+
import { z } from './src/zod/index.js';
|
|
3
2
|
import { createAPI } from './src/api/index.js';
|
|
4
3
|
import { DB_VALIDATION } from './src/database/index.js';
|
|
5
4
|
|
|
6
|
-
const
|
|
7
|
-
return await import('./src/
|
|
5
|
+
const createDevEnvironment = async () => {
|
|
6
|
+
return await import('./src/development/index.js');
|
|
8
7
|
}
|
|
9
8
|
|
|
10
|
-
export {
|
|
9
|
+
export { createDevEnvironment, createAPI, z, DB_VALIDATION };
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "minimonolith",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.17.0",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"scripts": {
|
|
8
|
-
"start
|
|
8
|
+
"start": "nodemon --inspect=0.0.0.0 ./server.js",
|
|
9
9
|
"test": "NODE_OPTIONS=--experimental-vm-modules npx jest --coverage"
|
|
10
10
|
},
|
|
11
11
|
"keywords": [
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"dotenv": "^16.0.3",
|
|
25
25
|
"jest": "^29.5.0",
|
|
26
26
|
"mysql2": "^3.2.0",
|
|
27
|
+
"nodemon": "^2.0.22",
|
|
27
28
|
"sqlite3": "^5.1.6"
|
|
28
29
|
}
|
|
29
30
|
}
|
|
@@ -37,7 +37,10 @@ const registerDatabaseService = async API => {
|
|
|
37
37
|
API.ORM = new Sequelize(MM_API_DB_DB, MM_API_DB_USER, MM_API_DB_PASS, SEQUELIZE_OPTIONS);
|
|
38
38
|
establishConnection(API.ORM);
|
|
39
39
|
|
|
40
|
-
} catch (
|
|
40
|
+
} catch (REGISTER_DB_ERROR) {
|
|
41
|
+
console.error({ ROUTE_CODE, REGISTER_DB_ERROR });
|
|
42
|
+
if (process.env.MM_API_LOCAL_ENV) throw REGISTER_DB_ERROR;
|
|
43
|
+
}
|
|
41
44
|
};
|
|
42
45
|
|
|
43
46
|
export { establishConnection, registerDatabaseService };
|
package/src/model/loadModels.js
CHANGED
|
@@ -21,9 +21,9 @@ const loadAndSyncModels = async API => {
|
|
|
21
21
|
model.associate(MODELS);
|
|
22
22
|
});
|
|
23
23
|
|
|
24
|
-
console.log({ ROUTE_CODE, SYNCING_ORM: '
|
|
24
|
+
console.log({ ROUTE_CODE, SYNCING_ORM: 'WAITING_FOR_ORM_SYNCING' });
|
|
25
25
|
await API.ORM.sync({ alter: process.env.MM_API_LOCAL_ENV ? true : false });
|
|
26
|
-
console.log({ ROUTE_CODE, SYNCING_ORM: '
|
|
26
|
+
console.log({ ROUTE_CODE, SYNCING_ORM: 'DONE_ORM_SYNCING' });
|
|
27
27
|
|
|
28
28
|
return MODELS;
|
|
29
29
|
};
|
|
@@ -24,9 +24,9 @@ const exposedMethodHandler = async (body, res, claims, API, METHOD, ROUTE_CODE)
|
|
|
24
24
|
break;
|
|
25
25
|
default:
|
|
26
26
|
//console.error({ ROUTE_CODE, METHOD_ERROR: JSON.stringify(METHOD_ERROR, null, 2) });
|
|
27
|
-
//console.error({ ROUTE_CODE, METHOD_ERROR: METHOD_ERROR.toString() });
|
|
28
27
|
console.error({ ROUTE_CODE, METHOD_ERROR: METHOD_ERROR.stack });
|
|
29
|
-
res.status(500).json({ ROUTE_CODE, METHOD_ERROR: METHOD_ERROR.toString() });
|
|
28
|
+
//res.status(500).json({ ROUTE_CODE, METHOD_ERROR: METHOD_ERROR.toString() });
|
|
29
|
+
res.status(500).json({ ROUTE_CODE, METHOD_ERROR: METHOD_ERROR.stack.toString() });
|
|
30
30
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import url from 'url';
|
|
3
3
|
import path from 'path';
|
|
4
|
-
import { z } from 'zod';
|
|
4
|
+
import { z, optionalZObject } from '../zod/index.js';
|
|
5
5
|
|
|
6
6
|
const registerMethod = async (SERVICE_NAME, SERVICE_URL, METHOD_NAME, METHOD_ROUTE_CODE) => {
|
|
7
7
|
|
|
@@ -19,13 +19,14 @@ const registerMethod = async (SERVICE_NAME, SERVICE_URL, METHOD_NAME, METHOD_ROU
|
|
|
19
19
|
console.log(' FOUND_VALIDATOR');
|
|
20
20
|
|
|
21
21
|
const VALIDATOR_BODY = (await import(VALIDATOR_URL)).default;
|
|
22
|
-
method.VALIDATOR = MODELS =>
|
|
22
|
+
method.VALIDATOR = MODELS => optionalZObject(VALIDATOR_BODY(MODELS));
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
return method;
|
|
26
26
|
|
|
27
27
|
} catch (REGISTER_METHOD_ERROR) {
|
|
28
28
|
console.error({ ROUTE_CODE, REGISTER_METHOD_ERROR, STACK_TRASE: REGISTER_METHOD_ERROR.stack });
|
|
29
|
+
if (process.env.MM_API_LOCAL_ENV) { throw REGISTER_METHOD_ERROR; }
|
|
29
30
|
}
|
|
30
31
|
};
|
|
31
32
|
|
|
@@ -51,12 +51,14 @@ const registerService = async (API, SERVICE_NAME, SRC_FOLDER, MODULE_FOLDER) =>
|
|
|
51
51
|
SERVICE_METHODS[METHOD_CODE], METHOD_ROUTE_CODE);
|
|
52
52
|
});
|
|
53
53
|
};
|
|
54
|
-
} catch (
|
|
54
|
+
} catch (REGISTER_SERVICE_ERROR) {
|
|
55
55
|
console.error({
|
|
56
56
|
ROUTE_CODE,
|
|
57
57
|
SERVICE_NAME,
|
|
58
|
-
|
|
58
|
+
REGISTER_SERVICE_ERROR,
|
|
59
|
+
STACK_TRASE: REGISTER_SERVICE_ERROR.stack,
|
|
59
60
|
});
|
|
61
|
+
if (process.env.MM_API_LOCAL_ENV) { throw REGISTER_SERVICE_ERROR; }
|
|
60
62
|
}
|
|
61
63
|
}
|
|
62
64
|
|
package/src/zod/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
export default zElements => {
|
|
4
|
+
const zObject = z.object(zElements).strict();
|
|
5
|
+
if (!Object.values(zElements).every(zElement => zElement.isOptional())) return zObject;
|
|
6
|
+
|
|
7
|
+
return z.custom(inputBody => inputBody===undefined ? true : zObject.parse(inputBody));
|
|
8
|
+
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import url from 'url';
|
|
3
|
-
import path from 'path';
|
|
4
|
-
import { z } from 'zod';
|
|
5
|
-
|
|
6
|
-
import { parseMethodPathCode } from './parseMethodPathCode.js';
|
|
7
|
-
import { getMethodRouteCode } from './getMethodRouteCode.js';
|
|
8
|
-
|
|
9
|
-
const registerMethods = methodPathCodes => async (SERVICE_NAME, SERVICE_URL) => {
|
|
10
|
-
let ROUTE_CODE = 'REGISTER_METHODS';
|
|
11
|
-
|
|
12
|
-
try {
|
|
13
|
-
const methods = await methodPathCodes.reduce(async (prevMethods, METHOD_PATH_CODE) => {
|
|
14
|
-
const methods = await prevMethods;
|
|
15
|
-
const { METHOD_NAME } = parseMethodPathCode(METHOD_PATH_CODE);
|
|
16
|
-
ROUTE_CODE = 'REGISTER_METHODS_' + getMethodRouteCode(SERVICE_NAME, METHOD_NAME);
|
|
17
|
-
console.log(' FOUND_METHOD', METHOD_NAME);
|
|
18
|
-
|
|
19
|
-
methods[METHOD_PATH_CODE] = { VALIDATOR: (MODELS, ROUTE_CODE) => z.undefined() };
|
|
20
|
-
methods[METHOD_PATH_CODE].handler =
|
|
21
|
-
(await import(new URL(`${METHOD_NAME}/index.js`, SERVICE_URL))).default;
|
|
22
|
-
|
|
23
|
-
const VALIDATOR_URL = new URL(`${METHOD_NAME}/valid.js`, SERVICE_URL);
|
|
24
|
-
if (fs.existsSync(url.fileURLToPath(VALIDATOR_URL))) {
|
|
25
|
-
console.log(' FOUND_VALIDATOR');
|
|
26
|
-
const VALIDATOR_BODY = (await import(VALIDATOR_URL)).default;
|
|
27
|
-
methods[METHOD_PATH_CODE].VALIDATOR = (MODELS, ROUTE_CODE) =>
|
|
28
|
-
z.object(VALIDATOR_BODY(MODELS, ROUTE_CODE)).strict();
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return methods;
|
|
32
|
-
}, Promise.resolve({}));
|
|
33
|
-
|
|
34
|
-
return methods;
|
|
35
|
-
} catch (REGISTER_METHOD_ERROR) {
|
|
36
|
-
console.error({ ROUTE_CODE, REGISTER_METHOD_ERROR,
|
|
37
|
-
STACK_TRASE: REGISTER_METHOD_ERROR.stack });
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
export { registerMethods };
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|