@webtypen/webframez-core 0.0.7 → 0.0.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.
@@ -90,6 +90,20 @@ class RouterFacade {
90
90
  else if (req.method === "DELETE") {
91
91
  return this.dissolveRoute(this.routesDELETE, req.url);
92
92
  }
93
+ else if (req.method === "OPTIONS") {
94
+ if (req.headers['access-control-request-method'] === 'GET') {
95
+ return this.dissolveRoute(this.routesGET, req.url);
96
+ }
97
+ else if (req.headers['access-control-request-method'] === 'POST') {
98
+ return this.dissolveRoute(this.routesPOST, req.url);
99
+ }
100
+ else if (req.headers['access-control-request-method'] === 'PUT') {
101
+ return this.dissolveRoute(this.routesPUT, req.url);
102
+ }
103
+ else if (req.headers['access-control-request-method'] === 'DELETE') {
104
+ return this.dissolveRoute(this.routesDELETE, req.url);
105
+ }
106
+ }
93
107
  return null;
94
108
  }
95
109
  /**
@@ -150,6 +164,8 @@ class RouterFacade {
150
164
  handleRequest(req, res) {
151
165
  return __awaiter(this, void 0, void 0, function* () {
152
166
  const route = this.dissolve(req);
167
+ const response = new Response_1.Response();
168
+ response.setServerResponse(res);
153
169
  // Check-Middleware
154
170
  if (route &&
155
171
  route.options &&
@@ -165,7 +181,7 @@ class RouterFacade {
165
181
  try {
166
182
  middleware(resolve, (status, data) => {
167
183
  reject({ status: status, data: data });
168
- }, req, res);
184
+ }, req, response);
169
185
  }
170
186
  catch (e) {
171
187
  console.error(e);
@@ -187,6 +203,13 @@ class RouterFacade {
187
203
  }
188
204
  }
189
205
  }
206
+ // Handle OPTIONS-Request
207
+ if (req.method === "OPTIONS") {
208
+ res.statusCode = 200;
209
+ res.setHeader('Content-Length', '0');
210
+ res.end();
211
+ return;
212
+ }
190
213
  // Resolve route-component (handle controller definition)
191
214
  if (route && typeof route.component === "string") {
192
215
  const split = route.component.split("@");
@@ -223,7 +246,7 @@ class RouterFacade {
223
246
  rawHeaders: req.rawHeaders,
224
247
  url: req.url,
225
248
  method: req.method,
226
- }, new Response_1.Response().setServerResponse(res));
249
+ }, response);
227
250
  res.end();
228
251
  }
229
252
  catch (e) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webtypen/webframez-core",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "description": "The core package of the typescript based webframez (web-framework) by webtypen.de",
5
5
  "homepage": "https://webtypen.de/",
6
6
  "license": "MIT",
@@ -112,6 +112,16 @@ class RouterFacade {
112
112
  return this.dissolveRoute(this.routesPUT, req.url);
113
113
  } else if (req.method === "DELETE") {
114
114
  return this.dissolveRoute(this.routesDELETE, req.url);
115
+ } else if (req.method === "OPTIONS") {
116
+ if (req.headers['access-control-request-method'] === 'GET') {
117
+ return this.dissolveRoute(this.routesGET, req.url);
118
+ } else if(req.headers['access-control-request-method'] === 'POST') {
119
+ return this.dissolveRoute(this.routesPOST, req.url);
120
+ } else if(req.headers['access-control-request-method'] === 'PUT') {
121
+ return this.dissolveRoute(this.routesPUT, req.url);
122
+ } else if(req.headers['access-control-request-method'] === 'DELETE') {
123
+ return this.dissolveRoute(this.routesDELETE, req.url);
124
+ }
115
125
  }
116
126
  return null;
117
127
  }
@@ -179,8 +189,10 @@ class RouterFacade {
179
189
  * @param res
180
190
  */
181
191
  async handleRequest(req: IncomingMessage, res: ServerResponse) {
182
- const route = this.dissolve(req);
183
-
192
+ const route = this.dissolve(req);
193
+ const response = new Response();
194
+ response.setServerResponse(res);
195
+
184
196
  // Check-Middleware
185
197
  if (
186
198
  route &&
@@ -198,6 +210,7 @@ class RouterFacade {
198
210
  );
199
211
  }
200
212
 
213
+
201
214
  try {
202
215
  await new Promise((resolve, reject) => {
203
216
  try {
@@ -207,7 +220,7 @@ class RouterFacade {
207
220
  reject({ status: status, data: data });
208
221
  },
209
222
  req,
210
- res
223
+ response
211
224
  );
212
225
  } catch (e) {
213
226
  console.error(e);
@@ -239,6 +252,14 @@ class RouterFacade {
239
252
  }
240
253
  }
241
254
 
255
+ // Handle OPTIONS-Request
256
+ if (req.method === "OPTIONS") {
257
+ res.statusCode = 200;
258
+ res.setHeader('Content-Length', '0');
259
+ res.end();
260
+ return;
261
+ }
262
+
242
263
  // Resolve route-component (handle controller definition)
243
264
  if (route && typeof route.component === "string") {
244
265
  const split = route.component.split("@");
@@ -280,7 +301,7 @@ class RouterFacade {
280
301
  url: req.url,
281
302
  method: req.method,
282
303
  },
283
- new Response().setServerResponse(res)
304
+ response
284
305
  );
285
306
  res.end();
286
307
  } catch (e) {