jsgui3-server 0.0.121 → 0.0.122
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/.vscode/settings.json +6 -0
- package/README.md +10 -10
- package/controls/Active_HTML_Document.js +116 -116
- package/controls/README.md +7 -7
- package/controls/page/admin.js +74 -74
- package/controls/panel/admin.js +11 -11
- package/examples/_css/basic.css +913 -913
- package/examples/_css/database-control.css +51 -51
- package/examples/_css/jsgui.css +66 -66
- package/examples/_css/multi-layout.css +23 -23
- package/examples/_css/style.css +1669 -1669
- package/examples/_css/top-and-bottom-bars.css +54 -54
- package/examples/box/1) square box/client.js +188 -188
- package/examples/box/1) square box/server.js +112 -112
- package/examples/box/2) twenty square boxes/css flex wrap/client.js +248 -248
- package/examples/box/2) twenty square boxes/css flex wrap/server.js +112 -112
- package/examples/boxes/square_boxes.js +45 -48
- package/examples/boxes/square_boxes_client.js +132 -136
- package/examples/client-side-popup-menu-button.html +93 -93
- package/examples/color_palette.js +51 -51
- package/examples/color_palette_client.js +95 -95
- package/examples/controls/1) window/client.js +186 -186
- package/examples/controls/1) window/server.js +117 -117
- package/examples/controls/10) window, mirrored text inputs/client.js +320 -320
- package/examples/controls/10) window, mirrored text inputs/server.js +117 -117
- package/examples/controls/11) window, mirrored text fields/client.js +493 -251
- package/examples/controls/11) window, mirrored text fields/server.js +117 -117
- package/examples/controls/11b) window, shared Data_Object model mirrored text fields/client.js +613 -331
- package/examples/controls/11b) window, shared Data_Object model mirrored text fields/server.js +117 -117
- package/examples/controls/11c) window, shared Data_Value model mirrored text fields/client.js +617 -617
- package/examples/controls/11c) window, shared Data_Value model mirrored text fields/server.js +117 -117
- package/examples/controls/11d) window, shared model mirrored integer text fields/client.js +611 -280
- package/examples/controls/11d) window, shared model mirrored integer text fields/server.js +134 -22
- package/examples/controls/12) window, Select_Options control/client.js +435 -452
- package/examples/controls/12) window, Select_Options control/server.js +117 -117
- package/examples/controls/2) two windows/client.js +193 -193
- package/examples/controls/2) two windows/server.js +113 -113
- package/examples/controls/3) five windows/client.js +217 -217
- package/examples/controls/3) five windows/server.js +116 -115
- package/examples/controls/4) window, tabbed panel/client.js +54 -225
- package/examples/controls/4) window, tabbed panel/server.js +17 -117
- package/examples/controls/5) window, grid/client.js +204 -484
- package/examples/controls/5) window, grid/server.js +117 -119
- package/examples/controls/6) window, color_palette/client.js +204 -204
- package/examples/controls/6) window, color_palette/server.js +117 -117
- package/examples/controls/7) window, month_view/client.js +40 -231
- package/examples/controls/7) window, month_view/server.js +117 -117
- package/examples/controls/8) window, checkbox/client.js +247 -209
- package/examples/controls/8) window, checkbox/server.js +117 -117
- package/examples/controls/9) window, date picker/client.js +303 -303
- package/examples/controls/9) window, date picker/server.js +117 -117
- package/examples/controls/9b) window, shared data.model mirrored date pickers/client.js +398 -398
- package/examples/controls/9b) window, shared data.model mirrored date pickers/server.js +117 -117
- package/examples/controls/__old/_html-server-color-palette.js +114 -114
- package/examples/controls/__old/html-server-combo-box.js +104 -104
- package/examples/controls/__old/html-server-list.js +98 -98
- package/examples/controls/__old/html-server-popup-menu-button.js +114 -114
- package/examples/controls/__old/html-server-start-stop-toggle-button.js +146 -146
- package/examples/controls/__old/scs-arrow-button.js +36 -36
- package/examples/controls/__old/scs-date-picker.js +157 -157
- package/examples/controls/__old/scs-file-browser.js +82 -82
- package/examples/controls/__old/scs-item.js +159 -159
- package/examples/controls/__old/scs-month-arrow-selector.js +126 -126
- package/examples/controls/__old/scs-month-view.js +94 -94
- package/examples/controls/__old/scs-start-stop-toggle-button.js +40 -40
- package/examples/controls/__old/scs-tree.js +49 -49
- package/examples/controls/__old/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/grids/grid_1.js +45 -45
- package/examples/grids/grid_1_client.js +329 -329
- package/examples/html-rendering.js +20 -20
- package/examples/html-server.js +105 -105
- package/examples/introducing jsgui3/server.js +110 -110
- package/examples/mx_display/mx_display_1.js +45 -45
- package/examples/mx_display/mx_display_1_client.js +444 -444
- package/fs2.js +1836 -1836
- package/http/responders/HTTP_Responder.js +15 -15
- package/http/responders/static/Static_Route_HTTP_Responder.js +105 -105
- package/module.js +34 -34
- package/old/_single-control-server.js +418 -418
- package/old/single-control-server.js +368 -368
- package/old/single-page-app.js +131 -131
- package/package.json +42 -42
- package/page-context.js +92 -92
- package/publishers/helpers/assigners/Assigner.js +10 -10
- package/publishers/helpers/assigners/static-compressed-response-buffers/Single_Control_Webpage_Server_Static_Compressed_Response_Buffers_Assigner.js +150 -150
- package/publishers/helpers/assigners/static-headers/Single_Control_Webpage_Server_Static_Headers_Assigner.js +109 -109
- package/publishers/helpers/assigners/static-routes/Single_Control_Webpage_Server_Static_Routes_Assigner.js +91 -91
- package/publishers/helpers/assigners/static-uncompressed-response-buffers/Single_Control_Webpage_Server_Static_Uncompressed_Response_Buffers_Assigner.js +104 -104
- package/publishers/helpers/preparers/static/bundle/Ready_To_Serve_Preparer.js +18 -18
- package/publishers/helpers/preparers/static/bundle/Static_Routes_Responses_Webpage_Bundle_Preparer.js +44 -44
- package/publishers/http-function-publisher.js +212 -212
- package/publishers/http-html-page-publisher.js +5 -5
- package/publishers/http-html-publisher.js +24 -24
- package/publishers/http-js-publisher.js +135 -135
- package/publishers/http-observable-publisher.js +124 -124
- package/publishers/http-publisher.js +53 -53
- package/publishers/http-resource-publisher.js +325 -325
- package/publishers/http-webpage-publisher.js +659 -658
- package/publishers/http-webpageorsite-publisher.js +343 -343
- package/publishers/http-website-publisher.js +640 -640
- package/publishers/notes.md +9 -9
- package/resources/README.md +16 -16
- package/resources/_old_website-javascript-resource.js +994 -994
- package/resources/_old_website-resource.js +507 -507
- package/resources/compile/server-resource-compilation.js +43 -43
- package/resources/data-resource.js +118 -118
- package/resources/fs-resource.js +146 -146
- package/resources/jsbuilder/Abstract_Single_Declaration.js +105 -105
- package/resources/jsbuilder/Abstract_Single_Declaration_Sequence.js +42 -42
- package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node.js +61 -61
- package/resources/jsbuilder/JS_AST/JS_AST_Abstract_Node_Group.js +41 -41
- package/resources/jsbuilder/JS_AST/JS_AST_Group_Shared.js +61 -61
- package/resources/jsbuilder/JS_AST/JS_AST_Node.js +93 -93
- package/resources/jsbuilder/JS_AST/JS_AST_Node_0-Core.js +253 -253
- package/resources/jsbuilder/JS_AST/JS_AST_Node_1-Babel.js +337 -337
- package/resources/jsbuilder/JS_AST/JS_AST_Node_10-Changing.js +39 -39
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.1-Child.js +96 -96
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.2-Parent.js +37 -37
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.1.3-Ancestor.js +61 -61
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.2-Inner.js +43 -43
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.3-All.js +72 -72
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.4-Sibling.js +92 -92
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.5-Available_In_Scope.js +29 -29
- package/resources/jsbuilder/JS_AST/JS_AST_Node_2.9-Signature.js +116 -116
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3-Basics.js +159 -159
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.0-Basics_First.js +178 -178
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.1-Basics_Second.js +87 -87
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.0.99-Basics_Last.js +91 -91
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1-Basics_Each.js +136 -136
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.1.5-Basics_Count.js +73 -73
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.2-Basics_Filter.js +39 -39
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.3-Basics_Collect.js +85 -85
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.4-Basics_Select.js +42 -42
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.5-Basics_Find.js +40 -40
- package/resources/jsbuilder/JS_AST/JS_AST_Node_3.6-Basics_Callmap.js +54 -54
- package/resources/jsbuilder/JS_AST/JS_AST_Node_4.0-Index_Indexes.js +45 -45
- package/resources/jsbuilder/JS_AST/JS_AST_Node_4.1-Index.js +343 -343
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.0-Category.js +38 -38
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.1-Category_Identifier.js +30 -30
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.2-Category_Literal.js +28 -28
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.3-Category_Expression.js +26 -26
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.4-Category_Pattern.js +8 -8
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.5-Category_Declaration.js +43 -43
- package/resources/jsbuilder/JS_AST/JS_AST_Node_5.6-Category_Statement.js +21 -21
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.0-Type.js +89 -89
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.1-Type_Class_Declaration.js +8 -8
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.2-Type_Variable_Declaration.js +27 -27
- package/resources/jsbuilder/JS_AST/JS_AST_Node_6.3-Type_Variable_Declarator.js +28 -28
- package/resources/jsbuilder/JS_AST/JS_AST_Node_7-Query.js +736 -736
- package/resources/jsbuilder/JS_AST/JS_AST_Node_8-Features.js +64 -64
- package/resources/jsbuilder/JS_AST/JS_AST_Node_9-Planning.js +31 -31
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Arrangement.js +15 -15
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Declared_Object.js +305 -305
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature.js +77 -77
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declaration.js +248 -248
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Node_Feature_Declarator.js +138 -138
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature.js +10 -10
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exported.js +100 -100
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Feature_Exports.js +60 -60
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/JS_AST_Root_Node_Interpreted.js +179 -179
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/_JSGUI_Root_Node_Interpreted.js +43 -43
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Feature/JS_AST_Root_Node_Feature/special_case_objectassign_to_object.js +12 -12
- package/resources/jsbuilder/JS_AST/JS_AST_Node_Group.js +35 -35
- package/resources/jsbuilder/JS_AST/JS_AST_Operation.js +11 -11
- package/resources/jsbuilder/JS_AST/JS_AST_Operation_On_Relationship.js +31 -31
- package/resources/jsbuilder/JS_AST/JS_AST_Ordered_Relationship_Node_To_Group.js +37 -37
- package/resources/jsbuilder/JS_AST/JS_AST_Ordinal.js +39 -39
- package/resources/jsbuilder/JS_AST/JS_AST_Ordinal_Relationship.js +25 -25
- package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_To_Group.js +200 -200
- package/resources/jsbuilder/JS_AST/JS_AST_Relationship_Node_Within_Group_To_Node.js +43 -43
- package/resources/jsbuilder/JS_AST/_JS_AST_Node_3.8-Query_Features.js +76 -76
- package/resources/jsbuilder/JS_AST/query/enable_array_as_queryable.js +227 -227
- package/resources/jsbuilder/JS_AST/query/find_object_keys.js +404 -404
- package/resources/jsbuilder/JS_AST/query/node_queries.js +8 -8
- package/resources/jsbuilder/JS_AST/query/root_query_identidy.js +11 -11
- package/resources/jsbuilder/JS_AST_Node_Extended/JSGUI_Singular_Declaration.js +85 -85
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Declaration.js +123 -123
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended.js +87 -87
- package/resources/jsbuilder/JS_AST_Node_Extended/JS_AST_Node_Extended_0-Core.js +10 -10
- package/resources/jsbuilder/JS_Builder.js +10 -10
- package/resources/jsbuilder/JS_File/Feature/JS_File_Declared_Object.js +31 -31
- package/resources/jsbuilder/JS_File/Feature/JS_File_Exported_Object_Info.js +25 -25
- package/resources/jsbuilder/JS_File/Feature/JS_File_Exports.js +78 -78
- package/resources/jsbuilder/JS_File/Feature/JS_File_Feature.js +17 -17
- package/resources/jsbuilder/JS_File/Feature/JS_File_Imported_Object_Info.js +25 -25
- package/resources/jsbuilder/JS_File/Feature/JS_File_Imports.js +8 -8
- package/resources/jsbuilder/JS_File/JS_File.js +12 -12
- package/resources/jsbuilder/JS_File/JS_File_0-Core.js +202 -202
- package/resources/jsbuilder/JS_File/JS_File_1-Early_Parse.js +175 -175
- package/resources/jsbuilder/JS_File/JS_File_2-Babel.js +81 -81
- package/resources/jsbuilder/JS_File/JS_File_3-JS_AST_Node.js +86 -86
- package/resources/jsbuilder/JS_File/JS_File_4-Query.js +413 -413
- package/resources/jsbuilder/JS_File/JS_File_4.1-Query_Features.js +414 -414
- package/resources/jsbuilder/JS_File/JS_File_5-Planning.js +59 -59
- package/resources/jsbuilder/JS_File/JS_File_6-Changing.js +24 -24
- package/resources/jsbuilder/JS_File/JS_File_Export_Reference.js +12 -12
- package/resources/jsbuilder/JS_File/JS_File_Import_Reference.js +23 -23
- package/resources/jsbuilder/JS_File/JS_File_Import_References.js +31 -31
- package/resources/jsbuilder/JS_File/JS_File_Processor.js +16 -16
- package/resources/jsbuilder/JS_File/JS_Files.js +15 -15
- package/resources/jsbuilder/Module.js +14 -14
- package/resources/jsbuilder/Platform.js +13 -13
- package/resources/jsbuilder/Platforms.js +69 -69
- package/resources/jsbuilder/Project.js +109 -109
- package/resources/jsbuilder/Reference.js +1 -1
- package/resources/jsbuilder/Reference_Sequence.js +16 -16
- package/resources/jsbuilder/Scope.js +29 -29
- package/resources/jsbuilder/Variable_Name_Provider.js +42 -42
- package/resources/jsbuilder/_JS_File.js +225 -225
- package/resources/jsbuilder/ast_query.js +20 -20
- package/resources/jsbuilder/babel/babel_consts.js +162 -162
- package/resources/jsbuilder/babel/babel_node_tools.js +541 -541
- package/resources/jsbuilder/babel/deep_iterate/deep_iterate_babel.js +923 -904
- package/resources/jsbuilder/build.js +16 -16
- package/resources/jsbuilder/platform_notes.md +66 -66
- package/resources/jsbuilder/test/test_ast_node.js +381 -381
- package/resources/jsbuilder/test/test_js_file.js +303 -303
- package/resources/jsbuilder/test/test_project.js +157 -157
- package/resources/local-server-info-resource.js +96 -96
- package/resources/notes.txt +10 -10
- package/resources/old/website-image-resource.js +1185 -1185
- package/resources/process-js.js +498 -498
- package/resources/processors/bundlers/bundle.js +29 -29
- package/resources/processors/bundlers/bundler.js +23 -23
- package/resources/processors/bundlers/css-bundler.js +234 -234
- package/resources/processors/bundlers/js/JS_Bundler.js +51 -51
- package/resources/processors/bundlers/js/esbuild/Advanced_JS_Bundler_Using_ESBuild.js +388 -391
- package/resources/processors/bundlers/js/esbuild/Bundler_Using_ESBuild.js +8 -8
- package/resources/processors/bundlers/js/esbuild/Core_JS_Non_Minifying_Bundler_Using_ESBuild.js +188 -188
- package/resources/processors/bundlers/js/esbuild/Core_JS_Single_File_Minifying_Bundler_Using_ESBuild.js +191 -192
- package/resources/processors/bundlers/js/esbuild/_Old_CSS_Extractor.js +239 -239
- package/resources/processors/bundlers/js-bundler.js +263 -263
- package/resources/processors/bundlers/test_ast.js +73 -73
- package/resources/processors/bundlers/webpage-bundler.js +404 -404
- package/resources/processors/bundlers/website-bundler.js +22 -22
- package/resources/processors/extractors/Extractor.js +9 -11
- package/resources/processors/extractors/js/css_and_js/AST_Node/CSS_And_JS_From_JS_String_Using_AST_Node_Extractor.js +239 -254
- package/resources/processors/extractors/js/css_and_js/CSS_And_JS_From_JS_String_Extractor.js +3 -3
- package/resources/processors/extractors/string/Pos_Span_String_Extractor.js +93 -93
- package/resources/server-installed-tools.js +28 -28
- package/resources/server-resource-pool.js +41 -41
- package/resources/website-audio-resource.js +735 -735
- package/resources/website-css-resource.js +411 -411
- package/resources/website-image-resource.js +412 -412
- package/resources/website-javascript-resource-processor.js +908 -908
- package/resources/website-javascript-resource.js +874 -874
- package/resources/website-resource-processor.js +10 -10
- package/resources/website-resource.js +164 -164
- package/resources/website-static-html-resource.js +199 -199
- package/resources/website-template-html-resource.js +231 -231
- package/roadmap.md +75 -75
- package/server.js +609 -573
- package/static-page-context.js +13 -13
- package/website/webpage.js +81 -81
- package/website/website-group.js +15 -15
- package/website/website.js +260 -260
- package/examples/controls/11d) window, shared model mirrored integer text fields/both.js +0 -17
- package/examples/controls/13) window, shared model mirrored lat_long/client.js +0 -933
- package/examples/controls/13) window, shared model mirrored lat_long/server.js +0 -50
- package/examples/controls/14) window, control compositional model/client.js +0 -328
- package/examples/controls/14) window, control compositional model/server.js +0 -118
- package/examples/controls/14a) window, control spec has compositional model/client.js +0 -440
- package/examples/controls/14a) window, control spec has compositional model/server.js +0 -118
- package/examples/controls/15) window, text field/client.js +0 -256
- package/examples/controls/15) window, text field/server.js +0 -39
- package/examples/controls/16) Window([Text_Input])/client.js +0 -266
- package/examples/controls/16) Window([Text_Input])/server.js +0 -109
- package/examples/controls/16a) Window([Text_Input]) Integer data.model.data_type/client.js +0 -494
- package/examples/controls/16a) Window([Text_Input]) Integer data.model.data_type/isomorphic.js +0 -24
- package/examples/controls/16a) Window([Text_Input]) Integer data.model.data_type/server.js +0 -73
- package/examples/controls/2b) two window, context menus/client.js +0 -193
- package/examples/controls/2b) two window, context menus/server.js +0 -114
- package/examples/controls/4a) window, tabbed panel with various controls inside/client.js +0 -233
- package/examples/controls/4a) window, tabbed panel with various controls inside/server.js +0 -118
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const child_variable_declarations = (node) => {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
// .all.child.declaration
|
|
5
|
-
// .first.child.declaration
|
|
6
|
-
// improve / expand the syntax within AST_node and that will cover a variety of queries.
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
const child_variable_declarations = (node) => {
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
// .all.child.declaration
|
|
5
|
+
// .first.child.declaration
|
|
6
|
+
// improve / expand the syntax within AST_node and that will cover a variety of queries.
|
|
7
|
+
|
|
8
|
+
|
|
9
9
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
/*
|
|
2
|
-
|
|
3
|
-
Identify what features a module has
|
|
4
|
-
|
|
5
|
-
See if there are places where specific exctraction functions can run to get specific information.
|
|
6
|
-
|
|
7
|
-
This root node query can identify things to be queried lower down.
|
|
8
|
-
|
|
9
|
-
Some queries used here would be useful in other places, not just the root.
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
/*
|
|
2
|
+
|
|
3
|
+
Identify what features a module has
|
|
4
|
+
|
|
5
|
+
See if there are places where specific exctraction functions can run to get specific information.
|
|
6
|
+
|
|
7
|
+
This root node query can identify things to be queried lower down.
|
|
8
|
+
|
|
9
|
+
Some queries used here would be useful in other places, not just the root.
|
|
10
|
+
|
|
11
|
+
|
|
12
12
|
*/
|
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
const JS_AST_Node = require('../JS_AST/JS_AST_Node');
|
|
2
|
-
const JS_AST_Node_Babel = require('../JS_AST/JS_AST_Node');
|
|
3
|
-
|
|
4
|
-
class JSGUI_Singular_Declaration extends JS_AST_Node {
|
|
5
|
-
constructor(spec) {
|
|
6
|
-
|
|
7
|
-
// Will be one of the simpler features to recognise.
|
|
8
|
-
|
|
9
|
-
// A declaration where only one thing gets declared.
|
|
10
|
-
// Makes sense as an abstraction to use.
|
|
11
|
-
// Declarations may wind up joined together as output.
|
|
12
|
-
// They also may be taken apart as input.
|
|
13
|
-
|
|
14
|
-
// Lots of singular declarations can be extracted from lang-mini
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
// Signature of:
|
|
22
|
-
// VDn(VDr(ID,x))
|
|
23
|
-
// x means that anything inside can change, ie it's an expression of some sort.
|
|
24
|
-
|
|
25
|
-
// how about .is_expression property?
|
|
26
|
-
// would depend on the type I expect.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
// These could be found and extracted from JS files.
|
|
31
|
-
// Maybe Structure_Pattern would be better.
|
|
32
|
-
// Then extract data from specific and easy to reference parts of it.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
// Won't be compatable with all AST nodes.
|
|
37
|
-
|
|
38
|
-
// If it's with an incompatable node, switch the JSGUI declaration specific functionality off.
|
|
39
|
-
|
|
40
|
-
// Needs to have a single item being declared...?
|
|
41
|
-
// Though how about arrays.
|
|
42
|
-
|
|
43
|
-
// Some relatively simple rules and queries to see if something is a declaration.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
super(spec);
|
|
52
|
-
|
|
53
|
-
// Name property will work differently...?
|
|
54
|
-
|
|
55
|
-
Object.defineProperty(this, 'name', {
|
|
56
|
-
get() { return 'JV'; },
|
|
57
|
-
//set(newValue) { bValue = newValue; },
|
|
58
|
-
enumerable: true,
|
|
59
|
-
configurable: false
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
// Would be useful to get right elsewhere.
|
|
65
|
-
// Or outputting what would go into the constructor of the next one.
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
// Method to see if a JS_AST_Node is JSGUI_Declaration compatable.
|
|
69
|
-
// Declatations will essentially be for a single item.
|
|
70
|
-
// eg lang-mini will contain lots of declarations.
|
|
71
|
-
|
|
72
|
-
// Declarations will need to be in the right order in many situations.
|
|
73
|
-
// There will be a lot more in local scope, more things brought local within a large application.
|
|
74
|
-
// Classes that do very different things. Maybe even with the same original names, but will have to be renamed to different things if in the same scope.
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
JSGUI_Singular_Declaration.from_js_ast_node = (js_ast_node) => {
|
|
80
|
-
// Would be in a different context / no context when it gets made.
|
|
81
|
-
|
|
82
|
-
throw 'NYI';
|
|
83
|
-
|
|
84
|
-
}
|
|
85
|
-
|
|
1
|
+
const JS_AST_Node = require('../JS_AST/JS_AST_Node');
|
|
2
|
+
const JS_AST_Node_Babel = require('../JS_AST/JS_AST_Node');
|
|
3
|
+
|
|
4
|
+
class JSGUI_Singular_Declaration extends JS_AST_Node {
|
|
5
|
+
constructor(spec) {
|
|
6
|
+
|
|
7
|
+
// Will be one of the simpler features to recognise.
|
|
8
|
+
|
|
9
|
+
// A declaration where only one thing gets declared.
|
|
10
|
+
// Makes sense as an abstraction to use.
|
|
11
|
+
// Declarations may wind up joined together as output.
|
|
12
|
+
// They also may be taken apart as input.
|
|
13
|
+
|
|
14
|
+
// Lots of singular declarations can be extracted from lang-mini
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
// Signature of:
|
|
22
|
+
// VDn(VDr(ID,x))
|
|
23
|
+
// x means that anything inside can change, ie it's an expression of some sort.
|
|
24
|
+
|
|
25
|
+
// how about .is_expression property?
|
|
26
|
+
// would depend on the type I expect.
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
// These could be found and extracted from JS files.
|
|
31
|
+
// Maybe Structure_Pattern would be better.
|
|
32
|
+
// Then extract data from specific and easy to reference parts of it.
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
// Won't be compatable with all AST nodes.
|
|
37
|
+
|
|
38
|
+
// If it's with an incompatable node, switch the JSGUI declaration specific functionality off.
|
|
39
|
+
|
|
40
|
+
// Needs to have a single item being declared...?
|
|
41
|
+
// Though how about arrays.
|
|
42
|
+
|
|
43
|
+
// Some relatively simple rules and queries to see if something is a declaration.
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
super(spec);
|
|
52
|
+
|
|
53
|
+
// Name property will work differently...?
|
|
54
|
+
|
|
55
|
+
Object.defineProperty(this, 'name', {
|
|
56
|
+
get() { return 'JV'; },
|
|
57
|
+
//set(newValue) { bValue = newValue; },
|
|
58
|
+
enumerable: true,
|
|
59
|
+
configurable: false
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// Would be useful to get right elsewhere.
|
|
65
|
+
// Or outputting what would go into the constructor of the next one.
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
// Method to see if a JS_AST_Node is JSGUI_Declaration compatable.
|
|
69
|
+
// Declatations will essentially be for a single item.
|
|
70
|
+
// eg lang-mini will contain lots of declarations.
|
|
71
|
+
|
|
72
|
+
// Declarations will need to be in the right order in many situations.
|
|
73
|
+
// There will be a lot more in local scope, more things brought local within a large application.
|
|
74
|
+
// Classes that do very different things. Maybe even with the same original names, but will have to be renamed to different things if in the same scope.
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
JSGUI_Singular_Declaration.from_js_ast_node = (js_ast_node) => {
|
|
80
|
+
// Would be in a different context / no context when it gets made.
|
|
81
|
+
|
|
82
|
+
throw 'NYI';
|
|
83
|
+
|
|
84
|
+
}
|
|
85
|
+
|
|
86
86
|
module.exports = JSGUI_Singular_Declaration;
|
|
@@ -1,124 +1,124 @@
|
|
|
1
|
-
//const JS_AST_Node = require('../JS_AST/JS_AST_Node');
|
|
2
|
-
const {each} = require('lang-tools');
|
|
3
|
-
const JS_AST_Node_Extended_Core = require('./JS_AST_Node_Extended_0-Core');
|
|
4
|
-
|
|
5
|
-
class JS_AST_Node_Declaration extends JS_AST_Node_Extended_Core {
|
|
6
|
-
constructor(spec) {
|
|
7
|
-
super(spec);
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
// the type must be declaration.
|
|
11
|
-
|
|
12
|
-
if (!this.is_declaration) {
|
|
13
|
-
throw 'stop';
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
// Have tools for extracting specific information from declarations.
|
|
17
|
-
// Possibly for making a compressed version.
|
|
18
|
-
|
|
19
|
-
// get own names.
|
|
20
|
-
|
|
21
|
-
const get_declared_names = () => {
|
|
22
|
-
if (this.is_declaration === true) {
|
|
23
|
-
const cns = this.child_nodes;
|
|
24
|
-
const map_names = {}, arr_names = [];
|
|
25
|
-
const handle_name = (name) => {
|
|
26
|
-
if (!map_names[name]) {
|
|
27
|
-
map_names[name] = true;
|
|
28
|
-
arr_names.push(name);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
if (this.type === 'VariableDeclaration') {
|
|
33
|
-
|
|
34
|
-
each (cns, cn => {
|
|
35
|
-
//const tcn = ;
|
|
36
|
-
if (cn.type === 'VariableDeclarator') {
|
|
37
|
-
const gfc = cn.child_nodes[0];
|
|
38
|
-
console.log('gfc', gfc);
|
|
39
|
-
if (gfc.type === 'Identifier') {
|
|
40
|
-
console.log('gfc.name', gfc.name);
|
|
41
|
-
handle_name(gfc.name);
|
|
42
|
-
} else if (gfc.type === 'ArrayPattern') {
|
|
43
|
-
// each child, should be an identifier
|
|
44
|
-
each (gfc.child_nodes, ggc => {
|
|
45
|
-
if (ggc.type === 'Identifier') {
|
|
46
|
-
//console.log('ggc.name', ggc.name);
|
|
47
|
-
handle_name(ggc.name);
|
|
48
|
-
} else {
|
|
49
|
-
throw 'stop';
|
|
50
|
-
}
|
|
51
|
-
})
|
|
52
|
-
} else {
|
|
53
|
-
throw 'stop';
|
|
54
|
-
}
|
|
55
|
-
} else {
|
|
56
|
-
|
|
57
|
-
console.log('cn.type', cn.type);
|
|
58
|
-
console.log('this', this);
|
|
59
|
-
throw 'stop';
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
})
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
} else {
|
|
70
|
-
//console.log('this.type', this.type);
|
|
71
|
-
//console.log('this', this);
|
|
72
|
-
|
|
73
|
-
if (this.type === 'ClassDeclaration') {
|
|
74
|
-
const dec_id = this.child_nodes[0];
|
|
75
|
-
//console.log('dec_id', dec_id);
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (dec_id.type === 'Identifier') {
|
|
79
|
-
//console.log('dec_id.name', dec_id.name);
|
|
80
|
-
handle_name(dec_id.name);
|
|
81
|
-
} else {
|
|
82
|
-
throw 'stop';
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
} else {
|
|
86
|
-
throw 'stop';
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
//if (this.type === 'ClassDeclaration') {
|
|
91
|
-
// const gnc0 = this.child_nodes[0];
|
|
92
|
-
// console.log('gcn0', gcn0);
|
|
93
|
-
//} else {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
// }
|
|
100
|
-
//throw 'stop';
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
//console.log('arr_names', arr_names);
|
|
105
|
-
return arr_names;
|
|
106
|
-
} else {
|
|
107
|
-
throw 'stop';
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
this.get_declared_names = get_declared_names;
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/*
|
|
117
|
-
JS_AST_Node_Declaration.from_js_ast_node = (js_ast_node) => {
|
|
118
|
-
// Would be in a different context / no context when it gets made.
|
|
119
|
-
|
|
120
|
-
throw 'NYI';
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
*/
|
|
1
|
+
//const JS_AST_Node = require('../JS_AST/JS_AST_Node');
|
|
2
|
+
const {each} = require('lang-tools');
|
|
3
|
+
const JS_AST_Node_Extended_Core = require('./JS_AST_Node_Extended_0-Core');
|
|
4
|
+
|
|
5
|
+
class JS_AST_Node_Declaration extends JS_AST_Node_Extended_Core {
|
|
6
|
+
constructor(spec) {
|
|
7
|
+
super(spec);
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
// the type must be declaration.
|
|
11
|
+
|
|
12
|
+
if (!this.is_declaration) {
|
|
13
|
+
throw 'stop';
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Have tools for extracting specific information from declarations.
|
|
17
|
+
// Possibly for making a compressed version.
|
|
18
|
+
|
|
19
|
+
// get own names.
|
|
20
|
+
|
|
21
|
+
const get_declared_names = () => {
|
|
22
|
+
if (this.is_declaration === true) {
|
|
23
|
+
const cns = this.child_nodes;
|
|
24
|
+
const map_names = {}, arr_names = [];
|
|
25
|
+
const handle_name = (name) => {
|
|
26
|
+
if (!map_names[name]) {
|
|
27
|
+
map_names[name] = true;
|
|
28
|
+
arr_names.push(name);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (this.type === 'VariableDeclaration') {
|
|
33
|
+
|
|
34
|
+
each (cns, cn => {
|
|
35
|
+
//const tcn = ;
|
|
36
|
+
if (cn.type === 'VariableDeclarator') {
|
|
37
|
+
const gfc = cn.child_nodes[0];
|
|
38
|
+
console.log('gfc', gfc);
|
|
39
|
+
if (gfc.type === 'Identifier') {
|
|
40
|
+
console.log('gfc.name', gfc.name);
|
|
41
|
+
handle_name(gfc.name);
|
|
42
|
+
} else if (gfc.type === 'ArrayPattern') {
|
|
43
|
+
// each child, should be an identifier
|
|
44
|
+
each (gfc.child_nodes, ggc => {
|
|
45
|
+
if (ggc.type === 'Identifier') {
|
|
46
|
+
//console.log('ggc.name', ggc.name);
|
|
47
|
+
handle_name(ggc.name);
|
|
48
|
+
} else {
|
|
49
|
+
throw 'stop';
|
|
50
|
+
}
|
|
51
|
+
})
|
|
52
|
+
} else {
|
|
53
|
+
throw 'stop';
|
|
54
|
+
}
|
|
55
|
+
} else {
|
|
56
|
+
|
|
57
|
+
console.log('cn.type', cn.type);
|
|
58
|
+
console.log('this', this);
|
|
59
|
+
throw 'stop';
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
}
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
} else {
|
|
70
|
+
//console.log('this.type', this.type);
|
|
71
|
+
//console.log('this', this);
|
|
72
|
+
|
|
73
|
+
if (this.type === 'ClassDeclaration') {
|
|
74
|
+
const dec_id = this.child_nodes[0];
|
|
75
|
+
//console.log('dec_id', dec_id);
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
if (dec_id.type === 'Identifier') {
|
|
79
|
+
//console.log('dec_id.name', dec_id.name);
|
|
80
|
+
handle_name(dec_id.name);
|
|
81
|
+
} else {
|
|
82
|
+
throw 'stop';
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
} else {
|
|
86
|
+
throw 'stop';
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
//if (this.type === 'ClassDeclaration') {
|
|
91
|
+
// const gnc0 = this.child_nodes[0];
|
|
92
|
+
// console.log('gcn0', gcn0);
|
|
93
|
+
//} else {
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
// }
|
|
100
|
+
//throw 'stop';
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
//console.log('arr_names', arr_names);
|
|
105
|
+
return arr_names;
|
|
106
|
+
} else {
|
|
107
|
+
throw 'stop';
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
this.get_declared_names = get_declared_names;
|
|
112
|
+
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/*
|
|
117
|
+
JS_AST_Node_Declaration.from_js_ast_node = (js_ast_node) => {
|
|
118
|
+
// Would be in a different context / no context when it gets made.
|
|
119
|
+
|
|
120
|
+
throw 'NYI';
|
|
121
|
+
|
|
122
|
+
}
|
|
123
|
+
*/
|
|
124
124
|
module.exports = JS_AST_Node_Declaration;
|
|
@@ -1,88 +1,88 @@
|
|
|
1
|
-
const JS_AST_Node_Extended_Core = require('./JS_AST_Node_Extended_0-Core');
|
|
2
|
-
const JS_AST_Node_Declaration = require('./JS_AST_Node_Declaration');
|
|
3
|
-
|
|
4
|
-
class JS_AST_Node_Extended extends JS_AST_Node_Extended_Core {
|
|
5
|
-
constructor(spec = {}) {
|
|
6
|
-
super(spec);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
JS_AST_Node_Extended.from_babel_node = (spec) => {
|
|
11
|
-
|
|
12
|
-
const {babel_node} = spec;
|
|
13
|
-
const {type} = babel_node;
|
|
14
|
-
if (type === 'VariableDeclaration' || type === "ClassDeclaration") {
|
|
15
|
-
return new JS_AST_Node_Declaration(spec);
|
|
16
|
-
} else {
|
|
17
|
-
return new JS_AST_Node_Extended_Core(spec);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
//return new JS_AST_Node(spec);
|
|
21
|
-
}
|
|
22
|
-
JS_AST_Node_Extended.from_spec = spec => {
|
|
23
|
-
|
|
24
|
-
let {babel_node} = spec;
|
|
25
|
-
//console.log('spec', spec);
|
|
26
|
-
|
|
27
|
-
if (!babel_node) {
|
|
28
|
-
if (spec.source) {
|
|
29
|
-
// create it, but then upgrade its type if necessary.
|
|
30
|
-
// or first create the babel node.
|
|
31
|
-
// that seems to make more sense in terms of the order of parsing.
|
|
32
|
-
const parser = require('@babel/parser');
|
|
33
|
-
const babel_ast = parser.parse(spec.source, {
|
|
34
|
-
sourceType: 'module',
|
|
35
|
-
plugins: [
|
|
36
|
-
'asyncGenerators',
|
|
37
|
-
'bigInt',
|
|
38
|
-
'classPrivateMethods',
|
|
39
|
-
'classPrivateProperties',
|
|
40
|
-
'classProperties',
|
|
41
|
-
'doExpressions',
|
|
42
|
-
//'exportDefaultFrom',
|
|
43
|
-
'nullishCoalescingOperator',
|
|
44
|
-
'numericSeparator',
|
|
45
|
-
'objectRestSpread',
|
|
46
|
-
'optionalCatchBinding',
|
|
47
|
-
'optionalChaining',
|
|
48
|
-
]});
|
|
49
|
-
|
|
50
|
-
//console.log('babel_ast', babel_ast);
|
|
51
|
-
|
|
52
|
-
babel_node_file = babel_ast;
|
|
53
|
-
babel_node_program = babel_ast.program;
|
|
54
|
-
|
|
55
|
-
//console.log('babel_node_program', babel_node_program);
|
|
56
|
-
|
|
57
|
-
const {body} = babel_node_program;
|
|
58
|
-
|
|
59
|
-
if (body.length === 1) {
|
|
60
|
-
const node0 = body[0];
|
|
61
|
-
|
|
62
|
-
babel_node = node0;
|
|
63
|
-
} else {
|
|
64
|
-
throw 'NYI';
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
if (babel_node) {
|
|
73
|
-
const {type} = babel_node;
|
|
74
|
-
|
|
75
|
-
if (type === 'VariableDeclaration' || type === "ClassDeclaration") {
|
|
76
|
-
return new JS_AST_Node_Declaration(spec);
|
|
77
|
-
} else {
|
|
78
|
-
return new JS_AST_Node_Extended_Core(spec);
|
|
79
|
-
}
|
|
80
|
-
} else {
|
|
81
|
-
throw 'stop';
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
//return new JS_AST_Node(spec);
|
|
87
|
-
}
|
|
1
|
+
const JS_AST_Node_Extended_Core = require('./JS_AST_Node_Extended_0-Core');
|
|
2
|
+
const JS_AST_Node_Declaration = require('./JS_AST_Node_Declaration');
|
|
3
|
+
|
|
4
|
+
class JS_AST_Node_Extended extends JS_AST_Node_Extended_Core {
|
|
5
|
+
constructor(spec = {}) {
|
|
6
|
+
super(spec);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
JS_AST_Node_Extended.from_babel_node = (spec) => {
|
|
11
|
+
|
|
12
|
+
const {babel_node} = spec;
|
|
13
|
+
const {type} = babel_node;
|
|
14
|
+
if (type === 'VariableDeclaration' || type === "ClassDeclaration") {
|
|
15
|
+
return new JS_AST_Node_Declaration(spec);
|
|
16
|
+
} else {
|
|
17
|
+
return new JS_AST_Node_Extended_Core(spec);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//return new JS_AST_Node(spec);
|
|
21
|
+
}
|
|
22
|
+
JS_AST_Node_Extended.from_spec = spec => {
|
|
23
|
+
|
|
24
|
+
let {babel_node} = spec;
|
|
25
|
+
//console.log('spec', spec);
|
|
26
|
+
|
|
27
|
+
if (!babel_node) {
|
|
28
|
+
if (spec.source) {
|
|
29
|
+
// create it, but then upgrade its type if necessary.
|
|
30
|
+
// or first create the babel node.
|
|
31
|
+
// that seems to make more sense in terms of the order of parsing.
|
|
32
|
+
const parser = require('@babel/parser');
|
|
33
|
+
const babel_ast = parser.parse(spec.source, {
|
|
34
|
+
sourceType: 'module',
|
|
35
|
+
plugins: [
|
|
36
|
+
'asyncGenerators',
|
|
37
|
+
'bigInt',
|
|
38
|
+
'classPrivateMethods',
|
|
39
|
+
'classPrivateProperties',
|
|
40
|
+
'classProperties',
|
|
41
|
+
'doExpressions',
|
|
42
|
+
//'exportDefaultFrom',
|
|
43
|
+
'nullishCoalescingOperator',
|
|
44
|
+
'numericSeparator',
|
|
45
|
+
'objectRestSpread',
|
|
46
|
+
'optionalCatchBinding',
|
|
47
|
+
'optionalChaining',
|
|
48
|
+
]});
|
|
49
|
+
|
|
50
|
+
//console.log('babel_ast', babel_ast);
|
|
51
|
+
|
|
52
|
+
babel_node_file = babel_ast;
|
|
53
|
+
babel_node_program = babel_ast.program;
|
|
54
|
+
|
|
55
|
+
//console.log('babel_node_program', babel_node_program);
|
|
56
|
+
|
|
57
|
+
const {body} = babel_node_program;
|
|
58
|
+
|
|
59
|
+
if (body.length === 1) {
|
|
60
|
+
const node0 = body[0];
|
|
61
|
+
|
|
62
|
+
babel_node = node0;
|
|
63
|
+
} else {
|
|
64
|
+
throw 'NYI';
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
if (babel_node) {
|
|
73
|
+
const {type} = babel_node;
|
|
74
|
+
|
|
75
|
+
if (type === 'VariableDeclaration' || type === "ClassDeclaration") {
|
|
76
|
+
return new JS_AST_Node_Declaration(spec);
|
|
77
|
+
} else {
|
|
78
|
+
return new JS_AST_Node_Extended_Core(spec);
|
|
79
|
+
}
|
|
80
|
+
} else {
|
|
81
|
+
throw 'stop';
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
//return new JS_AST_Node(spec);
|
|
87
|
+
}
|
|
88
88
|
module.exports = JS_AST_Node_Extended;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
const JS_AST_Node = require('../JS_AST/JS_AST_Node');
|
|
2
|
-
//const JS_AST_Node_Declaration = require('./JS_AST_Node_Declaration');
|
|
3
|
-
|
|
4
|
-
class JS_AST_Node_Extended extends JS_AST_Node {
|
|
5
|
-
constructor(spec = {}) {
|
|
6
|
-
super(spec);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
const JS_AST_Node = require('../JS_AST/JS_AST_Node');
|
|
2
|
+
//const JS_AST_Node_Declaration = require('./JS_AST_Node_Declaration');
|
|
3
|
+
|
|
4
|
+
class JS_AST_Node_Extended extends JS_AST_Node {
|
|
5
|
+
constructor(spec = {}) {
|
|
6
|
+
super(spec);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
|
|
11
11
|
module.exports = JS_AST_Node_Extended;
|