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
@@ -1,130 +1,130 @@
1
- /**
2
- * Created by James on 03/01/2016.
3
- */
4
-
5
-
6
- var jsgui = require('jsgui3-html');
7
- //var Window = require('../../../../js/web/controls/advanced/window');
8
- //var Start_Stop_Toggle_Button = require('../../../../js/web/controls/advanced/start-stop-toggle-button');
9
- var Server_Page_Context = require("./page-context");
10
-
11
- var Data_Object = jsgui.Data_Object;
12
- var Collection = jsgui.Collection;
13
-
14
-
15
- //var Simple_Authentication_Provider = Resource_Authentication.Simple_Provider;
16
-
17
- var j = jsgui;
18
- var Class = j.Class;
19
-
20
- class Single_Page_App extends jsgui.Evented_Class {
21
- constructor(spec) {
22
- super(spec);
23
- var name = spec.name;
24
- var port = spec.port;
25
- var ctrl_main = spec.ctrl_main;
26
- var server = new jsgui.Server.JSGUI_Server({
27
- '*': {
28
- 'name': name
29
- }
30
- });
31
- this.name = name;
32
- this.server = server;
33
- this.port = port;
34
- if (ctrl_main) this.ctrl_main = ctrl_main;
35
- }
36
- 'start'(callback) {
37
- var server = this.server;
38
-
39
- var rp = server.resource_pool;
40
- var ar = rp.get_resource('Server Router');
41
- var rt = ar.routing_tree;
42
-
43
- var name = this.name;
44
-
45
- var port = this.port;
46
- var ctrl_main = this.ctrl_main;
47
-
48
- //console.log('port', port);
49
- //throw 'stop';
50
-
51
- //console.log('callback', callback);
52
- //throw 'stop';
53
-
54
- var website_resource = rp.get_resource(name);
55
- var js = website_resource.get_resource('Site JavaScript');
56
-
57
- js.build_client(function(err, res_build_client) {
58
- if (err) { callback(err); } else {
59
- server.start(port, function(err, res_started) {
60
- // Maybe it's best to use je-suis-xml for setting up the page.
61
- // Set up jsgui-html-client-stylish within the js serving resource.
62
- // It gets served as if it's within /js/web
63
-
64
- rt.set('/', function(req, res) {
65
- // Better to make a proper JSGUI client document.
66
- //console.log('main page request');
67
- var server_page_context = new Server_Page_Context({
68
- 'req': req,
69
- 'res': res
70
- });
71
- var hd = new jsgui.Client_HTML_Document({
72
- 'context': server_page_context
73
- });
74
-
75
- hd.include_client_css();
76
- hd.include_js('/js/app-bundle.js');
77
-
78
- var body = hd.body();
79
- // Will need to add the abstract control that has been given.
80
-
81
- var ctrl_0 = server_page_context.make(ctrl_main);
82
- body.add(ctrl_0);
83
- ctrl_0.active();
84
- //var ctrl_0 = new Control({
85
- // 'context': server_page_context
86
- //});
87
- //ctrl_0.resizable();
88
- //body.add(ctrl_0);
89
- //ctrl_0.active();
90
-
91
- // style should at least set the CSS.
92
- //
93
-
94
- hd.all_html_render(function(err, deferred_html) {
95
- if (err) {
96
- throw err;
97
- } else {
98
- //console.log('deferred_html', deferred_html);
99
- var mime_type = 'text/html';
100
- //console.log('mime_type ' + mime_type);
101
- res.writeHead(200, { 'Content-Type': mime_type });
102
- res.end(deferred_html, 'utf-8');
103
- }
104
- });
105
- });
106
-
107
- rt.setRoot404(function(req, res) {
108
- res.writeHead(404, {"Content-Type": "text/html"});
109
- res.write("<!DOCTYPE \"html\">");
110
- res.write("<html>");
111
- res.write("<head>");
112
- res.write("<title>Page Not Found</title>");
113
- res.write("</head>");
114
- res.write("<body>");
115
- res.write("<h1>Page Not Found</h1>");
116
- res.write("</body>");
117
- res.write("</html>");
118
- res.end();
119
- });
120
- callback(null, true);
121
-
122
- // We should be able to put info into the db.
123
- });
124
- }
125
- });
126
- }
127
- }
128
-
129
-
1
+ /**
2
+ * Created by James on 03/01/2016.
3
+ */
4
+
5
+
6
+ var jsgui = require('jsgui3-html');
7
+ //var Window = require('../../../../js/web/controls/advanced/window');
8
+ //var Start_Stop_Toggle_Button = require('../../../../js/web/controls/advanced/start-stop-toggle-button');
9
+ var Server_Page_Context = require("./page-context");
10
+
11
+ var Data_Object = jsgui.Data_Object;
12
+ var Collection = jsgui.Collection;
13
+
14
+
15
+ //var Simple_Authentication_Provider = Resource_Authentication.Simple_Provider;
16
+
17
+ var j = jsgui;
18
+ var Class = j.Class;
19
+
20
+ class Single_Page_App extends jsgui.Evented_Class {
21
+ constructor(spec) {
22
+ super(spec);
23
+ var name = spec.name;
24
+ var port = spec.port;
25
+ var ctrl_main = spec.ctrl_main;
26
+ var server = new jsgui.Server.JSGUI_Server({
27
+ '*': {
28
+ 'name': name
29
+ }
30
+ });
31
+ this.name = name;
32
+ this.server = server;
33
+ this.port = port;
34
+ if (ctrl_main) this.ctrl_main = ctrl_main;
35
+ }
36
+ 'start'(callback) {
37
+ var server = this.server;
38
+
39
+ var rp = server.resource_pool;
40
+ var ar = rp.get_resource('Server Router');
41
+ var rt = ar.routing_tree;
42
+
43
+ var name = this.name;
44
+
45
+ var port = this.port;
46
+ var ctrl_main = this.ctrl_main;
47
+
48
+ //console.log('port', port);
49
+ //throw 'stop';
50
+
51
+ //console.log('callback', callback);
52
+ //throw 'stop';
53
+
54
+ var website_resource = rp.get_resource(name);
55
+ var js = website_resource.get_resource('Site JavaScript');
56
+
57
+ js.build_client(function(err, res_build_client) {
58
+ if (err) { callback(err); } else {
59
+ server.start(port, function(err, res_started) {
60
+ // Maybe it's best to use je-suis-xml for setting up the page.
61
+ // Set up jsgui-html-client-stylish within the js serving resource.
62
+ // It gets served as if it's within /js/web
63
+
64
+ rt.set('/', function(req, res) {
65
+ // Better to make a proper JSGUI client document.
66
+ //console.log('main page request');
67
+ var server_page_context = new Server_Page_Context({
68
+ 'req': req,
69
+ 'res': res
70
+ });
71
+ var hd = new jsgui.Client_HTML_Document({
72
+ 'context': server_page_context
73
+ });
74
+
75
+ hd.include_client_css();
76
+ hd.include_js('/js/app-bundle.js');
77
+
78
+ var body = hd.body();
79
+ // Will need to add the abstract control that has been given.
80
+
81
+ var ctrl_0 = server_page_context.make(ctrl_main);
82
+ body.add(ctrl_0);
83
+ ctrl_0.active();
84
+ //var ctrl_0 = new Control({
85
+ // 'context': server_page_context
86
+ //});
87
+ //ctrl_0.resizable();
88
+ //body.add(ctrl_0);
89
+ //ctrl_0.active();
90
+
91
+ // style should at least set the CSS.
92
+ //
93
+
94
+ hd.all_html_render(function(err, deferred_html) {
95
+ if (err) {
96
+ throw err;
97
+ } else {
98
+ //console.log('deferred_html', deferred_html);
99
+ var mime_type = 'text/html';
100
+ //console.log('mime_type ' + mime_type);
101
+ res.writeHead(200, { 'Content-Type': mime_type });
102
+ res.end(deferred_html, 'utf-8');
103
+ }
104
+ });
105
+ });
106
+
107
+ rt.setRoot404(function(req, res) {
108
+ res.writeHead(404, {"Content-Type": "text/html"});
109
+ res.write("<!DOCTYPE \"html\">");
110
+ res.write("<html>");
111
+ res.write("<head>");
112
+ res.write("<title>Page Not Found</title>");
113
+ res.write("</head>");
114
+ res.write("<body>");
115
+ res.write("<h1>Page Not Found</h1>");
116
+ res.write("</body>");
117
+ res.write("</html>");
118
+ res.end();
119
+ });
120
+ callback(null, true);
121
+
122
+ // We should be able to put info into the db.
123
+ });
124
+ }
125
+ });
126
+ }
127
+ }
128
+
129
+
130
130
  module.exports = Single_Page_App;
