@paralect/hive 0.1.37 → 0.1.39

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@paralect/hive",
3
- "version": "0.1.37",
3
+ "version": "0.1.39",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -27,6 +27,16 @@ const zodSchemaToSchemaMappings = () => {
27
27
  return newSchemaMappings;
28
28
  };
29
29
 
30
+ const isZodArray = (schema) => {
31
+ if (schema instanceof ZodArray) return true;
32
+
33
+ if (schema._def?.innerType) {
34
+ return isZodArray(schema._def.innerType);
35
+ }
36
+
37
+ return false;
38
+ };
39
+
30
40
  export default async () => {
31
41
  const prevSchema = await schemaMappingService.findOne({});
32
42
  const prevSchemaMappings = prevSchema?.mappings;
@@ -63,7 +73,7 @@ export default async () => {
63
73
  );
64
74
  await Promise.all(
65
75
  uniqueDependentEntities.map(async (entity) => {
66
- if (schema[fieldName] instanceof ZodArray) {
76
+ if (isZodArray(schema.shape[fieldName])) {
67
77
  await db.services[schemaName].atomic.update(
68
78
  { [`${fieldName}._id`]: entity._id },
69
79
  {
@@ -63,15 +63,8 @@ export default async (app) => {
63
63
  app.use(routeErrorHandler);
64
64
  app.use(tryToAttachUser);
65
65
 
66
-
67
66
  const [resources, allMiddlewares] = await Promise.all([getResources(), getMiddlewares()]);
68
67
 
69
- if (config._hive.globalMiddlewaresFn) {
70
- config._hive.globalMiddlewaresFn().forEach(globalMiddleware => {
71
- app.use(globalMiddleware);
72
- })
73
- }
74
-
75
68
  _.each(resources, async ({ name: resourceName }) => {
76
69
  const resourceRouter = new Router();
77
70
  const globalRouter = new Router();
@@ -99,7 +92,7 @@ export default async (app) => {
99
92
  }
100
93
  return -1;
101
94
  }));
102
-
95
+
103
96
  endpoints.forEach(({ endpoint, requestSchema, middlewares = [], handler }) => {
104
97
  let targetRouter;
105
98
  console.log('[routes] Register endpoint', resourceName, endpoint?.method || 'GET', endpoint?.url);
@@ -115,6 +108,13 @@ export default async (app) => {
115
108
  targetRouter = resourceRouter;
116
109
  }
117
110
 
111
+ const globalMiddleware = allMiddlewares.find(m => m.name === 'global');
112
+
113
+ if (globalMiddleware) {
114
+ globalMiddleware.runOrder = 0;
115
+ middlewares.unshift(globalMiddleware.fn);
116
+ }
117
+
118
118
  middlewares = middlewares.map(middleware => {
119
119
  if (_.isString(middleware)) {
120
120
  if (!allMiddlewares.find(m => m.name === middleware)) {