mastercontroller 1.1.18 → 1.1.21

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/MasterAction.js CHANGED
@@ -1,42 +1,45 @@
1
1
 
2
- // version 1.0.17
2
+ // version 0.0.21
3
3
 
4
4
  var master = require('./MasterControl');
5
5
  var fileserver = require('fs');
6
- var tools = require('./MasterTools');
7
- var temp = require('./MasterTemplate');
8
- var templateFunc = null;
6
+ var toolClass = require('./MasterTools');
7
+ var tempClass = require('./MasterTemplate');
8
+ var temp = new tempClass();
9
+ var tools = new toolClass();
9
10
 
10
11
  class MasterAction{
11
-
12
- init(opts){
13
- templateFunc = opts.templateFunc === undefined ? null : opts.templateFunc;
12
+
13
+ getView(location, data){
14
+ var actionUrl = master.root + location;
15
+ var actionView = fileserver.readFileSync(actionUrl, 'utf8');
16
+ return temp.htmlBuilder(actionView, data);
14
17
  }
15
18
 
16
-
19
+
17
20
  returnJson(data){
18
21
  var json = JSON.stringify(data);
19
- if (!master.router.currentRoute.response.headersSent) {
20
- master.router.currentRoute.response.writeHead(200, {'Content-Type': 'application/json'});
21
- master.router.currentRoute.response.end(json);
22
+ if (!this.__response._headerSent) {
23
+ this.__response.writeHead(200, {'Content-Type': 'application/json'});
24
+ this.__response.end(json);
22
25
  }
23
26
  }
24
27
 
25
28
  // location starts from the view folder. Ex: partialViews/fileName.html
26
29
  returnPartialView(location, data){
27
- var actionUrl = master.router.currentRoute.root + "/app/views/" + location;
30
+ var actionUrl = master.root + location;
28
31
  var getAction = fileserver.readFileSync(actionUrl, 'utf8');
29
- if(typeof(templateFunc) === "function"){
30
- return templateFunc(getAction, data);
32
+ if(master.overwrite.isTemplate){
33
+ return master.overwrite.templateRender( data, "returnPartialView");
31
34
  }
32
35
  else{
33
- return temp.htmlBuilder(getAction, data);
36
+ return temp.htmlBuilder(getAction, data);
34
37
  }
35
38
  }
36
39
 
37
40
  redirectBack(fallback){
38
41
  if(fallback === undefined){
39
- var backUrl = master.router.currentRoute.request.headers.referer === "" ? "/" : master.router.currentRoute.request.headers.referer
42
+ var backUrl = this.__requestObject.request.headers.referer === "" ? "/" : this.__requestObject.request.headers.referer
40
43
  this.redirectTo(backUrl);
41
44
  }
42
45
  else{
@@ -68,87 +71,91 @@ class MasterAction{
68
71
 
69
72
  var doneParsedUrl = objCounter >= 1 ? parseUrl + queryString : parseUrl; // /boards?james=dfdfd&rih=sdsd&
70
73
 
71
- if (!master.router.currentRoute.response.headersSent) {
72
- master.router.currentRoute.response.writeHead(302, {
74
+ if (!this.__requestObject.response._headerSent) {
75
+ this.__requestObject.response.writeHead(302, {
73
76
  'Location': doneParsedUrl
74
77
  //add other headers here...
75
78
  });
76
- master.router.currentRoute.response.end();
79
+ this.__requestObject.response.end();
77
80
  }
78
81
 
79
82
  }
80
83
 
81
84
 
82
85
  // redirects to another action inside the same controller = does not reload the page
83
- redirectToAction(namespace, action, type, data){
86
+ redirectToAction(namespace, action, type, data, components){
84
87
 
85
- this.namespace = namespace,
86
- this.action = action;
87
- this.type = type;
88
- this.params = data;
88
+ var requestObj = {
89
+ toController : namespace,
90
+ toAction : action,
91
+ type : type,
92
+ params : data
93
+ }
94
+ if(components){
95
+ var resp = this.__requestObject.response;
96
+ var req = this.__requestObject.request;
97
+ master.router.currentRoute = {root : `${master.root}/components/${namespace}`, toController : namespace, toAction : action, response : resp, request: req };
98
+ }else{
99
+ master.router.currentRoute = {root : `${master.root}/${namespace}`, toController : namespace, toAction : action, response : resp, request: req };
100
+ }
101
+
89
102
 
90
- master.router._call(this);
103
+ master.router._call(requestObj);
91
104
  }
92
105
 
93
106
  // this will allow static pages without master view
94
107
  returnViewWithoutMaster(location, data){
95
108
  var masterView = null;
109
+ this.params = this.params === undefined ? {} : this.params;
96
110
  this.params = tools.combineObjects(data, this.params);
97
111
  var func = master.viewList;
98
112
  this.params = tools.combineObjects(this.params, func);
99
- var actionUrl = (location === undefined) ? master.router.currentRoute.root + "/app/views/" + master.router.currentRoute.toController + "/" + master.router.currentRoute.toAction + ".html" : master.router.currentRoute.root + location;
113
+ var actionUrl = (location === undefined) ? this.__currentRoute.root + "/app/views/" + this.__currentRoute.toController + "/" + this.__currentRoute.toAction + ".html" : master.root + location;
100
114
  var actionView = fileserver.readFileSync(actionUrl, 'utf8');
101
- if(typeof(templateFunc) === "function"){
102
- masterView = templateFunc(actionView, data);
115
+ if(master.overwrite.isTemplate){
116
+ masterView = master.overwrite.templateRender(data, "returnViewWithoutMaster");
103
117
  }
104
118
  else{
105
119
  masterView = temp.htmlBuilder(actionView, data);
106
120
  }
107
- if (!master.router.currentRoute.response.headersSent) {
108
- master.router.currentRoute.response.writeHead(200, {'Content-Type': 'text/html'});
109
- master.router.currentRoute.response.end(masterView);
121
+ if (!this.__requestObject.response._headerSent) {
122
+ this.__requestObject.response.writeHead(200, {'Content-Type': 'text/html'});
123
+ this.__requestObject.response.end(masterView);
110
124
  }
111
125
  }
112
126
 
113
127
  returnViewWithoutEngine(location){
114
- var actionUrl = master.router.currentRoute.root + location;
128
+ var actionUrl = master.root + location;
115
129
  var masterView = fileserver.readFileSync(actionUrl, 'utf8');
116
- if (!master.router.currentRoute.response.headersSent) {
117
- master.router.currentRoute.response.writeHead(200, {'Content-Type': 'text/html'});
118
- master.router.currentRoute.response.end(masterView);
130
+ if (!this.__requestObject.response._headerSent) {
131
+ this.__requestObject.response.writeHead(200, {'Content-Type': 'text/html'});
132
+ this.__requestObject.response.end(masterView);
119
133
  }
120
134
  }
121
135
 
122
136
  returnView(data, location){
123
- var childView = null;
137
+
124
138
  var masterView = null;
125
139
  data = data === undefined ? {} : data;
126
140
  this.params = this.params === undefined ? {} : this.params;
127
141
  this.params = tools.combineObjects(data, this.params);
128
142
  var func = master.viewList;
129
143
  this.params = tools.combineObjects(this.params, func);
130
- var viewUrl = (location === undefined || location === "" || location === null) ? master.router.currentRoute.root + "/app/views/" + master.router.currentRoute.toController + "/" + master.router.currentRoute.toAction + ".html": master.router.currentRoute.root + "/app/" + location;
144
+ var viewUrl = (location === undefined || location === "" || location === null) ? this.__currentRoute.root + "/app/views/" + this.__currentRoute.toController + "/" + this.__currentRoute.toAction + ".html" : master.root + location;
131
145
  var viewFile = fileserver.readFileSync(viewUrl,'utf8');
132
- if(typeof(templateFunc) === "function"){
133
- childView = templateFunc(viewFile, this.params);
134
- }
135
- else{
136
- childView = temp.htmlBuilder(viewFile, this.params);
137
- }
138
-
139
- this.params.yield = childView;
140
- var masterFile = fileserver.readFileSync(master.router.currentRoute.root + "/app/views/layouts/master.html", 'utf8');
141
- if(typeof(templateFunc) === "function"){
142
- masterView = templateFunc(masterFile, this.params);
146
+ var masterFile = fileserver.readFileSync(this.__currentRoute.root + "/app/views/layouts/master.html", 'utf8');
147
+ if(master.overwrite.isTemplate){
148
+ masterView = master.overwrite.templateRender(this.params, "returnView");
143
149
  }
144
150
  else{
151
+ var childView = temp.htmlBuilder(viewFile, this.params);
152
+ this.params.yield = childView;
145
153
  masterView = temp.htmlBuilder(masterFile, this.params);
146
154
  }
147
155
 
148
-
149
- if (!master.router.currentRoute.response.headersSent) {
150
- master.router.currentRoute.response.writeHead(200, {'Content-Type': 'text/html'});
151
- master.router.currentRoute.response.end(masterView);
156
+ if (!this.__response._headerSent) {
157
+ this.__response.writeHead(200, {'Content-Type': 'text/html'});
158
+ this.__response.end(masterView);
152
159
  }
153
160
 
154
161
  }
@@ -161,14 +168,4 @@ class MasterAction{
161
168
 
162
169
  }
163
170
 
164
- // IMPORTANT
165
- // you dont instatiate application controller extention methods because it will get done on build
166
- var masterAction = new MasterAction();
167
- // give option to change the template engine. Skips default template engine and calls templateFunc function. Inside this function you can return your own parsed TEXT or HTML.
168
- master.extend({action: {
169
- init : masterAction.init,
170
- close: masterAction.close,
171
- templateFunc : templateFunc
172
- } });
173
- // you need to have access to functions inside the controller
174
- master.extendController(masterAction);
171
+ master.extendController(MasterAction);
@@ -1,4 +1,4 @@
1
- // version 1.5
1
+ // version 1.6
2
2
  var master = require('./MasterControl');
3
3
 
4
4
  var _beforeActionFunc = {
@@ -89,5 +89,4 @@ class MasterActionFilters {
89
89
  }
90
90
  }
91
91
 
92
- master.extendController(new MasterActionFilters());
93
- //module.exports = MasterActionFilters;
92
+ master.extendController( MasterActionFilters);
package/MasterControl.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // MasterControl - by Alexander rich
2
- // version 1.0.19
2
+ // version 1.0.21
3
3
 
4
4
  var url = require('url');
5
5
  var fileserver = require('fs');
@@ -66,26 +66,18 @@ class MasterControl {
66
66
  }
67
67
 
68
68
  // this extends master framework - adds your class to main master class object
69
- extend(){
70
- var i = arguments.length;
71
-
72
- while (i--) {
73
-
74
- for (var m in arguments[i]) {
75
- this[m] = arguments[i][m];
76
- }
77
- }
78
-
79
- return MasterControl;
69
+ extend(name, element){
70
+ this[name] = new element()
80
71
  }
81
72
 
82
73
  // extends class methods to be used inside of the view class using the THIS keyword
83
74
  extendView( name, element){
75
+ element = new element();
84
76
  var $that = this;
85
77
  var propertyNames = Object.getOwnPropertyNames( element.__proto__);
86
78
  this.viewList[name] = {};
87
79
  for(var i in propertyNames){
88
- if(propertyNames !== "constructor"){
80
+ if(propertyNames[i] !== "constructor"){
89
81
  if (propertyNames.hasOwnProperty(i)) {
90
82
  $that.viewList[name][propertyNames[i]] = element[propertyNames[i]];
91
83
  }
@@ -95,11 +87,11 @@ class MasterControl {
95
87
 
96
88
  // extends class methods to be used inside of the controller class using the THIS keyword
97
89
  extendController(element){
98
-
90
+ element = new element();
99
91
  var $that = this;
100
92
  var propertyNames = Object.getOwnPropertyNames( element.__proto__);
101
93
  for(var i in propertyNames){
102
- if(propertyNames !== "constructor"){
94
+ if(propertyNames[i] !== "constructor"){
103
95
  if (propertyNames.hasOwnProperty(i)) {
104
96
  $that.controllerList[propertyNames[i]] = element[propertyNames[i]];
105
97
  }
package/MasterCors.js CHANGED
@@ -1,6 +1,5 @@
1
- // version 1.1.7
1
+ // version 1.1.10
2
2
  var master = require('./MasterControl');
3
- var tools = require('./MasterTools');
4
3
 
5
4
  // todo - res.setHeader('Access-Control-Request-Method', '*');
6
5
  class MasterCors{
@@ -144,4 +143,4 @@ class MasterCors{
144
143
  }
145
144
  }
146
145
 
147
- master.extend({cors: new MasterCors() });
146
+ master.extend("cors", MasterCors);
package/MasterError.js CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- // version 1.0.17
2
+ // version 1.0.19
3
3
  var master = require('./MasterControl');
4
4
  var winston = require('winston');
5
5
  var fileserver = require('fs');
@@ -113,7 +113,7 @@ class MasterError{
113
113
  }
114
114
  }
115
115
 
116
- master.extend({error: new MasterError()});
116
+ master.extend("error", MasterError);
117
117
 
118
118
  // ================ CODES YOU CAN USE ================ //
119
119
  // ACCEPTED 202 Accepted
package/MasterHtml.js CHANGED
@@ -1,15 +1,16 @@
1
-
2
- // version 1.0.17
1
+ // version 0.0.21
3
2
 
4
3
  var master = require('./MasterControl');
5
- var temp = require('./MasterTemplate');
6
4
  var fs = require('fs');
7
- var tools = require('./MasterTools');
5
+ var tempClass = require('./MasterTemplate');
6
+ var toolClass = require('./MasterTools');
7
+ var temp = new tempClass();
8
+ var tools = new toolClass();
8
9
 
9
10
  class html {
10
11
 
11
12
  javaScriptSerializer(name, obj){
12
- return `<script data-eer type="text/javascript">
13
+ return `<script type="text/javascript">
13
14
  ${name} = ${JSON.stringify(obj)}
14
15
  </script>`;
15
16
  }
@@ -23,8 +24,8 @@ class html {
23
24
  var filepartialView = fs.readFileSync(master.router.currentRoute.root + partialViewUrl, 'utf8');
24
25
 
25
26
  var partialView = null;
26
- if(typeof(master.action.templateFunc) === "function"){
27
- partialView = master.action.templateFunc(filepartialView, params);
27
+ if(master.overwrite.isTemplate){
28
+ partialView = master.overwrite.templateRender(params, "renderPartialView");
28
29
  }
29
30
  else{
30
31
  partialView = temp.htmlBuilder(filepartialView, params);
@@ -35,33 +36,41 @@ class html {
35
36
  }
36
37
 
37
38
  // render all your link tags styles given the folder location
38
- renderStyles(folderName, typeArray){
39
+ renderStyles(folderName, typeArray){
39
40
  var styles = [];
40
41
  var styleFolder = `/app/assets/stylesheets/`;
41
42
  var rootLocation = master.router.currentRoute.root;
43
+ var extention = "";
44
+
42
45
  if(master.router.currentRoute.isComponent === true){
43
- rootLocation = tools.getBackSlashBySection(master.router.currentRoute.root, 2, "/");
44
- styleFolder = `${rootLocation}${styleFolder}`;
46
+ extention = tools.getBackSlashBySection(master.router.currentRoute.root, 2, "/");
45
47
  }
48
+
46
49
  var type = typeArray === undefined ? ["css"] : typeArray;
47
50
 
48
51
  if(folderName){
49
52
  styleFolder = `${styleFolder}${folderName}/`;
50
53
  }
51
- if (fs.existsSync(styleFolder)) {
52
- fs.readdirSync(styleFolder).forEach(function(file){
54
+
55
+ if (fs.existsSync(`${rootLocation}${styleFolder}`)) {
56
+ fs.readdirSync(`${rootLocation}${styleFolder}`).forEach(function(file){
53
57
 
54
58
  var fileExtension = file.replace(/^.*\./, '');
55
59
  if(type.indexOf(fileExtension) >= 0){
56
- var fileLocatoon = `${styleFolder}${file}`
57
- styles.push(`<link rel="stylesheet" type="text/${type}" href="/${fileLocatoon}">`);
60
+ var fileLocatoon = `${styleFolder}${file}`;
61
+ if(master.router.currentRoute.isComponent === true){
62
+ styles.push(`<link rel="stylesheet" type="text/${type}" href="/${extention}${fileLocatoon}">`);
63
+ }
64
+ else{
65
+ styles.push(`<link rel="stylesheet" type="text/${type}" href="/${fileLocatoon}">`);
66
+ }
58
67
  }
59
68
  });
60
69
  }
61
70
  var partialView = null;
62
71
 
63
- if(typeof(master.action.templateFunc) === "function"){
64
- partialView = master.action.templateFunc(styles.join(""), {});
72
+ if(master.overwrite.isTemplate){
73
+ partialView = master.overwrite.templateRender({}, "renderStyles");
65
74
  }
66
75
  else{
67
76
  partialView = temp.htmlBuilder(styles.join(""),{});
@@ -76,9 +85,10 @@ class html {
76
85
  var scripts = [];
77
86
  var jsFolder =`/app/assets/javascripts/`;
78
87
  var rootLocation = master.router.currentRoute.root;
88
+ var extention = "";
89
+ //components/auth/app/assets/javascripts/pages/changePassword.js
79
90
  if(master.router.currentRoute.isComponent === true){
80
- rootLocation = tools.getBackSlashBySection(master.router.currentRoute.root, 2, "/");
81
- jsFolder = `${rootLocation}${jsFolder}`;
91
+ extention = tools.getBackSlashBySection(master.router.currentRoute.root, 2, "/");
82
92
  }
83
93
 
84
94
  var type = typeArray === undefined ? ["js"] : typeArray;
@@ -87,20 +97,25 @@ class html {
87
97
  jsFolder = `${jsFolder}${folderName}/`;
88
98
  }
89
99
 
90
- if (fs.existsSync(jsFolder)) {
91
- fs.readdirSync(jsFolder).forEach(function(file){
100
+ if (fs.existsSync(`${rootLocation}${jsFolder}`)) {
101
+ fs.readdirSync(`${rootLocation}${jsFolder}`).forEach(function(file){
92
102
  var fileExtension = file.replace(/^.*\./, '');
93
103
  if(type.indexOf(fileExtension) >= 0){
94
- var fileLocatoon = `${jsFolder}${file}`
95
- scripts.push(`<script src="/${fileLocatoon}"></script>`);
104
+ var fileLocatoon = `${jsFolder}${file}`;
105
+ if(master.router.currentRoute.isComponent === true){
106
+ scripts.push(`<script src="/${extention}${fileLocatoon}"></script>`);
107
+ }
108
+ else{
109
+ scripts.push(`<script src="${fileLocatoon}"></script>`);
110
+ }
96
111
  }
97
112
  });
98
113
  }
99
114
 
100
115
  var partialView = null;
101
116
 
102
- if(typeof(master.action.templateFunc) === "function"){
103
- partialView = master.action.templateFunc(scripts.join(""), {});
117
+ if(master.overwrite.isTemplate){
118
+ partialView = master.overwrite.templateRender({}, "renderScripts");
104
119
  }
105
120
  else{
106
121
  partialView = temp.htmlBuilder(scripts.join(""),{});
@@ -109,6 +124,7 @@ class html {
109
124
  return partialView;
110
125
  }
111
126
 
127
+
112
128
  // renders js using location
113
129
  renderJS(folderName, name){
114
130
  if(folderName === undefined && name === undefined){
@@ -445,5 +461,5 @@ class html {
445
461
 
446
462
  }
447
463
 
448
- master.extendView("html", new html());
464
+ master.extendView("html", html);
449
465
 
package/MasterJWT.js CHANGED
@@ -1,13 +1,14 @@
1
1
 
2
- // version 1.0.15
2
+ // version 0.0.17
3
3
 
4
- var master = require('./MasterControl');
5
- var crypto = require('crypto');
6
- var tools = require('./MasterTools');
4
+ var master = require('./MasterControl');
5
+ var crypto = require('crypto');
6
+ var toolClass = require('./MasterTools');
7
+ var tools = new toolClass();
7
8
 
8
9
  //https://www.youtube.com/watch?v=67mezK3NzpU&t=2492s
9
10
  class MasterJWT{
10
-
11
+
11
12
  init(TID){
12
13
  this.alg = "sha256";
13
14
  var $that = this;
@@ -108,4 +109,4 @@ class MasterJWT{
108
109
  }
109
110
 
110
111
 
111
- master.extend({jwt: new MasterJWT() });
112
+ master.extend("jwt", MasterJWT);
package/MasterRequest.js CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- // version 1.0.16
2
+ // version 0.0.1
3
3
 
4
4
  var master = require('./MasterControl');
5
5
  var url = require('url');
@@ -54,7 +54,8 @@ class MasterRequest{
54
54
  });
55
55
 
56
56
  $that.form.on('file', function(field, file) {
57
- file.extension = path.extname(file.name);
57
+ file.extension = file.name === undefined ? path.extname(file.originalFilename) : path.extname(file.name);
58
+
58
59
  if(Array.isArray($that.parsedURL.formData.files[field])){
59
60
  $that.parsedURL.formData.files[field].push(file);
60
61
  }
@@ -170,4 +171,4 @@ class MasterRequest{
170
171
  }
171
172
  }
172
173
 
173
- master.extend({request: new MasterRequest()});
174
+ master.extend("request", MasterRequest);
package/MasterRouter.js CHANGED
@@ -1,11 +1,10 @@
1
- // version 1.0.20
1
+ // version 0.0.24
2
2
 
3
3
  var master = require('./MasterControl');
4
- var tools = require('./MasterTools');
4
+ var toolClass = require('./MasterTools');
5
5
  const EventEmitter = require("events");
6
6
  var currentRoute = {};
7
- const path = require('path');
8
- const { root } = require('./MasterControl');
7
+ var tools = new toolClass();
9
8
 
10
9
  var normalizePaths = function(requestPath, routePath, requestParams){
11
10
  var obj = {
@@ -203,6 +202,10 @@ class MasterRouter {
203
202
  return currentRoute;
204
203
  }
205
204
 
205
+ set currentRoute(data){
206
+ currentRoute = data;
207
+ }
208
+
206
209
  _addMimeList(mimeObject){
207
210
  var that = this;
208
211
  if(mimeObject){
@@ -239,9 +242,16 @@ class MasterRouter {
239
242
  var Control = require(`${currentRoute.root}/app/controllers/${tools.firstLetterlowercase(requestObject.toController)}Controller`);
240
243
  if(Control === null){
241
244
  Control = require(`${currentRoute.root}/app/controllers/${tools.firstLetterUppercase(requestObject.toController)}Controller`);
245
+ if(Control === null){
246
+ console.log(`Cannot find controller name - ${requestObject.toController}`);
247
+ }
242
248
  }
243
249
  tools.combineObjectPrototype(Control, master.controllerList);
244
250
  Control.prototype.__namespace = Control.name;
251
+ Control.prototype.__requestObject = requestObject;
252
+ Control.prototype.__currentRoute = currentRoute;
253
+ Control.prototype.__response = requestObject.response;
254
+ Control.prototype.__request = requestObject.request;
245
255
  var control = new Control(requestObject);
246
256
  var _callEmit = new EventEmitter();
247
257
 
@@ -249,6 +259,7 @@ class MasterRouter {
249
259
  control.next = function(){
250
260
  control.__callAfterAction(control, requestObject);
251
261
  }
262
+ //
252
263
  control[requestObject.toAction](requestObject);
253
264
  });
254
265
 
@@ -293,4 +304,4 @@ class MasterRouter {
293
304
 
294
305
  }
295
306
 
296
- master.extend({router : new MasterRouter()});
307
+ master.extend("router", MasterRouter);
package/MasterSession.js CHANGED
@@ -1,13 +1,14 @@
1
1
 
2
- // version 0.0.17
2
+ // version 0.0.19
3
3
 
4
4
  var master = require('./MasterControl');
5
5
  var cookie = require('cookie');
6
- var tools = require('./MasterTools');
6
+ var toolClass = require('./MasterTools');
7
7
  var crypto = require('crypto');
8
+ var tools = new toolClass();
8
9
 
9
10
  class MasterSession{
10
-
11
+
11
12
  sessions = {};
12
13
  options = {
13
14
  domain: undefined,
@@ -171,4 +172,4 @@ class MasterSession{
171
172
  }
172
173
  }
173
174
 
174
- master.extend({sessions: new MasterSession() });
175
+ master.extend("sessions", MasterSession);
package/MasterSocket.js CHANGED
@@ -1,4 +1,4 @@
1
- // version 0.0.1
1
+ // version 0.0.3
2
2
  var master = require('./MasterControl');
3
3
 
4
4
  var jsUcfirst = function(string){
@@ -45,4 +45,4 @@ class MasterSocket{
45
45
  }
46
46
  }
47
47
 
48
- master.extend({socket: new MasterSocket()});
48
+ master.extend("socket", MasterSocket);
package/MasterTemp.js CHANGED
@@ -1,4 +1,4 @@
1
- // version 0.0.1
1
+ // version 0.0.3
2
2
  var master = require('./MasterControl');
3
3
 
4
4
  class MasterTemp{
@@ -27,4 +27,4 @@ class MasterTemp{
27
27
 
28
28
  }
29
29
 
30
- master.extend({tempdata: new MasterTemp()});
30
+ master.extend("tempdata", MasterTemp);
package/MasterTemplate.js CHANGED
@@ -1,4 +1,4 @@
1
- // version 0.0.1
1
+ // version 0.0.3
2
2
  // https://github.com/WebReflection/backtick-template
3
3
  // https://stackoverflow.com/questions/29182244/convert-a-string-to-a-template-string
4
4
  var replace = ''.replace;
@@ -33,44 +33,52 @@ class MasterTemplate{
33
33
 
34
34
 
35
35
  /*! (C) 2017-2018 Andrea Giammarchi - MIT Style License */
36
- htmlBuilder( fn, $str, $object) {'use strict';
37
- // reset cache every 32M
38
- if (33554432 < this.$) {
39
- this._ = {};
40
- this.$ = 0;
41
- }
42
- var
43
- hasTransformer = typeof fn === 'function',
44
- str = hasTransformer ? $str : fn,
45
- object = hasTransformer ? $object : $str,
46
- _ = this._,
47
- known = _.hasOwnProperty(str),
48
- parsed = known ? _[str] : (_[str] = this.parse(str)),
49
- chunks = parsed.chunks,
50
- values = parsed.values,
51
- strings
52
- ;
53
- // add str length only if not known
54
- if (!known)
55
- this.$ += str.length;
56
- if (hasTransformer) {
57
- str = 'function' + (Math.random() * 1e5 | 0);
58
- strings = [
59
- str,
60
- 'with(this)return ' + str + '([' + chunks + ']' + (
61
- values.length ? (',' + values.join(',')) : ''
62
- ) + ')'
63
- ];
64
- } else {
65
- strings = chunks.slice(0, 1);
66
- for (var i = 1, length = chunks.length; i < length; i++)
67
- strings.push(values[i - 1], chunks[i]);
68
- strings = ['with(this)return ' + strings.join('+')];
69
- }
70
- return Function.apply(null, strings).apply(
71
- object,
72
- hasTransformer ? [fn] : []
73
- );
36
+ htmlBuilder( fn, $str, $object) {
37
+ 'use strict';
38
+
39
+ try{
40
+ // reset cache every 32M
41
+ if (33554432 < this.$) {
42
+ this._ = {};
43
+ this.$ = 0;
44
+ }
45
+ var
46
+ hasTransformer = typeof fn === 'function',
47
+ str = hasTransformer ? $str : fn,
48
+ object = hasTransformer ? $object : $str,
49
+ _ = this._,
50
+ known = _.hasOwnProperty(str),
51
+ parsed = known ? _[str] : (_[str] = this.parse(str)),
52
+ chunks = parsed.chunks,
53
+ values = parsed.values,
54
+ strings
55
+ ;
56
+ // add str length only if not known
57
+ if (!known)
58
+ this.$ += str.length;
59
+ if (hasTransformer) {
60
+ str = 'function' + (Math.random() * 1e5 | 0);
61
+ strings = [
62
+ str,
63
+ 'with(this)return ' + str + '([' + chunks + ']' + (
64
+ values.length ? (',' + values.join(',')) : ''
65
+ ) + ')'
66
+ ];
67
+ } else {
68
+ strings = chunks.slice(0, 1);
69
+ for (var i = 1, length = chunks.length; i < length; i++)
70
+ strings.push(values[i - 1], chunks[i]);
71
+ strings = ['with(this)return ' + strings.join('+')];
72
+ }
73
+
74
+ return Function.apply(null, strings).apply(
75
+ object,
76
+ hasTransformer ? [fn] : []
77
+ );
78
+ }
79
+ catch(err){
80
+ console.log("error", err);
81
+ }
74
82
  }
75
83
 
76
84
  parse(str) {
@@ -126,4 +134,4 @@ return {chunks: chunks, values: values};
126
134
  }
127
135
  }
128
136
 
129
- module.exports = new MasterTemplate();
137
+ module.exports = MasterTemplate;
package/MasterTools.js CHANGED
@@ -1,4 +1,4 @@
1
- // version 0.0.1
1
+ // version 0.0.2
2
2
  var crypto = require('crypto');
3
3
 
4
4
  class MasterTools{
@@ -161,10 +161,16 @@ class MasterTools{
161
161
  };
162
162
 
163
163
  combineObjects(obj, src) {
164
- for(var i in src){
165
- obj[i] = src[i];
166
- };
167
- return obj;
164
+ if(obj){
165
+ for(var i in src){
166
+ obj[i] = src[i];
167
+ };
168
+ return obj;
169
+ }
170
+ else{
171
+ return {}
172
+ }
173
+
168
174
  };
169
175
 
170
176
  makeWordId(length) {
@@ -199,4 +205,4 @@ class MasterTools{
199
205
 
200
206
  }
201
207
 
202
- module.exports = new MasterTools();
208
+ module.exports = MasterTools;
@@ -0,0 +1,33 @@
1
+ // version 0.0.1
2
+ var master = require('mastercontroller');
3
+
4
+ class TemplateOverwrite{
5
+
6
+ #templateFunc;
7
+ #isTemplate = false;
8
+
9
+ get isTemplate(){
10
+ return this.#isTemplate;
11
+ }
12
+
13
+ template(func){
14
+ this.#isTemplate = true;
15
+ this.#templateFunc = func === undefined ? null : func;
16
+ }
17
+
18
+ templateRender(data, type){
19
+ if(this.#templateFunc){
20
+ return this.#templateFunc(data, type);
21
+ }
22
+ else{
23
+ console.log("cannot call template render when no function has been declared. ")
24
+ }
25
+ }
26
+
27
+ close(response, code, content, end){
28
+ response.writeHead(code, content.type);
29
+ response.end(end);
30
+ }
31
+ }
32
+
33
+ master.extend("overwrite", TemplateOverwrite);
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "dependencies": {
3
- "qs" : "^6.11.0",
4
- "formidable": "^2.0.1",
3
+ "qs" : "^6.11.2",
4
+ "formidable": "^3.5.1",
5
5
  "cookie": "^0.5.0",
6
- "winston": "^3.8.2",
7
- "glob" :"^8.0.3"
6
+ "winston": "^3.10.0",
7
+ "glob" :"^10.3.4"
8
8
  },
9
9
  "description": "A class library that makes using the Master Framework a breeze",
10
10
  "homepage": "https://github.com/Tailor/MasterController#readme",
@@ -18,5 +18,5 @@
18
18
  "scripts": {
19
19
  "test": "echo \"Error: no test specified\" && exit 1"
20
20
  },
21
- "version": "1.1.18"
21
+ "version": "1.1.21"
22
22
  }