jsgui3-server 0.0.74 → 0.0.78
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/examples/client-side-popup-menu-button.html +93 -93
- package/examples/controls/_html-server-color-palette.js +114 -114
- package/examples/controls/html-server-combo-box.js +104 -104
- package/examples/controls/html-server-list.js +98 -98
- package/examples/controls/html-server-popup-menu-button.js +114 -114
- package/examples/controls/html-server-start-stop-toggle-button.js +146 -146
- package/examples/controls/scs-arrow-button.js +36 -36
- package/examples/controls/scs-date-picker.js +157 -157
- package/examples/controls/scs-file-browser.js +82 -82
- package/examples/controls/scs-item.js +159 -159
- package/examples/controls/scs-month-arrow-selector.js +126 -126
- package/examples/controls/scs-month-view.js +95 -95
- package/examples/controls/scs-start-stop-toggle-button.js +40 -40
- package/examples/controls/scs-tree.js +49 -49
- package/examples/controls/scs-year-arrow-selector.js +127 -127
- package/examples/demos/date-picker.js +119 -119
- package/examples/demos/explain-encapsulation.js +9 -9
- package/examples/demos/resizing.js +35 -35
- package/examples/demos/server_time.js +6 -6
- package/examples/demos/square_box.js +324 -324
- package/examples/html-rendering.js +20 -20
- package/examples/html-server.js +102 -100
- package/fs2.js +1836 -1836
- package/module.js +21 -21
- package/old/single-control-server.js +418 -418
- package/package.json +44 -42
- package/publishing/function-publisher.js +202 -202
- package/publishing/notes.md +5 -5
- package/publishing/observable-publisher.js +118 -118
- package/publishing/resource-publisher.js +306 -306
- package/resources/data-resource.js +104 -104
- package/resources/fs-resource.js +148 -148
- package/resources/jsbuilder/Abstract_Single_Declaration.js +105 -0
- package/resources/jsbuilder/Abstract_Single_Declaration_Sequence.js +43 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node.js +62 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node_Group.js +42 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Group_Shared.js +62 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node.js +94 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_0-Core.js +228 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_1-Babel.js +338 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_10-Changing.js +40 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.1-Child.js +97 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.2-Parent.js +38 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.3-Ancestor.js +62 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.2-Inner.js +44 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.3-All.js +73 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.4-Sibling.js +93 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.5-Available_In_Scope.js +29 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.9-Signature.js +116 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3-Basics.js +160 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.0-Basics_First.js +179 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.1-Basics_Second.js +88 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.99-Basics_Last.js +92 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1-Basics_Each.js +137 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1.5-Basics_Count.js +74 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.2-Basics_Filter.js +40 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.3-Basics_Collect.js +86 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.4-Basics_Select.js +43 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.5-Basics_Find.js +41 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.6-Basics_Callmap.js +55 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_4.0-Index_Indexes.js +46 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_4.1-Index.js +344 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.0-Category.js +39 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.1-Category_Identifier.js +31 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.2-Category_Literal.js +29 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.3-Category_Expression.js +27 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.4-Category_Pattern.js +9 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.5-Category_Declaration.js +44 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.6-Category_Statement.js +22 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.0-Type.js +87 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.1-Type_Class_Declaration.js +9 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.2-Type_Variable_Declaration.js +28 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.3-Type_Variable_Declarator.js +29 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_7-Query.js +737 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_8-Features.js +65 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_9-Planning.js +32 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Arrangement.js +15 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Declared_Object.js +306 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature.js +78 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declaration.js +249 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declarator.js +139 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature.js +10 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exported.js +101 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exports.js +61 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Interpreted.js +180 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/_JSGUI_Root_Node_Interpreted.js +43 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/special_case_objectassign_to_object.js +12 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Group.js +35 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Operation.js +11 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Operation_On_Relationship.js +32 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Ordered_Relationship_Node_To_Group.js +38 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Ordinal.js +40 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Ordinal_Relationship.js +25 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_To_Group.js +201 -0
- package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_Within_Group_To_Node.js +44 -0
- package/resources/jsbuilder/JS_AST/_JS_AST_Node_3.8-Query_Features.js +77 -0
- package/resources/jsbuilder/JS_AST/query/all.js +0 -0
- package/resources/jsbuilder/JS_AST/query/enable_array_as_queryable.js +228 -0
- package/resources/jsbuilder/JS_AST/query/find_object_keys.js +405 -0
- package/resources/jsbuilder/JS_AST/query/node_queries.js +9 -0
- package/resources/jsbuilder/JS_AST/query/root_queries.js +0 -0
- package/resources/jsbuilder/JS_AST/query/root_query_identidy.js +12 -0
- package/resources/jsbuilder/JS_AST_Node_Extended/JSGUI_Singular_Declaration.js +86 -0
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Declaration.js +124 -0
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended.js +88 -0
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended_0-Core.js +11 -0
- package/resources/jsbuilder/JS_Builder.js +11 -0
- package/resources/jsbuilder/JS_File/Feature/JS_File_Declared_Object.js +32 -0
- package/resources/jsbuilder/JS_File/Feature/JS_File_Exported_Object_Info.js +26 -0
- package/resources/jsbuilder/JS_File/Feature/JS_File_Exports.js +79 -0
- package/resources/jsbuilder/JS_File/Feature/JS_File_Feature.js +18 -0
- package/resources/jsbuilder/JS_File/Feature/JS_File_Imported_Object_Info.js +26 -0
- package/resources/jsbuilder/JS_File/Feature/JS_File_Imports.js +9 -0
- package/resources/jsbuilder/JS_File/JS_File.js +12 -0
- package/resources/jsbuilder/JS_File/JS_File_0-Core.js +202 -0
- package/resources/jsbuilder/JS_File/JS_File_1-Early_Parse.js +175 -0
- package/resources/jsbuilder/JS_File/JS_File_2-Babel.js +81 -0
- package/resources/jsbuilder/JS_File/JS_File_3-JS_AST_Node.js +86 -0
- package/resources/jsbuilder/JS_File/JS_File_4-Query.js +414 -0
- package/resources/jsbuilder/JS_File/JS_File_4.1-Query_Features.js +415 -0
- package/resources/jsbuilder/JS_File/JS_File_5-Planning.js +59 -0
- package/resources/jsbuilder/JS_File/JS_File_6-Changing.js +24 -0
- package/resources/jsbuilder/JS_File/JS_File_Export_Reference.js +12 -0
- package/resources/jsbuilder/JS_File/JS_File_Import_Reference.js +24 -0
- package/resources/jsbuilder/JS_File/JS_File_Import_References.js +32 -0
- package/resources/jsbuilder/JS_File/JS_File_Processor.js +16 -0
- package/resources/jsbuilder/JS_File/JS_Files.js +16 -0
- package/resources/jsbuilder/Module.js +14 -0
- package/resources/jsbuilder/Platform.js +14 -0
- package/resources/jsbuilder/Platforms.js +70 -0
- package/resources/jsbuilder/Project.js +109 -0
- package/resources/jsbuilder/Reference.js +1 -0
- package/resources/jsbuilder/Reference_Sequence.js +16 -0
- package/resources/jsbuilder/Scope.js +30 -0
- package/resources/jsbuilder/Variable_Name_Provider.js +43 -0
- package/resources/jsbuilder/_JS_File.js +226 -0
- package/resources/jsbuilder/ast_query.js +21 -0
- package/resources/jsbuilder/babel/babel_consts.js +150 -0
- package/resources/jsbuilder/babel/babel_node_tools.js +542 -0
- package/resources/jsbuilder/babel/deep_iterate/deep_iterate_babel.js +604 -0
- package/resources/jsbuilder/build.js +16 -0
- package/resources/jsbuilder/platform_notes.md +66 -0
- package/resources/jsbuilder/test/test_ast_node.js +451 -0
- package/resources/jsbuilder/test/test_js_file.js +304 -0
- package/resources/jsbuilder/test/test_project.js +157 -0
- package/resources/local-server-info-resource.js +78 -78
- package/resources/process-js.js +537 -537
- package/resources/server-resource-pool.js +84 -84
- package/resources/website-css-resource.js +411 -411
- package/resources/website-javascript-resource.js +761 -731
- package/resources/website-resource.js +390 -390
- package/resources/website-static-html-resource.js +196 -196
- package/server.js +170 -170
- package/single-control-server.js +398 -398
- package/single-page-app.js +129 -129
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
const JS_File_Core = require('./JS_File_0-Core');
|
|
2
|
+
|
|
3
|
+
class JS_File_Early_Parse extends JS_File_Core {
|
|
4
|
+
constructor(spec) {
|
|
5
|
+
super(spec);
|
|
6
|
+
|
|
7
|
+
let code_type;
|
|
8
|
+
let export_name;
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
this.on('recieve-line', e_recieve_line => {
|
|
14
|
+
//console.log('e_recieve_line', e_recieve_line);
|
|
15
|
+
const {str} = e_recieve_line;
|
|
16
|
+
if (str.startsWith('module.exports')) {
|
|
17
|
+
//console.log('str', str);
|
|
18
|
+
const [mexp, name] = str.split(';').join('').split(' ').join('').split('=');
|
|
19
|
+
//console.log('name', name);
|
|
20
|
+
export_name = name;
|
|
21
|
+
code_type = 'CommonJS';
|
|
22
|
+
this.raise('parsed-code-type', {
|
|
23
|
+
value: code_type
|
|
24
|
+
});
|
|
25
|
+
//console.log('pre raise parsed-export-name');
|
|
26
|
+
this.raise('parsed-export-name', {
|
|
27
|
+
value: name
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// preparsing? early parsing?
|
|
33
|
+
this.on('parsed-export-name', e_parse => {
|
|
34
|
+
const {value} = e_parse;
|
|
35
|
+
//console.log('parsed-export-name', value);
|
|
36
|
+
export_name = value;
|
|
37
|
+
});
|
|
38
|
+
this.on('parsed-root-class-name', e_parse => {
|
|
39
|
+
const {value} = e_parse;
|
|
40
|
+
//console.log('parsed-root-class-name', value);
|
|
41
|
+
root_class_name = value;
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
const arr_lines = [];
|
|
45
|
+
const ta_line_buffer = new Uint8Array(1024);
|
|
46
|
+
let byte_in_line_num = 0, line_num = 0;
|
|
47
|
+
|
|
48
|
+
let last_recieved_byte;
|
|
49
|
+
let recieved_byte;
|
|
50
|
+
|
|
51
|
+
this.on('recieve-line', e_recieve_line => {
|
|
52
|
+
//console.log('e_recieve_line', e_recieve_line);
|
|
53
|
+
const {str} = e_recieve_line;
|
|
54
|
+
|
|
55
|
+
// and strip the tabs and whitespace.
|
|
56
|
+
arr_lines.push(str);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
this.on('recieve-line', e_recieve_line => {
|
|
61
|
+
//console.log('e_recieve_line', e_recieve_line);
|
|
62
|
+
const {str} = e_recieve_line;
|
|
63
|
+
|
|
64
|
+
// and strip the tabs and whitespace.
|
|
65
|
+
//arr_lines.push(str);
|
|
66
|
+
|
|
67
|
+
// process the line character by character.
|
|
68
|
+
|
|
69
|
+
//console.log('e_recieve_linestr', str);
|
|
70
|
+
|
|
71
|
+
// And break up the line into statements;
|
|
72
|
+
|
|
73
|
+
const s = e_recieve_line.str, l = s.length;
|
|
74
|
+
for (let c = 0; c < l; c++) {
|
|
75
|
+
const ch = s[c];
|
|
76
|
+
this.raise('recieve-line-char', {
|
|
77
|
+
line_num: line_num,
|
|
78
|
+
char: ch,
|
|
79
|
+
char_code: s.charCodeAt(c)
|
|
80
|
+
})
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
this.on('recieve-byte', e_receive_byte => {
|
|
88
|
+
last_recieved_byte = recieved_byte;
|
|
89
|
+
recieved_byte = e_receive_byte.byte_value;
|
|
90
|
+
ta_line_buffer[byte_in_line_num++] = recieved_byte;
|
|
91
|
+
//console.log('e_receive_byte', e_receive_byte);
|
|
92
|
+
|
|
93
|
+
if (recieved_byte === 10) {
|
|
94
|
+
// lf
|
|
95
|
+
if (last_recieved_byte === 13) {
|
|
96
|
+
// cr, for windows
|
|
97
|
+
|
|
98
|
+
const line_until_crlf = new Uint8Array(ta_line_buffer.subarray(0, byte_in_line_num - 2));
|
|
99
|
+
|
|
100
|
+
this.raise('recieve-line', {
|
|
101
|
+
ta_line: line_until_crlf,
|
|
102
|
+
bytes_length: byte_in_line_num,
|
|
103
|
+
str: String.fromCharCode.apply(null, line_until_crlf)
|
|
104
|
+
})
|
|
105
|
+
|
|
106
|
+
} else {
|
|
107
|
+
|
|
108
|
+
const line_until_lf = new Uint8Array(ta_line_buffer.subarray(0, byte_in_line_num - 1));
|
|
109
|
+
this.raise('recieve-line', {
|
|
110
|
+
ta_line: line_until_lf,
|
|
111
|
+
bytes_length: byte_in_line_num,
|
|
112
|
+
str: String.fromCharCode.apply(null, line_until_lf)
|
|
113
|
+
})
|
|
114
|
+
}
|
|
115
|
+
ta_line_buffer.fill(0);
|
|
116
|
+
line_num++;
|
|
117
|
+
byte_in_line_num = 0;
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
this.on('input-stream-end', e_isend => {
|
|
122
|
+
//const {str_all, sha512} = e_isend;
|
|
123
|
+
|
|
124
|
+
const line_until_end = new Uint8Array(ta_line_buffer.subarray(0, byte_in_line_num));
|
|
125
|
+
const str = String.fromCharCode.apply(null, line_until_end);
|
|
126
|
+
this.raise('recieve-line', {
|
|
127
|
+
ta_line: line_until_end,
|
|
128
|
+
bytes_length: byte_in_line_num,
|
|
129
|
+
str: str,
|
|
130
|
+
last: true
|
|
131
|
+
});
|
|
132
|
+
const str_all = arr_lines.join('\n');
|
|
133
|
+
//var crypto = require('crypto');
|
|
134
|
+
|
|
135
|
+
/*
|
|
136
|
+
|
|
137
|
+
var hash = crypto.createHash('sha512');
|
|
138
|
+
//passing the data to be hashed
|
|
139
|
+
//data = hash.update('salt1', 'utf-8');
|
|
140
|
+
const data = hash.update('str_all', 'utf-8');
|
|
141
|
+
//Creating the hash in the required format
|
|
142
|
+
const gen_hash = data.digest('hex');
|
|
143
|
+
//Printing the output on the console
|
|
144
|
+
console.log("hash : " + gen_hash);
|
|
145
|
+
|
|
146
|
+
*/
|
|
147
|
+
//throw 'stop';
|
|
148
|
+
|
|
149
|
+
this.raise('complete-file-recieved', {
|
|
150
|
+
str_all: str_all
|
|
151
|
+
})
|
|
152
|
+
})
|
|
153
|
+
|
|
154
|
+
// No, will have an export object or feature?
|
|
155
|
+
// .export object that can be queried makes a lot of sense.
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
Object.defineProperty(this, 'export_name', {
|
|
161
|
+
// Using shorthand method names (ES2015 feature).
|
|
162
|
+
// This is equivalent to:
|
|
163
|
+
// get: function() { return bValue; },
|
|
164
|
+
// set: function(newValue) { bValue = newValue; },
|
|
165
|
+
get() { return export_name; },
|
|
166
|
+
//set(newValue) { bValue = newValue; },
|
|
167
|
+
enumerable: true,
|
|
168
|
+
configurable: false
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
module.exports = JS_File_Early_Parse;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
const JS_File_Early_Parse = require('./JS_File_1-Early_Parse');
|
|
2
|
+
const {each, tof} = require('lang-mini');
|
|
3
|
+
|
|
4
|
+
const parser = require('@babel/parser');
|
|
5
|
+
|
|
6
|
+
class JS_File_Babel extends JS_File_Early_Parse {
|
|
7
|
+
constructor(spec) {
|
|
8
|
+
super(spec);
|
|
9
|
+
let ready = false, babel_ast;
|
|
10
|
+
//const babel_root_declarations = [];
|
|
11
|
+
|
|
12
|
+
Object.defineProperty(this, 'babel_ast', {
|
|
13
|
+
get() { return babel_ast; },
|
|
14
|
+
enumerable: true,
|
|
15
|
+
configurable: false
|
|
16
|
+
});
|
|
17
|
+
// root_declarations
|
|
18
|
+
|
|
19
|
+
/*
|
|
20
|
+
Object.defineProperty(this, 'babel_root_declarations', {
|
|
21
|
+
get() { return babel_root_declarations; },
|
|
22
|
+
enumerable: true,
|
|
23
|
+
configurable: false
|
|
24
|
+
});
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
Object.defineProperty(this, 'babel_root_nodes', {
|
|
28
|
+
get() { return babel_ast.program.body; },
|
|
29
|
+
enumerable: true,
|
|
30
|
+
configurable: false
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
const each_babel_root_node = (callback) => {
|
|
34
|
+
if (ready) {
|
|
35
|
+
each(babel_ast.program.body, body_node => callback(body_node));
|
|
36
|
+
} else {
|
|
37
|
+
throw 'Not ready';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// 'complete-file-recieved'
|
|
42
|
+
|
|
43
|
+
this.on('complete-file-recieved', (e_end) => {
|
|
44
|
+
const {str_all} = e_end;
|
|
45
|
+
//sha512 = e_end.sha512;
|
|
46
|
+
//source = str_all;
|
|
47
|
+
//console.log('str_all.length', str_all.length);
|
|
48
|
+
//console.log('arr_lines', arr_lines);
|
|
49
|
+
|
|
50
|
+
//console.log('str_all', str_all);
|
|
51
|
+
|
|
52
|
+
//throw 'stop';
|
|
53
|
+
|
|
54
|
+
babel_ast = parser.parse(str_all, {
|
|
55
|
+
sourceType: 'module',
|
|
56
|
+
plugins: [
|
|
57
|
+
'asyncGenerators',
|
|
58
|
+
'bigInt',
|
|
59
|
+
'classPrivateMethods',
|
|
60
|
+
'classPrivateProperties',
|
|
61
|
+
'classProperties',
|
|
62
|
+
'doExpressions',
|
|
63
|
+
//'exportDefaultFrom',
|
|
64
|
+
'nullishCoalescingOperator',
|
|
65
|
+
'numericSeparator',
|
|
66
|
+
'objectRestSpread',
|
|
67
|
+
'optionalCatchBinding',
|
|
68
|
+
'optionalChaining',
|
|
69
|
+
]});
|
|
70
|
+
//console.log('ast', ast);
|
|
71
|
+
this.raise('parsed-ast', {
|
|
72
|
+
value: babel_ast
|
|
73
|
+
});
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
this.on('parsed-ast', e_parsed_ast => ready = true);
|
|
77
|
+
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
module.exports = JS_File_Babel;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
const JS_File_Babel = require('./JS_File_2-Babel');
|
|
2
|
+
const JS_AST_Node = require('../JS_AST/JS_AST_Node');
|
|
3
|
+
|
|
4
|
+
//const JS_AST_Node_Root_Interpreted = require('../JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Interpreted');
|
|
5
|
+
|
|
6
|
+
const JS_AST_Node_Root_Interpreted = require('../JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Interpreted');
|
|
7
|
+
|
|
8
|
+
class JS_File_JS_AST_Node extends JS_File_Babel {
|
|
9
|
+
constructor(spec) {
|
|
10
|
+
super(spec);0
|
|
11
|
+
|
|
12
|
+
// This looks like the place to create the mirror of the Babel structure.
|
|
13
|
+
// Respond to ast-ready.
|
|
14
|
+
|
|
15
|
+
let js_ast_node_file;
|
|
16
|
+
let node_body, node_root;
|
|
17
|
+
|
|
18
|
+
this.on('parsed-ast', e_parsed_ast => {
|
|
19
|
+
|
|
20
|
+
//console.log('e_parsed_ast', e_parsed_ast);
|
|
21
|
+
//throw 'stop';
|
|
22
|
+
|
|
23
|
+
// This is the point where the mirror AST_Node construction gets made.
|
|
24
|
+
// Each of these nodes will have a path from the root of the document.
|
|
25
|
+
|
|
26
|
+
// Will later work on
|
|
27
|
+
|
|
28
|
+
// Create an AST node that represents the document.
|
|
29
|
+
// then there will be a body node
|
|
30
|
+
|
|
31
|
+
//console.log('e_parsed_ast', e_parsed_ast);
|
|
32
|
+
//throw 'stop';
|
|
33
|
+
|
|
34
|
+
// Make a root node with extra feature detection capabilities.
|
|
35
|
+
// with
|
|
36
|
+
|
|
37
|
+
// The root node is the file node. That's questionable though.
|
|
38
|
+
// Prefer to think of the body root.
|
|
39
|
+
// But need to start saying body rather than root.
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
js_ast_node_file = new JS_AST_Node_Root_Interpreted({
|
|
43
|
+
babel_node: e_parsed_ast.value,
|
|
44
|
+
source: this.source,
|
|
45
|
+
root_node: true
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
node_root = js_ast_node_file;
|
|
49
|
+
//console.log('Object.keys(js_ast_node_file)', Object.keys(js_ast_node_file));
|
|
50
|
+
//console.log('(js_ast_node_file.type)', (js_ast_node_file.type));
|
|
51
|
+
//const node_body = js_ast_node_file.child_nodes[0].child_nodes[0];
|
|
52
|
+
node_body = js_ast_node_file.child_nodes[0];
|
|
53
|
+
|
|
54
|
+
//console.log('(node_body.type)', (node_body.type));
|
|
55
|
+
//throw 'stop';
|
|
56
|
+
|
|
57
|
+
this.raise('parsed-node_body', {
|
|
58
|
+
value: node_body
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
//console.log('js_ast_node_file', js_ast_node_file);
|
|
62
|
+
//console.log('js_ast_node_file.type', js_ast_node_file.type);
|
|
63
|
+
//console.log('js_ast_node_file.babel.type', js_ast_node_file.babel.type);
|
|
64
|
+
//console.log('js_ast_node_file.babel.node', js_ast_node_file.babel.node);
|
|
65
|
+
//throw 'stop';
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
Object.defineProperty(this, 'js_ast_node_file', {
|
|
69
|
+
get() {
|
|
70
|
+
return js_ast_node_file;
|
|
71
|
+
},
|
|
72
|
+
enumerable: true,
|
|
73
|
+
configurable: false
|
|
74
|
+
});
|
|
75
|
+
Object.defineProperty(this, 'node_root', {
|
|
76
|
+
get() {
|
|
77
|
+
return node_root;
|
|
78
|
+
},
|
|
79
|
+
enumerable: true,
|
|
80
|
+
configurable: false
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
module.exports = JS_File_JS_AST_Node;
|