@@ -1,15 +0,0 @@
1
- // Defines a single constant, which is also functionality to be built.
2
-
3
-
4
- const {each, Evented_Class} = require('lang-mini');
5
-
6
- class Declaration extends Evented_Class {
7
- constructor(spec) {
8
- super();
9
- }
10
- }
11
-
12
- module.exports = Declaration;
13
-
14
- // Loading a declaration out of a file, so it fits within a declaration object.
15
-
@@ -1,15 +0,0 @@
1
-
2
-
3
- // lang-mini, for example, would be represented with this. It's a module that reveals a number of declarations.
4
- // Internally, it operates in a sequence (kind of).
5
-
6
-
7
- const {each, Evented_Class} = require('lang-mini');
8
-
9
- class Declaration_Sequence extends Evented_Class {
10
- constructor(spec) {
11
- super();
12
- }
13
- }
14
-
15
- module.exports = Declaration_Sequence;
@@ -1,77 +0,0 @@
1
- // Could do this in a simpler way than full AST manipulation.
2
-
3
- // Want to write out jsgui in such a way that the lower levels are all accessed as local functions and objects within an inner scope.
4
-
5
- const {each, Evented_Class} = require('lang-mini');
6
- //const { default: JS_Builder } = require('./JS_Builder');
7
-
8
- // Interpret / arrange a file in terms of the other objects within this system.
9
-
10
- // References at the beginning - will also work in terms of references to declarations, platforms, and declaration sequences.
11
-
12
-
13
-
14
- // Make it operate in a streaming way?
15
- // Event driven too?
16
- // So it can have events as it goes through the file or the stream.
17
-
18
-
19
-
20
-
21
- class JS_File extends Evented_Class {
22
- constructor(spec = {}) {
23
- super();
24
-
25
- const rs = () => spec.rs || undefined;
26
- const line_break_hex = () => spec.line_break_hex || '0A';
27
-
28
- //this.on('readline', e_readline => {
29
-
30
- //});
31
-
32
- if (rs) {
33
- // Interpret it in chunks.
34
- // Read it line by line, after character by character.
35
- // Very event driven parser, or partial parser at least.
36
-
37
- //let buf1;
38
-
39
- // Separate the chunks and the raise an event for each line.
40
- // Charactrer by character???
41
-
42
- this.on('recieve-character', e_receive_character => {
43
- console.log('e_receive_character', e_receive_character);
44
- });
45
-
46
- rs.on('data', chunk => {
47
- if (!buf1) {buf1 = chunk} else {
48
- // buf1 = Buffer.concat([buf1, chunk]);
49
- const l = chunk.length;
50
- console.log('l', l);
51
- for (let c = 0; c < l; c++) {
52
- this.raise('recieve-character', {
53
- byte_value: chunk.readUInt8(c)
54
- });
55
- }
56
- }
57
-
58
- });
59
-
60
- // then divide by line break character?
61
- // not sure of the formating, probably unicode.
62
-
63
-
64
-
65
-
66
-
67
- }
68
- }
69
- }
70
- JS_File.load_from_stream = (rs) => {
71
-
72
- }
73
- JS_File.load_from_path = (path) => {
74
-
75
- }
76
-
77
- module.exports = JS_File;