jsgui3-server 0.0.73 → 0.0.77

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 (155) 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 +100 -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 +11 -0
  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 +14 -0
  130. package/resources/jsbuilder/Platforms.js +70 -0
  131. package/resources/jsbuilder/Project.js +109 -0
  132. package/resources/jsbuilder/Reference.js +1 -0
  133. package/resources/jsbuilder/Reference_Sequence.js +16 -0
  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 +304 -0
  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 -1347
  151. package/resources/website-resource.js +390 -797
  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
@@ -1,196 +1,196 @@
1
- var path = require('path'), fs = require('fs'),
2
- url = require('url'), jsgui = require('jsgui3-html'), os = require('os'), http = require('http'), libUrl = require('url'),
3
- Resource = jsgui.Resource,
4
- Cookies = require('cookies'), fs2 = require('../fs2');
5
-
6
- var stringify = jsgui.stringify, each = jsgui.each, arrayify = jsgui.arrayify, tof = jsgui.tof;
7
- var filter_map_by_regex = jsgui.filter_map_by_regex;
8
- var Class = jsgui.Class, Data_Object = jsgui.Data_Object, Enhanced_Data_Object = jsgui.Enhanced_Data_Object;
9
- var fp = jsgui.fp, is_defined = jsgui.is_defined;
10
- var Collection = jsgui.Collection;
11
-
12
- // Extends AutoStart_Resource?
13
- // May need to change around a fair few references to make it workable.
14
- // May need some more complicated logic to change it to the path for service.
15
-
16
- var serve_html_file_from_disk = function(filePath, response) {
17
- fs2.load_file_as_string(filePath, function (err, data) {
18
- if (err) {
19
- throw err;
20
- } else {
21
- //var servableJs = updateReferencesForServing(data);
22
- response.writeHead(200, {'Content-Type': 'text/html'});
23
- response.end(data);
24
- }
25
- });
26
- }
27
-
28
- // File_Server_Resource?
29
- // So the resource has code to route to the file and then serve it.
30
-
31
- class Site_Static_HTML extends Resource {
32
-
33
- constructor(spec) {
34
- super(spec);
35
-
36
- this.meta.set('custom_paths', new Data_Object({}));
37
- // Those are custom file paths.
38
-
39
- // could have a collection of directories, indexed by name, that get served.
40
-
41
- // Index the collection by string value?
42
- this.meta.set('served_directories', new Collection({'index_by': 'name'}));
43
- }
44
- 'start'(callback) {
45
- callback(null, true);
46
- }
47
- 'set_custom_path'(url, file_path) {
48
- // But change the URL to have a smiley face instead of fullstops
49
- //console.log('url', url);
50
- var escaped_url = url.replace(/\./g, '☺');
51
- //console.log('escaped_url', escaped_url);
52
-
53
- //this.meta.set('custom_paths.' + escaped_url, file_path);
54
- var custom_paths = this.meta.get('custom_paths');
55
- //console.log('custom_paths', custom_paths);
56
- custom_paths.set(escaped_url, file_path);
57
-
58
- }
59
- 'serve_directory'(path) {
60
- // Serves that directory, as any files given in that directory can be served from /js
61
- var served_directories = this.meta.get('served_directories');
62
- //console.log('served_directories ' + stringify(served_directories));
63
- //served_directories.push(path);
64
- served_directories.push({
65
- 'name': path
66
- });
67
- //console.log('served_directories ' + stringify(served_directories));
68
- //console.log('path ' + path);
69
-
70
- //throw 'stop';
71
-
72
- }
73
- 'process'(req, res) {
74
- //console.log('Site_Static_HTML processing');
75
-
76
-
77
-
78
-
79
- var remoteAddress = req.connection.remoteAddress;
80
-
81
- var custom_paths = this.custom_paths;
82
-
83
- var rurl = req.url;
84
-
85
- var pool = this.pool;
86
- // should have a bunch of resources from the pool.
87
-
88
- //var pool_resources = pool.resources();
89
- //console.log('pool_resources ' + stringify(pool_resources));
90
-
91
-
92
- var url_parts = url.parse(req.url, true);
93
- //console.log('url_parts ' + stringify(url_parts));
94
- var splitPath = url_parts.path.substr(1).split('/');
95
- //console.log('resource site css splitPath ' + stringify(splitPath));
96
-
97
-
98
- if (rurl.substr(0, 1) == '/') rurl = rurl.substr(1);
99
- rurl = rurl.replace(/\./g, '☺');
100
- //console.log('rurl ' + rurl);
101
-
102
- if (rurl == '') rurl = '/';
103
-
104
- var custom_response_entry = custom_paths.get(rurl);
105
-
106
- //console.log('Static HTML Resource process url', req.url);
107
-
108
-
109
-
110
-
111
- //console.log('custom_response_entry ' + stringify(custom_response_entry));
112
-
113
- if (custom_response_entry) {
114
- var tcr = tof(custom_response_entry);
115
- //console.log('tcr ' + tcr);
116
-
117
- if (tcr == 'data_value') {
118
- var val = custom_response_entry.value();
119
- //console.log('val ' + val);
120
- var tval = tof(val);
121
- if (tval === 'string') {
122
- // then it should be a local file path, serve it.
123
- serve_html_file_from_disk(val, res);
124
- }
125
- }
126
- //throw 'stop';
127
- } else {
128
- //console.log('splitPath', splitPath);
129
- //console.log('splitPath.length', splitPath.length);
130
-
131
- if (splitPath.length > 0) {
132
-
133
- // Can check for /js folder.
134
- // There will be some fixed resources for the site.
135
- // They will be served by Resource objects.
136
- // There may be some overlap of resources, with there being some very fixed purpose
137
- // specific resources that could duplicate some features of the more general ones.
138
- // Eventually, some of the code from the more specific resources will be
139
- // replacable with code from the more general ones.
140
-
141
- // Site_JavaScript resource
142
- // Will serve JavaScript files needed for the site.
143
- // Could become more advanced at some points, serving particular builds.
144
-
145
- if (splitPath.length == 1) {
146
- if (splitPath[0] == '') {
147
- // Serve the default page.
148
- // serve index.html
149
- //serve_html_file_from_disk('./index.html', res);
150
- serve_html_file_from_disk('index.html', res);
151
-
152
-
153
-
154
-
155
- }
156
- } else {
157
- if (splitPath[0] == 'html') {
158
- //var sjs = pool.get_resource('Site JavaScript');
159
- //console.log('sjs ' + sjs);
160
-
161
- //throw 'stop';
162
-
163
- // determine the name of the file to serve, serve that file
164
- // Could use some more general kind of file server.
165
-
166
- if (splitPath.length > 1) {
167
- if (splitPath.length == 2) {
168
- var fileName = splitPath[1];
169
- //console.log('url_parts.path ' + url_parts.path);
170
- var filePath = url_parts.path.substr(1);
171
- //console.log('module.uri ' + module.uri);
172
-
173
- // No, need the current module's relative path....
174
-
175
- //var val2 = path.dirname(module.uri);
176
- //console.log('val2 ' + val2);
177
- //throw '9) stop';
178
-
179
- //var diskPath = val2 + '/../css/' + fileName;
180
- var diskPath = '../../ws/css/' + fileName;
181
-
182
- serve_html_file_from_disk(diskPath, res);
183
- } else {
184
- if (splitPath.length == 3) {
185
-
186
- }
187
-
188
- }
189
- }
190
- }
191
- }
192
- }
193
- }
194
- }
195
- }
196
- module.exports = Site_Static_HTML;
1
+ var path = require('path'), fs = require('fs'),
2
+ url = require('url'), jsgui = require('jsgui3-html'), os = require('os'), http = require('http'), libUrl = require('url'),
3
+ Resource = jsgui.Resource,
4
+ Cookies = require('cookies'), fs2 = require('../fs2');
5
+
6
+ var stringify = jsgui.stringify, each = jsgui.each, arrayify = jsgui.arrayify, tof = jsgui.tof;
7
+ var filter_map_by_regex = jsgui.filter_map_by_regex;
8
+ var Class = jsgui.Class, Data_Object = jsgui.Data_Object, Enhanced_Data_Object = jsgui.Enhanced_Data_Object;
9
+ var fp = jsgui.fp, is_defined = jsgui.is_defined;
10
+ var Collection = jsgui.Collection;
11
+
12
+ // Extends AutoStart_Resource?
13
+ // May need to change around a fair few references to make it workable.
14
+ // May need some more complicated logic to change it to the path for service.
15
+
16
+ var serve_html_file_from_disk = function(filePath, response) {
17
+ fs2.load_file_as_string(filePath, function (err, data) {
18
+ if (err) {
19
+ throw err;
20
+ } else {
21
+ //var servableJs = updateReferencesForServing(data);
22
+ response.writeHead(200, {'Content-Type': 'text/html'});
23
+ response.end(data);
24
+ }
25
+ });
26
+ }
27
+
28
+ // File_Server_Resource?
29
+ // So the resource has code to route to the file and then serve it.
30
+
31
+ class Site_Static_HTML extends Resource {
32
+
33
+ constructor(spec) {
34
+ super(spec);
35
+
36
+ this.meta.set('custom_paths', new Data_Object({}));
37
+ // Those are custom file paths.
38
+
39
+ // could have a collection of directories, indexed by name, that get served.
40
+
41
+ // Index the collection by string value?
42
+ this.meta.set('served_directories', new Collection({'index_by': 'name'}));
43
+ }
44
+ 'start'(callback) {
45
+ callback(null, true);
46
+ }
47
+ 'set_custom_path'(url, file_path) {
48
+ // But change the URL to have a smiley face instead of fullstops
49
+ //console.log('url', url);
50
+ var escaped_url = url.replace(/\./g, '☺');
51
+ //console.log('escaped_url', escaped_url);
52
+
53
+ //this.meta.set('custom_paths.' + escaped_url, file_path);
54
+ var custom_paths = this.meta.get('custom_paths');
55
+ //console.log('custom_paths', custom_paths);
56
+ custom_paths.set(escaped_url, file_path);
57
+
58
+ }
59
+ 'serve_directory'(path) {
60
+ // Serves that directory, as any files given in that directory can be served from /js
61
+ var served_directories = this.meta.get('served_directories');
62
+ //console.log('served_directories ' + stringify(served_directories));
63
+ //served_directories.push(path);
64
+ served_directories.push({
65
+ 'name': path
66
+ });
67
+ //console.log('served_directories ' + stringify(served_directories));
68
+ //console.log('path ' + path);
69
+
70
+ //throw 'stop';
71
+
72
+ }
73
+ 'process'(req, res) {
74
+ //console.log('Site_Static_HTML processing');
75
+
76
+
77
+
78
+
79
+ var remoteAddress = req.connection.remoteAddress;
80
+
81
+ var custom_paths = this.custom_paths;
82
+
83
+ var rurl = req.url;
84
+
85
+ var pool = this.pool;
86
+ // should have a bunch of resources from the pool.
87
+
88
+ //var pool_resources = pool.resources();
89
+ //console.log('pool_resources ' + stringify(pool_resources));
90
+
91
+
92
+ var url_parts = url.parse(req.url, true);
93
+ //console.log('url_parts ' + stringify(url_parts));
94
+ var splitPath = url_parts.path.substr(1).split('/');
95
+ //console.log('resource site css splitPath ' + stringify(splitPath));
96
+
97
+
98
+ if (rurl.substr(0, 1) == '/') rurl = rurl.substr(1);
99
+ rurl = rurl.replace(/\./g, '☺');
100
+ //console.log('rurl ' + rurl);
101
+
102
+ if (rurl == '') rurl = '/';
103
+
104
+ var custom_response_entry = custom_paths.get(rurl);
105
+
106
+ //console.log('Static HTML Resource process url', req.url);
107
+
108
+
109
+
110
+
111
+ //console.log('custom_response_entry ' + stringify(custom_response_entry));
112
+
113
+ if (custom_response_entry) {
114
+ var tcr = tof(custom_response_entry);
115
+ //console.log('tcr ' + tcr);
116
+
117
+ if (tcr == 'data_value') {
118
+ var val = custom_response_entry.value();
119
+ //console.log('val ' + val);
120
+ var tval = tof(val);
121
+ if (tval === 'string') {
122
+ // then it should be a local file path, serve it.
123
+ serve_html_file_from_disk(val, res);
124
+ }
125
+ }
126
+ //throw 'stop';
127
+ } else {
128
+ //console.log('splitPath', splitPath);
129
+ //console.log('splitPath.length', splitPath.length);
130
+
131
+ if (splitPath.length > 0) {
132
+
133
+ // Can check for /js folder.
134
+ // There will be some fixed resources for the site.
135
+ // They will be served by Resource objects.
136
+ // There may be some overlap of resources, with there being some very fixed purpose
137
+ // specific resources that could duplicate some features of the more general ones.
138
+ // Eventually, some of the code from the more specific resources will be
139
+ // replacable with code from the more general ones.
140
+
141
+ // Site_JavaScript resource
142
+ // Will serve JavaScript files needed for the site.
143
+ // Could become more advanced at some points, serving particular builds.
144
+
145
+ if (splitPath.length == 1) {
146
+ if (splitPath[0] == '') {
147
+ // Serve the default page.
148
+ // serve index.html
149
+ //serve_html_file_from_disk('./index.html', res);
150
+ serve_html_file_from_disk('index.html', res);
151
+
152
+
153
+
154
+
155
+ }
156
+ } else {
157
+ if (splitPath[0] == 'html') {
158
+ //var sjs = pool.get_resource('Site JavaScript');
159
+ //console.log('sjs ' + sjs);
160
+
161
+ //throw 'stop';
162
+
163
+ // determine the name of the file to serve, serve that file
164
+ // Could use some more general kind of file server.
165
+
166
+ if (splitPath.length > 1) {
167
+ if (splitPath.length == 2) {
168
+ var fileName = splitPath[1];
169
+ //console.log('url_parts.path ' + url_parts.path);
170
+ var filePath = url_parts.path.substr(1);
171
+ //console.log('module.uri ' + module.uri);
172
+
173
+ // No, need the current module's relative path....
174
+
175
+ //var val2 = path.dirname(module.uri);
176
+ //console.log('val2 ' + val2);
177
+ //throw '9) stop';
178
+
179
+ //var diskPath = val2 + '/../css/' + fileName;
180
+ var diskPath = '../../ws/css/' + fileName;
181
+
182
+ serve_html_file_from_disk(diskPath, res);
183
+ } else {
184
+ if (splitPath.length == 3) {
185
+
186
+ }
187
+
188
+ }
189
+ }
190
+ }
191
+ }
192
+ }
193
+ }
194
+ }
195
+ }
196
+ module.exports = Site_Static_HTML;