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,23 +1,23 @@
|
|
|
1
|
-
const Bundler = require('./bundler');
|
|
2
|
-
const Bundle = require('./bundle');
|
|
3
|
-
const {obs} = require('fnl');
|
|
4
|
-
const {tof} = require('jsgui3-html');
|
|
5
|
-
|
|
6
|
-
// Get everything ready to serve.
|
|
7
|
-
|
|
8
|
-
// Would need a JS file that contains refs to all of the components used.
|
|
9
|
-
// Examine what is in the website and what JS it needs.
|
|
10
|
-
|
|
11
|
-
// Bundling up the contents of a small/medium website so that contents are compressed and ready to serve.
|
|
12
|
-
// Could be useful for deploying to Android / iOS devices, maybe as apps.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
class Website_Bundler extends Bundler {
|
|
17
|
-
constructor(spec = {}) {
|
|
18
|
-
super(spec);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
const Bundler = require('./bundler');
|
|
2
|
+
const Bundle = require('./bundle');
|
|
3
|
+
const {obs} = require('fnl');
|
|
4
|
+
const {tof} = require('jsgui3-html');
|
|
5
|
+
|
|
6
|
+
// Get everything ready to serve.
|
|
7
|
+
|
|
8
|
+
// Would need a JS file that contains refs to all of the components used.
|
|
9
|
+
// Examine what is in the website and what JS it needs.
|
|
10
|
+
|
|
11
|
+
// Bundling up the contents of a small/medium website so that contents are compressed and ready to serve.
|
|
12
|
+
// Could be useful for deploying to Android / iOS devices, maybe as apps.
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class Website_Bundler extends Bundler {
|
|
17
|
+
constructor(spec = {}) {
|
|
18
|
+
super(spec);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
|
|
23
23
|
module.exports = Website_Bundler;
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
const {Evented_Class} = require('lang-tools');
|
|
3
|
-
|
|
4
|
-
class Extractor extends Evented_Class {
|
|
5
|
-
constructor(spec
|
|
6
|
-
super();
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
1
|
+
|
|
2
|
+
const {Evented_Class} = require('lang-tools');
|
|
3
|
+
|
|
4
|
+
class Extractor extends Evented_Class {
|
|
5
|
+
constructor(spec) {
|
|
6
|
+
super();
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
12
10
|
module.exports = Extractor;
|
|
@@ -1,255 +1,240 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
// Extract the CSS and JS from JS, using AST_Node.
|
|
4
|
-
// AST_Node is part of jsgui3-server, possibly too slow though.
|
|
5
|
-
|
|
6
|
-
const {obs, prom_or_cb} = require('fnl');
|
|
7
|
-
const {tof, each} = require('jsgui3-html');
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const JS_AST_Node = require('../../../../../jsbuilder/JS_AST/JS_AST_Node');
|
|
11
|
-
const Extractor = require('../../../Extractor');
|
|
12
|
-
|
|
13
|
-
const Pos_Span_String_Extractor = require('../../../string/Pos_Span_String_Extractor');
|
|
14
|
-
|
|
15
|
-
// Seems like a really specific and JS-AST aware algorithm.
|
|
16
|
-
// The JS AST parsing (single thread JS, maybe inefficient class structure) is relatively slow, but much faster than Babel compilation
|
|
17
|
-
// was / is.
|
|
18
|
-
|
|
19
|
-
// const String_Pos_Spans_Remover = ....
|
|
20
|
-
|
|
21
|
-
// Really specifically named and categorised classes will be a main feature of this part of the (Server) architecture.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
// But also being able to recreate the AST without the CSS will help.
|
|
29
|
-
|
|
30
|
-
// This extraction extracts parts from the JS file that directly are CSS.
|
|
31
|
-
// I don't think at the moment it does anything further than that - though want it to remove all the declarations of CSS
|
|
32
|
-
// from the JS and return that JS.
|
|
33
|
-
|
|
34
|
-
// See about removing the nodes from the tree....
|
|
35
|
-
|
|
36
|
-
class CSS_And_JS_From_JS_String_Using_AST_Node_Extractor extends Extractor {
|
|
37
|
-
constructor(spec) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
//
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
//
|
|
82
|
-
|
|
83
|
-
//console.log('node', node);
|
|
84
|
-
//console.log('
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
//
|
|
92
|
-
|
|
93
|
-
//console.log('node.
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
//console.log('
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
//console.log('
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
//
|
|
183
|
-
//
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
//
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
});
|
|
242
|
-
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
// Then extract by giving it a JS string?
|
|
246
|
-
// A file path???
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
}
|
|
254
|
-
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
// Extract the CSS and JS from JS, using AST_Node.
|
|
4
|
+
// AST_Node is part of jsgui3-server, possibly too slow though.
|
|
5
|
+
|
|
6
|
+
const {obs, prom_or_cb} = require('fnl');
|
|
7
|
+
const {tof, each} = require('jsgui3-html');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
const JS_AST_Node = require('../../../../../jsbuilder/JS_AST/JS_AST_Node');
|
|
11
|
+
const Extractor = require('../../../Extractor');
|
|
12
|
+
|
|
13
|
+
const Pos_Span_String_Extractor = require('../../../string/Pos_Span_String_Extractor');
|
|
14
|
+
|
|
15
|
+
// Seems like a really specific and JS-AST aware algorithm.
|
|
16
|
+
// The JS AST parsing (single thread JS, maybe inefficient class structure) is relatively slow, but much faster than Babel compilation
|
|
17
|
+
// was / is.
|
|
18
|
+
|
|
19
|
+
// const String_Pos_Spans_Remover = ....
|
|
20
|
+
|
|
21
|
+
// Really specifically named and categorised classes will be a main feature of this part of the (Server) architecture.
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
// But also being able to recreate the AST without the CSS will help.
|
|
29
|
+
|
|
30
|
+
// This extraction extracts parts from the JS file that directly are CSS.
|
|
31
|
+
// I don't think at the moment it does anything further than that - though want it to remove all the declarations of CSS
|
|
32
|
+
// from the JS and return that JS.
|
|
33
|
+
|
|
34
|
+
// See about removing the nodes from the tree....
|
|
35
|
+
|
|
36
|
+
class CSS_And_JS_From_JS_String_Using_AST_Node_Extractor extends Extractor {
|
|
37
|
+
constructor(spec) {
|
|
38
|
+
super(spec);
|
|
39
|
+
|
|
40
|
+
this.pos_span_string_extractor = new Pos_Span_String_Extractor();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
extract(str_js) {
|
|
44
|
+
const {pos_span_string_extractor} = this;
|
|
45
|
+
|
|
46
|
+
const js_str = str_js;
|
|
47
|
+
return obs((next, complete, error) => {
|
|
48
|
+
const spec = {
|
|
49
|
+
source: js_str
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
// This part is kind-of slow.
|
|
53
|
+
|
|
54
|
+
//console.log('pre create js ast node');
|
|
55
|
+
console.log('Separating CSS and JS');
|
|
56
|
+
const js_ast_node = JS_AST_Node.from_spec(spec);
|
|
57
|
+
//console.log('post create js ast node');
|
|
58
|
+
|
|
59
|
+
//const ae_nodes = [];
|
|
60
|
+
|
|
61
|
+
const arr_pos_spans_css_js_nodes = []; // will remove them from the JS that's built / published.
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
// Just assigning a template literal to .css?
|
|
67
|
+
const css_ae_nodes = [];
|
|
68
|
+
|
|
69
|
+
// How about removing those parts from the JS AST?
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
js_ast_node.deep_iterate(node => {
|
|
74
|
+
|
|
75
|
+
const {start, end} = node.babel;
|
|
76
|
+
|
|
77
|
+
// Maybe this part is slow? Don't think so though.
|
|
78
|
+
|
|
79
|
+
//console.log('node', node);
|
|
80
|
+
//console.log('Object.keys(node)', Object.keys(node));
|
|
81
|
+
//console.log('node.type_signature', node.type_signature);
|
|
82
|
+
//console.log('node.signature', node.signature);
|
|
83
|
+
//console.log('node.type', node.type);
|
|
84
|
+
//console.log('node.abbreviated_type', node.abbreviated_type);
|
|
85
|
+
|
|
86
|
+
if (node.type === 'AssignmentExpression') {
|
|
87
|
+
//return true;
|
|
88
|
+
//ae_nodes.push(node);
|
|
89
|
+
//console.log('node.source', node.source);
|
|
90
|
+
|
|
91
|
+
//console.log('Object.keys(node.babel)', Object.keys(node.babel));
|
|
92
|
+
|
|
93
|
+
//console.log('node.child_nodes.length', node.child_nodes.length);
|
|
94
|
+
|
|
95
|
+
const [node_assigned_to, node_assigned] = node.child_nodes;
|
|
96
|
+
//console.log('node_assigned_to.source', node_assigned_to.source);
|
|
97
|
+
//console.log('node_assigned_to.type', node_assigned_to.type);
|
|
98
|
+
//console.log('node_assigned.type', node_assigned.type);
|
|
99
|
+
|
|
100
|
+
if (node_assigned.type === 'TemplateLiteral') {
|
|
101
|
+
|
|
102
|
+
if (node_assigned_to.type === 'MemberExpression') {
|
|
103
|
+
|
|
104
|
+
//console.log('node_assigned_to', node_assigned_to);
|
|
105
|
+
|
|
106
|
+
// the last ID being .css?
|
|
107
|
+
const last_me_child = node_assigned_to.child_nodes[node_assigned_to.child_nodes.length - 1];
|
|
108
|
+
//console.log('last_me_child', last_me_child);
|
|
109
|
+
//console.log('last_me_child.source', last_me_child.source);
|
|
110
|
+
|
|
111
|
+
if (last_me_child.source === 'css') {
|
|
112
|
+
css_ae_nodes.push(node);
|
|
113
|
+
|
|
114
|
+
//console.log('[start, end]', [start, end]);
|
|
115
|
+
//console.log('node.source:\n' + node.source + '\n');
|
|
116
|
+
|
|
117
|
+
arr_pos_spans_css_js_nodes.push([start, end]);
|
|
118
|
+
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// does it end '.css'?
|
|
122
|
+
// break it down further?
|
|
123
|
+
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
///console.log('node.source', node.source);
|
|
127
|
+
//throw 'stop';
|
|
128
|
+
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
//console.log('');
|
|
132
|
+
// look at the left part...
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
//throw 'stop';
|
|
136
|
+
});
|
|
137
|
+
//console.log('ae_nodes', ae_nodes);
|
|
138
|
+
//console.log('ae_nodes.length', ae_nodes.length);
|
|
139
|
+
//console.log('css_ae_nodes.length', css_ae_nodes.length);
|
|
140
|
+
|
|
141
|
+
const arr_css = [];
|
|
142
|
+
|
|
143
|
+
if (css_ae_nodes.length > 0) {
|
|
144
|
+
//console.log('css_ae_nodes', css_ae_nodes);
|
|
145
|
+
|
|
146
|
+
each(css_ae_nodes, css_ae_node => {
|
|
147
|
+
//console.log('css_ae_node.source', css_ae_node.source);
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
const tl = css_ae_node.child_nodes[1].child_nodes[0];
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
//console.log('tl', tl);
|
|
154
|
+
//console.log('tl.source', tl.source);
|
|
155
|
+
arr_css.push(tl.source);
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
})
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (arr_css.length > 0) {
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
// Needs to also return the JS, without the CSS.
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
const str_css = arr_css.join('\n');
|
|
170
|
+
|
|
171
|
+
//console.log('arr_pos_spans_css_js_nodes', arr_pos_spans_css_js_nodes);
|
|
172
|
+
|
|
173
|
+
// Then see about removing the inverse of them from the original string.
|
|
174
|
+
|
|
175
|
+
const str_js_without_css_assignments = pos_span_string_extractor.extract(js_str, arr_pos_spans_css_js_nodes, {invert: true});
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
//console.log('str_js_without_css_assignments', str_js_without_css_assignments);
|
|
179
|
+
//console.log('str_js_without_css_assignments.length', str_js_without_css_assignments.length);
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
// return an array perhaps?
|
|
183
|
+
// object with keys may be easier / better / simpler.
|
|
184
|
+
// or even a Bundle object?
|
|
185
|
+
|
|
186
|
+
const res = {
|
|
187
|
+
css: str_css,
|
|
188
|
+
js: str_js_without_css_assignments
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
//console.trace();
|
|
195
|
+
//throw 'stop';
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
complete(res);
|
|
201
|
+
} else {
|
|
202
|
+
complete();
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
// Can then do query to get all .css properties that are string templates.
|
|
207
|
+
// is it a property of a Class object?
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
// Need to get an AST from it....
|
|
214
|
+
// Or could simply search (regex?) for .css = `...`?
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
// Go through each file? Just the first?
|
|
220
|
+
|
|
221
|
+
// Or should the whole bundled (browserified) JS be consulted?
|
|
222
|
+
|
|
223
|
+
const [stop, pause, resume] = [() => {}, () => {}, () => {}];
|
|
224
|
+
return [stop, pause, resume];
|
|
225
|
+
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
// Then extract by giving it a JS string?
|
|
231
|
+
// A file path???
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
}
|
|
239
|
+
|
|
255
240
|
module.exports = CSS_And_JS_From_JS_String_Using_AST_Node_Extractor;
|
package/resources/processors/extractors/js/css_and_js/CSS_And_JS_From_JS_String_Extractor.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const CSS_And_JS_From_JS_String_Using_AST_Node_Extractor = require('./AST_Node/CSS_And_JS_From_JS_String_Using_AST_Node_Extractor');
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const CSS_And_JS_From_JS_String_Using_AST_Node_Extractor = require('./AST_Node/CSS_And_JS_From_JS_String_Using_AST_Node_Extractor');
|
|
2
|
+
|
|
3
|
+
|
|
4
4
|
module.exports = CSS_And_JS_From_JS_String_Using_AST_Node_Extractor;
|