jsgui3-server 0.0.75 → 0.0.79

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 (158) hide show
  1. package/examples/client-side-popup-menu-button.html +93 -93
  2. package/examples/controls/_html-server-color-palette.js +114 -114
  3. package/examples/controls/html-server-combo-box.js +104 -104
  4. package/examples/controls/html-server-list.js +98 -98
  5. package/examples/controls/html-server-popup-menu-button.js +114 -114
  6. package/examples/controls/html-server-start-stop-toggle-button.js +146 -146
  7. package/examples/controls/scs-arrow-button.js +36 -36
  8. package/examples/controls/scs-date-picker.js +157 -157
  9. package/examples/controls/scs-file-browser.js +82 -82
  10. package/examples/controls/scs-item.js +159 -159
  11. package/examples/controls/scs-month-arrow-selector.js +126 -126
  12. package/examples/controls/scs-month-view.js +95 -95
  13. package/examples/controls/scs-start-stop-toggle-button.js +40 -40
  14. package/examples/controls/scs-tree.js +49 -49
  15. package/examples/controls/scs-year-arrow-selector.js +127 -127
  16. package/examples/demos/date-picker.js +119 -119
  17. package/examples/demos/explain-encapsulation.js +9 -9
  18. package/examples/demos/resizing.js +35 -35
  19. package/examples/demos/server_time.js +6 -6
  20. package/examples/demos/square_box.js +324 -324
  21. package/examples/html-rendering.js +20 -20
  22. package/examples/html-server.js +102 -100
  23. package/fs2.js +1836 -1836
  24. package/module.js +21 -21
  25. package/old/single-control-server.js +418 -418
  26. package/package.json +44 -42
  27. package/publishing/function-publisher.js +202 -202
  28. package/publishing/notes.md +5 -5
  29. package/publishing/observable-publisher.js +118 -118
  30. package/publishing/resource-publisher.js +306 -306
  31. package/resources/data-resource.js +104 -104
  32. package/resources/fs-resource.js +148 -148
  33. package/resources/jsbuilder/Abstract_Single_Declaration.js +105 -0
  34. package/resources/jsbuilder/Abstract_Single_Declaration_Sequence.js +43 -0
  35. package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node.js +62 -0
  36. package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node_Group.js +42 -0
  37. package/resources/jsbuilder/JS_AST/JS_AST_Group_Shared.js +62 -0
  38. package/resources/jsbuilder/JS_AST/JS_AST_Node.js +94 -0
  39. package/resources/jsbuilder/JS_AST/JS_AST_Node_0-Core.js +228 -0
  40. package/resources/jsbuilder/JS_AST/JS_AST_Node_1-Babel.js +338 -0
  41. package/resources/jsbuilder/JS_AST/JS_AST_Node_10-Changing.js +40 -0
  42. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.1-Child.js +97 -0
  43. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.2-Parent.js +38 -0
  44. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.3-Ancestor.js +62 -0
  45. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.2-Inner.js +44 -0
  46. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.3-All.js +73 -0
  47. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.4-Sibling.js +93 -0
  48. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.5-Available_In_Scope.js +29 -0
  49. package/resources/jsbuilder/JS_AST/JS_AST_Node_2.9-Signature.js +116 -0
  50. package/resources/jsbuilder/JS_AST/JS_AST_Node_3-Basics.js +160 -0
  51. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.0-Basics_First.js +179 -0
  52. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.1-Basics_Second.js +88 -0
  53. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.99-Basics_Last.js +92 -0
  54. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1-Basics_Each.js +137 -0
  55. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1.5-Basics_Count.js +74 -0
  56. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.2-Basics_Filter.js +40 -0
  57. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.3-Basics_Collect.js +86 -0
  58. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.4-Basics_Select.js +43 -0
  59. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.5-Basics_Find.js +41 -0
  60. package/resources/jsbuilder/JS_AST/JS_AST_Node_3.6-Basics_Callmap.js +55 -0
  61. package/resources/jsbuilder/JS_AST/JS_AST_Node_4.0-Index_Indexes.js +46 -0
  62. package/resources/jsbuilder/JS_AST/JS_AST_Node_4.1-Index.js +344 -0
  63. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.0-Category.js +39 -0
  64. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.1-Category_Identifier.js +31 -0
  65. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.2-Category_Literal.js +29 -0
  66. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.3-Category_Expression.js +27 -0
  67. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.4-Category_Pattern.js +9 -0
  68. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.5-Category_Declaration.js +44 -0
  69. package/resources/jsbuilder/JS_AST/JS_AST_Node_5.6-Category_Statement.js +22 -0
  70. package/resources/jsbuilder/JS_AST/JS_AST_Node_6.0-Type.js +87 -0
  71. package/resources/jsbuilder/JS_AST/JS_AST_Node_6.1-Type_Class_Declaration.js +9 -0
  72. package/resources/jsbuilder/JS_AST/JS_AST_Node_6.2-Type_Variable_Declaration.js +28 -0
  73. package/resources/jsbuilder/JS_AST/JS_AST_Node_6.3-Type_Variable_Declarator.js +29 -0
  74. package/resources/jsbuilder/JS_AST/JS_AST_Node_7-Query.js +737 -0
  75. package/resources/jsbuilder/JS_AST/JS_AST_Node_8-Features.js +65 -0
  76. package/resources/jsbuilder/JS_AST/JS_AST_Node_9-Planning.js +32 -0
  77. package/resources/jsbuilder/JS_AST/JS_AST_Node_Arrangement.js +15 -0
  78. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Declared_Object.js +306 -0
  79. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature.js +78 -0
  80. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declaration.js +249 -0
  81. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declarator.js +139 -0
  82. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature.js +10 -0
  83. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exported.js +101 -0
  84. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exports.js +61 -0
  85. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Interpreted.js +180 -0
  86. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/_JSGUI_Root_Node_Interpreted.js +43 -0
  87. package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/special_case_objectassign_to_object.js +12 -0
  88. package/resources/jsbuilder/JS_AST/JS_AST_Node_Group.js +35 -0
  89. package/resources/jsbuilder/JS_AST/JS_AST_Operation.js +11 -0
  90. package/resources/jsbuilder/JS_AST/JS_AST_Operation_On_Relationship.js +32 -0
  91. package/resources/jsbuilder/JS_AST/JS_AST_Ordered_Relationship_Node_To_Group.js +38 -0
  92. package/resources/jsbuilder/JS_AST/JS_AST_Ordinal.js +40 -0
  93. package/resources/jsbuilder/JS_AST/JS_AST_Ordinal_Relationship.js +25 -0
  94. package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_To_Group.js +201 -0
  95. package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_Within_Group_To_Node.js +44 -0
  96. package/resources/jsbuilder/JS_AST/_JS_AST_Node_3.8-Query_Features.js +77 -0
  97. package/resources/jsbuilder/JS_AST/query/all.js +0 -0
  98. package/resources/jsbuilder/JS_AST/query/enable_array_as_queryable.js +228 -0
  99. package/resources/jsbuilder/JS_AST/query/find_object_keys.js +405 -0
  100. package/resources/jsbuilder/JS_AST/query/node_queries.js +9 -0
  101. package/resources/jsbuilder/JS_AST/query/root_queries.js +0 -0
  102. package/resources/jsbuilder/JS_AST/query/root_query_identidy.js +12 -0
  103. package/resources/jsbuilder/JS_AST_Node_Extended/JSGUI_Singular_Declaration.js +86 -0
  104. package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Declaration.js +124 -0
  105. package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended.js +88 -0
  106. package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended_0-Core.js +11 -0
  107. package/resources/jsbuilder/JS_Builder.js +10 -36
  108. package/resources/jsbuilder/JS_File/Feature/JS_File_Declared_Object.js +32 -0
  109. package/resources/jsbuilder/JS_File/Feature/JS_File_Exported_Object_Info.js +26 -0
  110. package/resources/jsbuilder/JS_File/Feature/JS_File_Exports.js +79 -0
  111. package/resources/jsbuilder/JS_File/Feature/JS_File_Feature.js +18 -0
  112. package/resources/jsbuilder/JS_File/Feature/JS_File_Imported_Object_Info.js +26 -0
  113. package/resources/jsbuilder/JS_File/Feature/JS_File_Imports.js +9 -0
  114. package/resources/jsbuilder/JS_File/JS_File.js +12 -0
  115. package/resources/jsbuilder/JS_File/JS_File_0-Core.js +202 -0
  116. package/resources/jsbuilder/JS_File/JS_File_1-Early_Parse.js +175 -0
  117. package/resources/jsbuilder/JS_File/JS_File_2-Babel.js +81 -0
  118. package/resources/jsbuilder/JS_File/JS_File_3-JS_AST_Node.js +86 -0
  119. package/resources/jsbuilder/JS_File/JS_File_4-Query.js +414 -0
  120. package/resources/jsbuilder/JS_File/JS_File_4.1-Query_Features.js +415 -0
  121. package/resources/jsbuilder/JS_File/JS_File_5-Planning.js +59 -0
  122. package/resources/jsbuilder/JS_File/JS_File_6-Changing.js +24 -0
  123. package/resources/jsbuilder/JS_File/JS_File_Export_Reference.js +12 -0
  124. package/resources/jsbuilder/JS_File/JS_File_Import_Reference.js +24 -0
  125. package/resources/jsbuilder/JS_File/JS_File_Import_References.js +32 -0
  126. package/resources/jsbuilder/JS_File/JS_File_Processor.js +16 -0
  127. package/resources/jsbuilder/JS_File/JS_Files.js +16 -0
  128. package/resources/jsbuilder/Module.js +14 -0
  129. package/resources/jsbuilder/Platform.js +13 -53
  130. package/resources/jsbuilder/Platforms.js +69 -15
  131. package/resources/jsbuilder/Project.js +109 -0
  132. package/resources/jsbuilder/Reference.js +1 -1
  133. package/resources/jsbuilder/Reference_Sequence.js +16 -7
  134. package/resources/jsbuilder/Scope.js +30 -0
  135. package/resources/jsbuilder/Variable_Name_Provider.js +43 -0
  136. package/resources/jsbuilder/_JS_File.js +226 -0
  137. package/resources/jsbuilder/ast_query.js +21 -0
  138. package/resources/jsbuilder/babel/babel_consts.js +150 -0
  139. package/resources/jsbuilder/babel/babel_node_tools.js +542 -0
  140. package/resources/jsbuilder/babel/deep_iterate/deep_iterate_babel.js +604 -0
  141. package/resources/jsbuilder/build.js +16 -0
  142. package/resources/jsbuilder/platform_notes.md +66 -0
  143. package/resources/jsbuilder/test/test_ast_node.js +451 -0
  144. package/resources/jsbuilder/test/test_js_file.js +303 -11
  145. package/resources/jsbuilder/test/test_project.js +157 -0
  146. package/resources/local-server-info-resource.js +78 -78
  147. package/resources/process-js.js +537 -537
  148. package/resources/server-resource-pool.js +84 -84
  149. package/resources/website-css-resource.js +411 -411
  150. package/resources/website-javascript-resource.js +761 -751
  151. package/resources/website-resource.js +390 -390
  152. package/resources/website-static-html-resource.js +196 -196
  153. package/server.js +170 -170
  154. package/single-control-server.js +398 -398
  155. package/single-page-app.js +129 -129
  156. package/resources/jsbuilder/Declaration.js +0 -15
  157. package/resources/jsbuilder/Declaration_Sequence.js +0 -15
  158. package/resources/jsbuilder/JS_File.js +0 -77
