@paralect/hive 0.1.8 → 0.1.9
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
|
@@ -57,13 +57,12 @@ const logRequestToMongo = async (ctx, next) => {
|
|
|
57
57
|
}
|
|
58
58
|
};
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
export default async (app) => {
|
|
61
61
|
app.use(logRequestToMongo);
|
|
62
62
|
app.use(attachCustomErrors);
|
|
63
63
|
app.use(routeErrorHandler);
|
|
64
64
|
app.use(tryToAttachUser);
|
|
65
65
|
|
|
66
|
-
|
|
67
66
|
|
|
68
67
|
const [resources, allMiddlewares] = await Promise.all([getResources(), getMiddlewares()]);
|
|
69
68
|
|
|
@@ -96,12 +95,6 @@ const defineRoutes = async (app) => {
|
|
|
96
95
|
}));
|
|
97
96
|
|
|
98
97
|
endpoints.forEach(({ endpoint, requestSchema, middlewares = [], handler }) => {
|
|
99
|
-
const additionalMiddlewares = [];
|
|
100
|
-
|
|
101
|
-
if (requestSchema) {
|
|
102
|
-
additionalMiddlewares.push(validate(requestSchema));
|
|
103
|
-
}
|
|
104
|
-
|
|
105
98
|
let targetRouter;
|
|
106
99
|
|
|
107
100
|
let url = endpoint.absoluteUrl || endpoint.url;
|
|
@@ -122,21 +115,23 @@ const defineRoutes = async (app) => {
|
|
|
122
115
|
}
|
|
123
116
|
|
|
124
117
|
middleware = allMiddlewares.find(m => m.name === middleware).fn;
|
|
125
|
-
} else if (
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
middleware = allMiddlewares.find(m => m.name === middlewareName).fn(...middlewareParams);
|
|
118
|
+
} else if (middleware?.name && middleware?.args) {
|
|
119
|
+
if (!allMiddlewares.find(m => m.name === middleware.name)) {
|
|
120
|
+
throw new Error(`Middleware ${middleware.name} not found`);
|
|
121
|
+
};
|
|
122
|
+
middleware = allMiddlewares.find(m => m.name === middleware.name).fn(...middleware.args);
|
|
133
123
|
}
|
|
134
124
|
|
|
125
|
+
return middleware;
|
|
126
|
+
}).map(middleware => {
|
|
127
|
+
middleware.runOrder = _.isNumber(middleware.runOrder) ? middleware.runOrder : 1;
|
|
135
128
|
return middleware;
|
|
136
129
|
});
|
|
137
130
|
|
|
138
|
-
|
|
139
|
-
|
|
131
|
+
|
|
132
|
+
if (config._hive.isRequireAuthAllEndpoints) {
|
|
133
|
+
isAuthorized.runOrder = 0;
|
|
134
|
+
middlewares.unshift(isAuthorized);
|
|
140
135
|
}
|
|
141
136
|
|
|
142
137
|
targetRouter[endpoint.method?.toLowerCase() || "get"](
|
|
@@ -146,8 +141,8 @@ const defineRoutes = async (app) => {
|
|
|
146
141
|
ctx.state.endpoint = endpoint;
|
|
147
142
|
await next();
|
|
148
143
|
},
|
|
149
|
-
|
|
150
|
-
...middlewares,
|
|
144
|
+
validate(requestSchema),
|
|
145
|
+
..._.sortBy(middlewares, m => m.runOrder),
|
|
151
146
|
handler
|
|
152
147
|
);
|
|
153
148
|
});
|
|
@@ -155,6 +150,4 @@ const defineRoutes = async (app) => {
|
|
|
155
150
|
app.use(globalRouter.routes());
|
|
156
151
|
app.use(mount(`/${resourceName}`, resourceRouter.routes()));
|
|
157
152
|
});
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
export default defineRoutes;
|
|
153
|
+
};
|