vanilla-jet 1.0.3 → 1.0.4

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.
Files changed (2) hide show
  1. package/framework/router.js +104 -97
  2. package/package.json +1 -1
@@ -16,6 +16,7 @@ function Router(server) {
16
16
  };
17
17
  this.defaultRoute = '';
18
18
  this.server = server;
19
+ this.cwd = process.cwd();
19
20
  }
20
21
 
21
22
  Router.prototype.routeToRegExp = function(route) {
@@ -56,20 +57,41 @@ Router.prototype.removeRoute = function(method, route) {};
56
57
 
57
58
  Router.prototype.onRequest = function(req, res) {
58
59
 
59
- var obj = this;
60
- var isMatch = false;
61
- var zlib = require('zlib');
62
- var response = new Response(res);
63
- var request = new Request(req, {
64
- onDataReceived: function() {
65
-
66
- //console.log(request.path);
67
- if (request.path == obj.server.options.base_url) {
68
- request.path = obj.server.options.base_url + obj.defaultRoute;
60
+ let obj = this;
61
+ let isMatch = false;
62
+ let zlib = require('zlib');
63
+ let response = new Response(res);
64
+ let request = new Request(req, {
65
+ onDataReceived: function() {
66
+
67
+ console.log(request.path);
68
+ if (request.path == obj.server.options.base_url) {
69
+ request.path = obj.server.options.base_url + obj.defaultRoute;
70
+ }
71
+ console.log(request.path);
72
+
73
+ // Try with the routes for the current method (get or post)
74
+ _.each(obj.routes[request.type], function(route) {
75
+ if ( request.path.match(route.regexp) ) {
76
+
77
+ var parts = route.handler.split('.'),
78
+ clazz = parts[0],
79
+ method = parts[1],
80
+ callback = obj.validateCallback(clazz, method);
81
+
82
+ if (callback && callback != undefined && callback != '') {
83
+
84
+ isMatch = true;
85
+ handled = callback(request, response, obj.server);
86
+ return;
87
+ }
69
88
  }
89
+ });
90
+
91
+ // If not handled yet, try with the wildcard ones
92
+ if (!handled) {
93
+ _.each(obj.routes['*'], function(route) {
70
94
 
71
- // Try with the routes for the current method (get or post)
72
- _.each(obj.routes[request.type], function(route) {
73
95
  if ( request.path.match(route.regexp) ) {
74
96
 
75
97
  var parts = route.handler.split('.'),
@@ -85,99 +107,84 @@ Router.prototype.onRequest = function(req, res) {
85
107
  }
86
108
  }
87
109
  });
110
+ }
88
111
 
89
- // If not handled yet, try with the wildcard ones
90
- if (!handled) {
91
- _.each(obj.routes['*'], function(route) {
92
-
93
- if ( request.path.match(route.regexp) ) {
112
+ // No route catched, maybe it's a static content
113
+ // or not handled? Well, at this point we call 404
114
+ if (handled == false && isMatch == false ) {
115
+
116
+ var path = require('path'),
117
+ ext = path.extname(req.url).replace('.', ''),
118
+ extHandled = false,
119
+ extHeader = {};
120
+ var mimes = {
121
+
122
+ 'png' : 'image/png',
123
+ 'webp': 'image/webp',
124
+ 'jpg' : 'image/jpg',
125
+ 'css' : 'text/css',
126
+ 'gz' : 'application/x-gzip',
127
+ 'gif' : 'image/gif',
128
+ 'js' : 'text/javascript',
129
+ 'svg' : 'image/svg+xml',
130
+ 'ttf' : 'application/x-font-ttf',
131
+ 'otf' : 'application/x-font-opentype',
132
+ 'pdf' : 'application/pdf',
133
+ 'json' : 'application/json'
134
+ };
135
+
136
+ var compressionMimes = {
137
+ 'css' : 'text/css',
138
+ 'js' : 'text/javascript',
139
+ 'gz' : 'application/x-gzip'
140
+ };
141
+
142
+ if (mimes[ext] != undefined && mimes[ext] != 'undefined') {
143
+
144
+ extHandled = true;
145
+ extHeader = {'Content-Type': mimes[ext]};
146
+ }
94
147
 
95
- var parts = route.handler.split('.'),
96
- clazz = parts[0],
97
- method = parts[1],
98
- callback = obj.validateCallback(clazz, method);
148
+ if (extHandled) {
149
+
150
+ let fs = require('fs'),
151
+ rep = obj.cwd.replace('core/framework', ''),
152
+ route = request.path.replace(obj.server.options.base_url, ''),
153
+ filename = path.join(rep, route),
154
+ filePrivate = obj.isProtectedFile(route);
155
+
156
+ console.log(rep);
157
+ console.log(route);
158
+ console.log(filename);
159
+ console.log("-------------");
160
+
161
+ fs.exists(filename, function(exists) {
162
+
163
+ if (exists && !filePrivate) {
164
+
165
+ var acceptEncoding = (req.headers['accept-encoding'] != undefined) ? req.headers['accept-encoding'] : '';
166
+ var fileStream = fs.createReadStream(filename);
167
+ if (acceptEncoding.match(/\bgzip\b/) && compressionMimes[ext] != undefined) {
168
+ extHeader['Content-Encoding'] = 'gzip';
169
+ res.writeHead(200, extHeader);
170
+ fileStream.pipe(zlib.createGzip()).pipe(res);
171
+ } else {
172
+ res.writeHead(200, extHeader);
173
+ fileStream.pipe(res);
174
+ }
175
+ return;
99
176
 
100
- if (callback && callback != undefined && callback != '') {
177
+ } else {
101
178
 
102
- isMatch = true;
103
- handled = callback(request, response, obj.server);
104
- return;
105
- }
179
+ // Return 404
180
+ obj.onNotFound(response);
106
181
  }
107
182
  });
108
183
  }
109
-
110
- // No route catched, maybe it's a static content
111
- // or not handled? Well, at this point we call 404
112
- if (handled == false && isMatch == false ) {
113
-
114
- var path = require('path'),
115
- ext = path.extname(req.url).replace('.', ''),
116
- extHandled = false,
117
- extHeader = {};
118
- var mimes = {
119
-
120
- 'png' : 'image/png',
121
- 'webp': 'image/webp',
122
- 'jpg' : 'image/jpg',
123
- 'css' : 'text/css',
124
- 'gz' : 'application/x-gzip',
125
- 'gif' : 'image/gif',
126
- 'js' : 'text/javascript',
127
- 'svg' : 'image/svg+xml',
128
- 'ttf' : 'application/x-font-ttf',
129
- 'otf' : 'application/x-font-opentype',
130
- 'pdf' : 'application/pdf',
131
- 'json' : 'application/json'
132
- };
133
-
134
- var compressionMimes = {
135
- 'css' : 'text/css',
136
- 'js' : 'text/javascript',
137
- 'gz' : 'application/x-gzip'
138
- };
139
-
140
- if (mimes[ext] != undefined && mimes[ext] != 'undefined') {
141
-
142
- extHandled = true;
143
- extHeader = {'Content-Type': mimes[ext]};
144
- }
145
-
146
- if (extHandled) {
147
-
148
- var fs = require('fs'),
149
- rep = __dirname.replace('core/framework', ''),
150
- route = request.path.replace(obj.server.options.base_url, ''),
151
- filename = path.join(rep, route),
152
- filePrivate = obj.isProtectedFile(route);
153
-
154
- fs.exists(filename, function(exists) {
155
-
156
- if (exists && !filePrivate) {
157
-
158
- var acceptEncoding = (req.headers['accept-encoding'] != undefined) ? req.headers['accept-encoding'] : '';
159
- var fileStream = fs.createReadStream(filename);
160
- if (acceptEncoding.match(/\bgzip\b/) && compressionMimes[ext] != undefined) {
161
- extHeader['Content-Encoding'] = 'gzip';
162
- res.writeHead(200, extHeader);
163
- fileStream.pipe(zlib.createGzip()).pipe(res);
164
- } else {
165
- res.writeHead(200, extHeader);
166
- fileStream.pipe(res);
167
- }
168
- return;
169
-
170
- } else {
171
-
172
- // Return 404
173
- obj.onNotFound(response);
174
- }
175
- });
176
- }
177
- }
178
184
  }
179
- }),
180
- handled = false;
185
+ }
186
+ }),
187
+ handled = false;
181
188
  isMatch = false;
182
189
  };
183
190
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vanilla-jet",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "VannilaJet framework",
5
5
  "main": "index.js",
6
6
  "scripts": {