package/server.js CHANGED
@@ -1,171 +1,171 @@
1
- //var sockjs = require('sockjs'), jsgui = require('jsgui3-html'),
2
- const jsgui = require('jsgui3-html'),
3
- os = require('os'),
4
- http = require('http'),
5
- https = require('https'),
6
- Resource = jsgui.Resource,
7
- Server_Resource_Pool = require('./resources/server-resource-pool'),
8
- // routing-tree? make a generalised module?
9
- Router = jsgui.Router,
10
- Website_Resource = require('./resources/website-resource'),
11
- Info = require('./resources/local-server-info-resource'),
12
- Server_Page_Context = require('./page-context'), {Evented_Class, each, tof} = jsgui;
13
-
14
- class JSGUI_Server extends Evented_Class {
15
- constructor(spec = {website: true}, __type_name) {
16
- // Default operations mode...
17
- // Has its own website resource.
18
- // All gets routed to that resource automatically.
19
- //
20
-
21
- let is_website = spec.website === true;
22
-
23
- super();
24
- this.__type_name = __type_name || 'server';
25
- var resource_pool = this.resource_pool = new Server_Resource_Pool({
26
- // Other things can be made available through the server resource pool.
27
- 'access': {
28
- 'full': ['server_admin']
29
- }
30
- });
31
- //Object.defineProperty('')
32
- // Maybe the server router should explicitly be a Resource?
33
- // Or just treat Objects the same way as Data_Object (if possible) in Collection.
34
- const server_router = this.server_router = new Router({
35
- 'name': 'Server Router',
36
- 'pool': resource_pool
37
- });
38
- resource_pool.add(server_router);
39
- if (spec.https_options) {
40
- this.https_options = spec.https_options;
41
- }
42
- if (spec.routes) {
43
- each(spec.routes, (app_spec, route) => {
44
- var app = this.app = new Website_Resource(app_spec);
45
- resource_pool.add(app);
46
- server_router.set_route(route, app, app.process);
47
- });
48
- }
49
-
50
- if (is_website) {
51
- const app = this.app = new Website_Resource({
52
- name: 'Website'
53
- });
54
- console.log('app', app);
55
- resource_pool.add(app);
56
- server_router.set_route('/*', app, app.process);
57
-
58
- }
59
- }
60
- get resource_names() {
61
- //console.log('this.resource_pool', this.resource_pool);
62
- return this.resource_pool.resource_names;
63
- }
64
-
65
- 'start'(port, callback, fnProcessRequest) {
66
- //throw 'stop';
67
- // The resource_pool is not just a Data_Value. need to fix some get or create new field value code.
68
- //console.log('start');
69
- const rp = this.resource_pool;
70
- rp.start(err => {
71
- if (err) {
72
- throw err;
73
- } else {
74
- var lsi = rp.get_resource('Local Server Info');
75
- var resource_names = rp.resource_names;
76
- var js = rp.get_resource('Site JavaScript');
77
- var css = rp.get_resource('Site CSS');
78
- var images = rp.get_resource('Site Images');
79
- var audio = rp.get_resource('Site Audio');
80
- var login = rp.get_resource('Login HTML Resource');
81
- var admin = rp.get_resource('Web Admin');
82
- var sock_router = rp.get_resource('Server Sock Router');
83
- var server_router = rp.get_resource('Server Router');
84
- lsi.get('net', (err, net) => {
85
- if (err) {
86
- callback(err);
87
- } else {
88
- //console.log('net', net);
89
- // Could host on local.
90
- // Host on every ipv4 address for the moment.
91
- var arr_ipv4_addresses = [];
92
- each(net, (arr_addresses, name) => {
93
- each(arr_addresses, (obj_address) => {
94
- if (obj_address.family === 'IPv4') {
95
- arr_ipv4_addresses.push(obj_address.address);
96
- }
97
- })
98
- });
99
- let num_to_start = arr_ipv4_addresses.length;
100
- if (this.https_options) {
101
- each(arr_ipv4_addresses, (ipv4_address) => {
102
- var https_server = https.createServer(this.https_options, function (req, res) {
103
- //console.log('process server request.url', req.url);
104
- var server_routing_res = server_router.process(req, res);
105
- //console.log('server_routing_res', server_routing_res);
106
- });
107
- https_server.timeout = 10800000;
108
- https_server.listen(443, ipv4_address);
109
- num_to_start--;
110
- if (num_to_start === 0) {
111
- callback(null, true);
112
- }
113
- });
114
- } else {
115
- each(arr_ipv4_addresses, (ipv4_address) => {
116
- var http_server = http.createServer(function (req, res) {
117
- var server_routing_res = server_router.process(req, res);
118
- });
119
- http_server.timeout = 10800000;
120
- http_server.listen(port, ipv4_address);
121
- console.log('* Server running at http://' + ipv4_address + ':' + port + '/');
122
- num_to_start--;
123
- console.log('num_to_start', num_to_start);
124
- if (num_to_start === 0) {
125
- callback(null, true);
126
- }
127
- });
128
- }
129
- //throw 'stop';
130
- }
131
- });
132
- }
133
- });
134
- }
135
-
136
- 'process_request'(req, res) {
137
- var url = req.url;
138
- //console.log('*** server process_request url ' + url);
139
- var s_url = url.split('/');
140
- var a_path = [];
141
- each(s_url, (v, i) => {
142
- if (v.length > 0) {
143
- a_path.push(v);
144
- }
145
- });
146
- var router = this.get('router');
147
- if (a_path.length > 0) {
148
- var routing_res = router.process(req, res);
149
- } else {
150
- console.log('need to process short path');
151
- }
152
- }
153
- 'serve_document'(req, res, jsgui_html_document) {
154
- var html = jsgui_html_document.all_html_render();
155
- var mime_type = 'text/html';
156
- //console.log('mime_type ' + mime_type);
157
- res.writeHead(200, {
158
- 'Content-Type': mime_type
159
- });
160
- res.end(html, 'utf-8');
161
- }
162
- }
163
-
164
- //console.log('!!2)jsgui', !!jsgui);
165
- JSGUI_Server.HTML = require('jsgui3-html');
166
- JSGUI_Server.Resource = Resource;
167
- JSGUI_Server.Page_Context = Server_Page_Context;
168
- JSGUI_Server.Server_Page_Context = Server_Page_Context;
169
- JSGUI_Server.Website_Resource = Website_Resource;
170
-
1
+ //var sockjs = require('sockjs'), jsgui = require('jsgui3-html'),
2
+ const jsgui = require('jsgui3-html'),
3
+ //os = require('os'),
4
+ http = require('http'),
5
+ https = require('https'),
6
+ Resource = jsgui.Resource,
7
+ Server_Resource_Pool = require('./resources/server-resource-pool'),
8
+ // routing-tree? make a generalised module?
9
+ Router = jsgui.Router,
10
+ Website_Resource = require('./resources/website-resource'),
11
+ Info = require('./resources/local-server-info-resource'),
12
+ Server_Page_Context = require('./page-context'), {Evented_Class, each, tof} = jsgui;
13
+
14
+ class JSGUI_Server extends Evented_Class {
15
+ constructor(spec = {website: true}, __type_name) {
16
+ // Default operations mode...
17
+ // Has its own website resource.
18
+ // All gets routed to that resource automatically.
19
+ //
20
+
21
+ let is_website = spec.website === true;
22
+
23
+ super();
24
+ this.__type_name = __type_name || 'server';
25
+ var resource_pool = this.resource_pool = new Server_Resource_Pool({
26
+ // Other things can be made available through the server resource pool.
27
+ 'access': {
28
+ 'full': ['server_admin']
29
+ }
30
+ });
31
+ //Object.defineProperty('')
32
+ // Maybe the server router should explicitly be a Resource?
33
+ // Or just treat Objects the same way as Data_Object (if possible) in Collection.
34
+ const server_router = this.server_router = new Router({
35
+ 'name': 'Server Router',
36
+ 'pool': resource_pool
37
+ });
38
+ resource_pool.add(server_router);
39
+ if (spec.https_options) {
40
+ this.https_options = spec.https_options;
41
+ }
42
+ if (spec.routes) {
43
+ each(spec.routes, (app_spec, route) => {
44
+ var app = this.app = new Website_Resource(app_spec);
45
+ resource_pool.add(app);
46
+ server_router.set_route(route, app, app.process);
47
+ });
48
+ }
49
+
50
+ if (is_website) {
51
+ const app = this.app = new Website_Resource({
52
+ name: 'Website'
53
+ });
54
+ console.log('app', app);
55
+ resource_pool.add(app);
56
+ server_router.set_route('/*', app, app.process);
57
+
58
+ }
59
+ }
60
+ get resource_names() {
61
+ //console.log('this.resource_pool', this.resource_pool);
62
+ return this.resource_pool.resource_names;
63
+ }
64
+
65
+ 'start'(port, callback, fnProcessRequest) {
66
+ //throw 'stop';
67
+ // The resource_pool is not just a Data_Value. need to fix some get or create new field value code.
68
+ //console.log('start');
69
+ const rp = this.resource_pool;
70
+ rp.start(err => {
71
+ if (err) {
72
+ throw err;
73
+ } else {
74
+ var lsi = rp.get_resource('Local Server Info');
75
+ var resource_names = rp.resource_names;
76
+ var js = rp.get_resource('Site JavaScript');
77
+ var css = rp.get_resource('Site CSS');
78
+ var images = rp.get_resource('Site Images');
79
+ var audio = rp.get_resource('Site Audio');
80
+ var login = rp.get_resource('Login HTML Resource');
81
+ var admin = rp.get_resource('Web Admin');
82
+ var sock_router = rp.get_resource('Server Sock Router');
83
+ var server_router = rp.get_resource('Server Router');
84
+ lsi.get('net', (err, net) => {
85
+ if (err) {
86
+ callback(err);
87
+ } else {
88
+ //console.log('net', net);
89
+ // Could host on local.
90
+ // Host on every ipv4 address for the moment.
91
+ var arr_ipv4_addresses = [];
92
+ each(net, (arr_addresses, name) => {
93
+ each(arr_addresses, (obj_address) => {
94
+ if (obj_address.family === 'IPv4') {
95
+ arr_ipv4_addresses.push(obj_address.address);
96
+ }
97
+ })
98
+ });
99
+ let num_to_start = arr_ipv4_addresses.length;
100
+ if (this.https_options) {
101
+ each(arr_ipv4_addresses, (ipv4_address) => {
102
+ var https_server = https.createServer(this.https_options, function (req, res) {
103
+ //console.log('process server request.url', req.url);
104
+ var server_routing_res = server_router.process(req, res);
105
+ //console.log('server_routing_res', server_routing_res);
106
+ });
107
+ https_server.timeout = 10800000;
108
+ https_server.listen(443, ipv4_address);
109
+ num_to_start--;
110
+ if (num_to_start === 0) {
111
+ callback(null, true);
112
+ }
113
+ });
114
+ } else {
115
+ each(arr_ipv4_addresses, (ipv4_address) => {
116
+ var http_server = http.createServer(function (req, res) {
117
+ var server_routing_res = server_router.process(req, res);
118
+ });
119
+ http_server.timeout = 10800000;
120
+ http_server.listen(port, ipv4_address);
121
+ console.log('* Server running at http://' + ipv4_address + ':' + port + '/');
122
+ num_to_start--;
123
+ console.log('num_to_start', num_to_start);
124
+ if (num_to_start === 0) {
125
+ callback(null, true);
126
+ }
127
+ });
128
+ }
129
+ //throw 'stop';
130
+ }
131
+ });
132
+ }
133
+ });
134
+ }
135
+
136
+ 'process_request'(req, res) {
137
+ var url = req.url;
138
+ //console.log('*** server process_request url ' + url);
139
+ var s_url = url.split('/');
140
+ var a_path = [];
141
+ each(s_url, (v, i) => {
142
+ if (v.length > 0) {
143
+ a_path.push(v);
144
+ }
145
+ });
146
+ var router = this.get('router');
147
+ if (a_path.length > 0) {
148
+ var routing_res = router.process(req, res);
149
+ } else {
150
+ console.log('need to process short path');
151
+ }
152
+ }
153
+ 'serve_document'(req, res, jsgui_html_document) {
154
+ var html = jsgui_html_document.all_html_render();
155
+ var mime_type = 'text/html';
156
+ //console.log('mime_type ' + mime_type);
157
+ res.writeHead(200, {
158
+ 'Content-Type': mime_type
159
+ });
160
+ res.end(html, 'utf-8');
161
+ }
162
+ }
163
+
164
+ //console.log('!!2)jsgui', !!jsgui);
165
+ JSGUI_Server.HTML = require('jsgui3-html');
166
+ JSGUI_Server.Resource = Resource;
167
+ JSGUI_Server.Page_Context = Server_Page_Context;
168
+ JSGUI_Server.Server_Page_Context = Server_Page_Context;
169
+ JSGUI_Server.Website_Resource = Website_Resource;
170
+
171
171
  module.exports = JSGUI_Server;