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,231 +1,231 @@
|
|
|
1
|
-
var path = require('path'), fs = require('fs'),
|
|
2
|
-
url = require('url'), jsgui = require('jsgui3-html'), os = require('os'), http = require('http'), libUrl = require('url'),
|
|
3
|
-
Resource = jsgui.Resource,
|
|
4
|
-
Cookies = require('cookies'), fs2 = require('../fs2');
|
|
5
|
-
|
|
6
|
-
var stringify = jsgui.stringify, each = jsgui.each, arrayify = jsgui.arrayify, tof = jsgui.tof;
|
|
7
|
-
var filter_map_by_regex = jsgui.filter_map_by_regex;
|
|
8
|
-
var Class = jsgui.Class, Data_Object = jsgui.Data_Object, Enhanced_Data_Object = jsgui.Enhanced_Data_Object;
|
|
9
|
-
var fp = jsgui.fp, is_defined = jsgui.is_defined;
|
|
10
|
-
var Collection = jsgui.Collection;
|
|
11
|
-
|
|
12
|
-
// Extends AutoStart_Resource?
|
|
13
|
-
// May need to change around a fair few references to make it workable.
|
|
14
|
-
// May need some more complicated logic to change it to the path for service.
|
|
15
|
-
|
|
16
|
-
// Maybe this will be / need a Compiler.
|
|
17
|
-
|
|
18
|
-
// website-html-resource....
|
|
19
|
-
// may be useful to have / use a Resource for the HTML servinh=g / compilation.
|
|
20
|
-
|
|
21
|
-
// Consider the server as an HTML compiler? Or a more complex compiler?
|
|
22
|
-
|
|
23
|
-
// Seems more like loading server-side compilers is the way.
|
|
24
|
-
// Load them into jsgui.
|
|
25
|
-
|
|
26
|
-
// lang.load_compiler
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
var serve_fn_html_template_from_disk = function(filePath, fn_template, obj_data, response) {
|
|
35
|
-
|
|
36
|
-
// serve templated file as html...
|
|
37
|
-
|
|
38
|
-
fs2.load_file_as_string(filePath, function (err, data) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (err) {
|
|
42
|
-
throw err;
|
|
43
|
-
} else {
|
|
44
|
-
const templated = fn_template(data, obj_data);
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
//var servableJs = updateReferencesForServing(data);
|
|
50
|
-
response.writeHead(200, {'Content-Type': 'text/html'});
|
|
51
|
-
response.end(templated);
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
// File_Server_Resource?
|
|
58
|
-
// So the resource has code to route to the file and then serve it.
|
|
59
|
-
|
|
60
|
-
// Also a Templated_HTML resource?
|
|
61
|
-
// Connects to HTML_Template
|
|
62
|
-
// Connects to Data_Resource
|
|
63
|
-
// Populates the HTML_Template data from the Data_Resource
|
|
64
|
-
|
|
65
|
-
// HTML_Template being a Data_Transformation / Data_Transformation_Resource / Transformation_Resource
|
|
66
|
-
// Codecs could be another type of Transformation_Resource
|
|
67
|
-
|
|
68
|
-
// Transformation Resource could / should appear in jsgui3-client. Makes sense on the client too.
|
|
69
|
-
|
|
70
|
-
// Separate loading of transformation resource, data resource, and template (resource)
|
|
71
|
-
// The transformation resource can itself load / be provided with the data resource and template resource.
|
|
72
|
-
|
|
73
|
-
// jsx processing may be the best way (by far)?
|
|
74
|
-
|
|
75
|
-
// or jsui templates?
|
|
76
|
-
// jsx may seem / be easiest at this stage for long term expansion and integration.
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
class Site_Template_HTML extends Resource {
|
|
81
|
-
|
|
82
|
-
constructor(spec) {
|
|
83
|
-
super(spec);
|
|
84
|
-
|
|
85
|
-
this.meta.set('custom_paths', new Data_Object({}));
|
|
86
|
-
// Those are custom file paths.
|
|
87
|
-
|
|
88
|
-
// could have a collection of directories, indexed by name, that get served.
|
|
89
|
-
|
|
90
|
-
// Index the collection by string value?
|
|
91
|
-
this.meta.set('served_directories', new Collection({'index_by': 'name'}));
|
|
92
|
-
}
|
|
93
|
-
'start'(callback) {
|
|
94
|
-
callback(null, true);
|
|
95
|
-
}
|
|
96
|
-
'set_custom_path'(url, file_path) {
|
|
97
|
-
// But change the URL to have a smiley face instead of fullstops
|
|
98
|
-
//console.log('url', url);
|
|
99
|
-
var escaped_url = url.replace(/\./g, '☺');
|
|
100
|
-
//console.log('escaped_url', escaped_url);
|
|
101
|
-
|
|
102
|
-
//this.meta.set('custom_paths.' + escaped_url, file_path);
|
|
103
|
-
var custom_paths = this.meta.get('custom_paths');
|
|
104
|
-
//console.log('custom_paths', custom_paths);
|
|
105
|
-
custom_paths.set(escaped_url, file_path);
|
|
106
|
-
|
|
107
|
-
}
|
|
108
|
-
'serve_directory'(path) {
|
|
109
|
-
// Serves that directory, as any files given in that directory can be served from /js
|
|
110
|
-
var served_directories = this.meta.get('served_directories');
|
|
111
|
-
//console.log('served_directories ' + stringify(served_directories));
|
|
112
|
-
//served_directories.push(path);
|
|
113
|
-
served_directories.push({
|
|
114
|
-
'name': path
|
|
115
|
-
});
|
|
116
|
-
//console.log('served_directories ' + stringify(served_directories));
|
|
117
|
-
//console.log('path ' + path);
|
|
118
|
-
|
|
119
|
-
//throw 'stop';
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
'process'(req, res) {
|
|
123
|
-
//console.log('Site_Static_HTML processing');
|
|
124
|
-
var remoteAddress = req.connection.remoteAddress;
|
|
125
|
-
var custom_paths = this.custom_paths;
|
|
126
|
-
var rurl = req.url;
|
|
127
|
-
var pool = this.pool;
|
|
128
|
-
// should have a bunch of resources from the pool.
|
|
129
|
-
//var pool_resources = pool.resources();
|
|
130
|
-
//console.log('pool_resources ' + stringify(pool_resources));
|
|
131
|
-
|
|
132
|
-
var url_parts = url.parse(req.url, true);
|
|
133
|
-
//console.log('url_parts ' + stringify(url_parts));
|
|
134
|
-
var splitPath = url_parts.path.substr(1).split('/');
|
|
135
|
-
//console.log('resource site css splitPath ' + stringify(splitPath));
|
|
136
|
-
|
|
137
|
-
if (rurl.substr(0, 1) == '/') rurl = rurl.substr(1);
|
|
138
|
-
rurl = rurl.replace(/\./g, '☺');
|
|
139
|
-
//console.log('rurl ' + rurl);
|
|
140
|
-
|
|
141
|
-
if (rurl == '') rurl = '/';
|
|
142
|
-
var custom_response_entry = custom_paths.get(rurl);
|
|
143
|
-
//console.log('Static HTML Resource process url', req.url);
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
//console.log('custom_response_entry ' + stringify(custom_response_entry));
|
|
147
|
-
|
|
148
|
-
if (custom_response_entry) {
|
|
149
|
-
var tcr = tof(custom_response_entry);
|
|
150
|
-
//console.log('tcr ' + tcr);
|
|
151
|
-
if (tcr == 'data_value') {
|
|
152
|
-
var val = custom_response_entry.value();
|
|
153
|
-
//console.log('val ' + val);
|
|
154
|
-
var tval = tof(val);
|
|
155
|
-
if (tval === 'string') {
|
|
156
|
-
// then it should be a local file path, serve it.
|
|
157
|
-
// need to specify a template resource / algorithm.
|
|
158
|
-
|
|
159
|
-
serve_html_file_from_disk(val, res);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
//throw 'stop';
|
|
163
|
-
} else {
|
|
164
|
-
//console.log('splitPath', splitPath);
|
|
165
|
-
//console.log('splitPath.length', splitPath.length);
|
|
166
|
-
|
|
167
|
-
if (splitPath.length > 0) {
|
|
168
|
-
|
|
169
|
-
// Can check for /js folder.
|
|
170
|
-
// There will be some fixed resources for the site.
|
|
171
|
-
// They will be served by Resource objects.
|
|
172
|
-
// There may be some overlap of resources, with there being some very fixed purpose
|
|
173
|
-
// specific resources that could duplicate some features of the more general ones.
|
|
174
|
-
// Eventually, some of the code from the more specific resources will be
|
|
175
|
-
// replacable with code from the more general ones.
|
|
176
|
-
|
|
177
|
-
// Site_JavaScript resource
|
|
178
|
-
// Will serve JavaScript files needed for the site.
|
|
179
|
-
// Could become more advanced at some points, serving particular builds.
|
|
180
|
-
|
|
181
|
-
if (splitPath.length == 1) {
|
|
182
|
-
if (splitPath[0] == '') {
|
|
183
|
-
// Serve the default page.
|
|
184
|
-
// serve index.html
|
|
185
|
-
//serve_html_file_from_disk('./index.html', res);
|
|
186
|
-
serve_html_file_from_disk('index.html', res);
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
}
|
|
192
|
-
} else {
|
|
193
|
-
if (splitPath[0] == 'html') {
|
|
194
|
-
//var sjs = pool.get_resource('Site JavaScript');
|
|
195
|
-
//console.log('sjs ' + sjs);
|
|
196
|
-
|
|
197
|
-
//throw 'stop';
|
|
198
|
-
|
|
199
|
-
// determine the name of the file to serve, serve that file
|
|
200
|
-
// Could use some more general kind of file server.
|
|
201
|
-
|
|
202
|
-
if (splitPath.length > 1) {
|
|
203
|
-
if (splitPath.length == 2) {
|
|
204
|
-
var fileName = splitPath[1];
|
|
205
|
-
//console.log('url_parts.path ' + url_parts.path);
|
|
206
|
-
var filePath = url_parts.path.substr(1);
|
|
207
|
-
//console.log('module.uri ' + module.uri);
|
|
208
|
-
|
|
209
|
-
// No, need the current module's relative path....
|
|
210
|
-
|
|
211
|
-
//var val2 = path.dirname(module.uri);
|
|
212
|
-
//console.log('val2 ' + val2);
|
|
213
|
-
//throw '9) stop';
|
|
214
|
-
|
|
215
|
-
//var diskPath = val2 + '/../css/' + fileName;
|
|
216
|
-
var diskPath = '../../ws/css/' + fileName;
|
|
217
|
-
|
|
218
|
-
serve_html_file_from_disk(diskPath, res);
|
|
219
|
-
} else {
|
|
220
|
-
if (splitPath.length == 3) {
|
|
221
|
-
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
module.exports = Site_Template_HTML;
|
|
1
|
+
var path = require('path'), fs = require('fs'),
|
|
2
|
+
url = require('url'), jsgui = require('jsgui3-html'), os = require('os'), http = require('http'), libUrl = require('url'),
|
|
3
|
+
Resource = jsgui.Resource,
|
|
4
|
+
Cookies = require('cookies'), fs2 = require('../fs2');
|
|
5
|
+
|
|
6
|
+
var stringify = jsgui.stringify, each = jsgui.each, arrayify = jsgui.arrayify, tof = jsgui.tof;
|
|
7
|
+
var filter_map_by_regex = jsgui.filter_map_by_regex;
|
|
8
|
+
var Class = jsgui.Class, Data_Object = jsgui.Data_Object, Enhanced_Data_Object = jsgui.Enhanced_Data_Object;
|
|
9
|
+
var fp = jsgui.fp, is_defined = jsgui.is_defined;
|
|
10
|
+
var Collection = jsgui.Collection;
|
|
11
|
+
|
|
12
|
+
// Extends AutoStart_Resource?
|
|
13
|
+
// May need to change around a fair few references to make it workable.
|
|
14
|
+
// May need some more complicated logic to change it to the path for service.
|
|
15
|
+
|
|
16
|
+
// Maybe this will be / need a Compiler.
|
|
17
|
+
|
|
18
|
+
// website-html-resource....
|
|
19
|
+
// may be useful to have / use a Resource for the HTML servinh=g / compilation.
|
|
20
|
+
|
|
21
|
+
// Consider the server as an HTML compiler? Or a more complex compiler?
|
|
22
|
+
|
|
23
|
+
// Seems more like loading server-side compilers is the way.
|
|
24
|
+
// Load them into jsgui.
|
|
25
|
+
|
|
26
|
+
// lang.load_compiler
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
var serve_fn_html_template_from_disk = function(filePath, fn_template, obj_data, response) {
|
|
35
|
+
|
|
36
|
+
// serve templated file as html...
|
|
37
|
+
|
|
38
|
+
fs2.load_file_as_string(filePath, function (err, data) {
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
if (err) {
|
|
42
|
+
throw err;
|
|
43
|
+
} else {
|
|
44
|
+
const templated = fn_template(data, obj_data);
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
//var servableJs = updateReferencesForServing(data);
|
|
50
|
+
response.writeHead(200, {'Content-Type': 'text/html'});
|
|
51
|
+
response.end(templated);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
// File_Server_Resource?
|
|
58
|
+
// So the resource has code to route to the file and then serve it.
|
|
59
|
+
|
|
60
|
+
// Also a Templated_HTML resource?
|
|
61
|
+
// Connects to HTML_Template
|
|
62
|
+
// Connects to Data_Resource
|
|
63
|
+
// Populates the HTML_Template data from the Data_Resource
|
|
64
|
+
|
|
65
|
+
// HTML_Template being a Data_Transformation / Data_Transformation_Resource / Transformation_Resource
|
|
66
|
+
// Codecs could be another type of Transformation_Resource
|
|
67
|
+
|
|
68
|
+
// Transformation Resource could / should appear in jsgui3-client. Makes sense on the client too.
|
|
69
|
+
|
|
70
|
+
// Separate loading of transformation resource, data resource, and template (resource)
|
|
71
|
+
// The transformation resource can itself load / be provided with the data resource and template resource.
|
|
72
|
+
|
|
73
|
+
// jsx processing may be the best way (by far)?
|
|
74
|
+
|
|
75
|
+
// or jsui templates?
|
|
76
|
+
// jsx may seem / be easiest at this stage for long term expansion and integration.
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
class Site_Template_HTML extends Resource {
|
|
81
|
+
|
|
82
|
+
constructor(spec) {
|
|
83
|
+
super(spec);
|
|
84
|
+
|
|
85
|
+
this.meta.set('custom_paths', new Data_Object({}));
|
|
86
|
+
// Those are custom file paths.
|
|
87
|
+
|
|
88
|
+
// could have a collection of directories, indexed by name, that get served.
|
|
89
|
+
|
|
90
|
+
// Index the collection by string value?
|
|
91
|
+
this.meta.set('served_directories', new Collection({'index_by': 'name'}));
|
|
92
|
+
}
|
|
93
|
+
'start'(callback) {
|
|
94
|
+
callback(null, true);
|
|
95
|
+
}
|
|
96
|
+
'set_custom_path'(url, file_path) {
|
|
97
|
+
// But change the URL to have a smiley face instead of fullstops
|
|
98
|
+
//console.log('url', url);
|
|
99
|
+
var escaped_url = url.replace(/\./g, '☺');
|
|
100
|
+
//console.log('escaped_url', escaped_url);
|
|
101
|
+
|
|
102
|
+
//this.meta.set('custom_paths.' + escaped_url, file_path);
|
|
103
|
+
var custom_paths = this.meta.get('custom_paths');
|
|
104
|
+
//console.log('custom_paths', custom_paths);
|
|
105
|
+
custom_paths.set(escaped_url, file_path);
|
|
106
|
+
|
|
107
|
+
}
|
|
108
|
+
'serve_directory'(path) {
|
|
109
|
+
// Serves that directory, as any files given in that directory can be served from /js
|
|
110
|
+
var served_directories = this.meta.get('served_directories');
|
|
111
|
+
//console.log('served_directories ' + stringify(served_directories));
|
|
112
|
+
//served_directories.push(path);
|
|
113
|
+
served_directories.push({
|
|
114
|
+
'name': path
|
|
115
|
+
});
|
|
116
|
+
//console.log('served_directories ' + stringify(served_directories));
|
|
117
|
+
//console.log('path ' + path);
|
|
118
|
+
|
|
119
|
+
//throw 'stop';
|
|
120
|
+
|
|
121
|
+
}
|
|
122
|
+
'process'(req, res) {
|
|
123
|
+
//console.log('Site_Static_HTML processing');
|
|
124
|
+
var remoteAddress = req.connection.remoteAddress;
|
|
125
|
+
var custom_paths = this.custom_paths;
|
|
126
|
+
var rurl = req.url;
|
|
127
|
+
var pool = this.pool;
|
|
128
|
+
// should have a bunch of resources from the pool.
|
|
129
|
+
//var pool_resources = pool.resources();
|
|
130
|
+
//console.log('pool_resources ' + stringify(pool_resources));
|
|
131
|
+
|
|
132
|
+
var url_parts = url.parse(req.url, true);
|
|
133
|
+
//console.log('url_parts ' + stringify(url_parts));
|
|
134
|
+
var splitPath = url_parts.path.substr(1).split('/');
|
|
135
|
+
//console.log('resource site css splitPath ' + stringify(splitPath));
|
|
136
|
+
|
|
137
|
+
if (rurl.substr(0, 1) == '/') rurl = rurl.substr(1);
|
|
138
|
+
rurl = rurl.replace(/\./g, '☺');
|
|
139
|
+
//console.log('rurl ' + rurl);
|
|
140
|
+
|
|
141
|
+
if (rurl == '') rurl = '/';
|
|
142
|
+
var custom_response_entry = custom_paths.get(rurl);
|
|
143
|
+
//console.log('Static HTML Resource process url', req.url);
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
//console.log('custom_response_entry ' + stringify(custom_response_entry));
|
|
147
|
+
|
|
148
|
+
if (custom_response_entry) {
|
|
149
|
+
var tcr = tof(custom_response_entry);
|
|
150
|
+
//console.log('tcr ' + tcr);
|
|
151
|
+
if (tcr == 'data_value') {
|
|
152
|
+
var val = custom_response_entry.value();
|
|
153
|
+
//console.log('val ' + val);
|
|
154
|
+
var tval = tof(val);
|
|
155
|
+
if (tval === 'string') {
|
|
156
|
+
// then it should be a local file path, serve it.
|
|
157
|
+
// need to specify a template resource / algorithm.
|
|
158
|
+
|
|
159
|
+
serve_html_file_from_disk(val, res);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
//throw 'stop';
|
|
163
|
+
} else {
|
|
164
|
+
//console.log('splitPath', splitPath);
|
|
165
|
+
//console.log('splitPath.length', splitPath.length);
|
|
166
|
+
|
|
167
|
+
if (splitPath.length > 0) {
|
|
168
|
+
|
|
169
|
+
// Can check for /js folder.
|
|
170
|
+
// There will be some fixed resources for the site.
|
|
171
|
+
// They will be served by Resource objects.
|
|
172
|
+
// There may be some overlap of resources, with there being some very fixed purpose
|
|
173
|
+
// specific resources that could duplicate some features of the more general ones.
|
|
174
|
+
// Eventually, some of the code from the more specific resources will be
|
|
175
|
+
// replacable with code from the more general ones.
|
|
176
|
+
|
|
177
|
+
// Site_JavaScript resource
|
|
178
|
+
// Will serve JavaScript files needed for the site.
|
|
179
|
+
// Could become more advanced at some points, serving particular builds.
|
|
180
|
+
|
|
181
|
+
if (splitPath.length == 1) {
|
|
182
|
+
if (splitPath[0] == '') {
|
|
183
|
+
// Serve the default page.
|
|
184
|
+
// serve index.html
|
|
185
|
+
//serve_html_file_from_disk('./index.html', res);
|
|
186
|
+
serve_html_file_from_disk('index.html', res);
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
}
|
|
192
|
+
} else {
|
|
193
|
+
if (splitPath[0] == 'html') {
|
|
194
|
+
//var sjs = pool.get_resource('Site JavaScript');
|
|
195
|
+
//console.log('sjs ' + sjs);
|
|
196
|
+
|
|
197
|
+
//throw 'stop';
|
|
198
|
+
|
|
199
|
+
// determine the name of the file to serve, serve that file
|
|
200
|
+
// Could use some more general kind of file server.
|
|
201
|
+
|
|
202
|
+
if (splitPath.length > 1) {
|
|
203
|
+
if (splitPath.length == 2) {
|
|
204
|
+
var fileName = splitPath[1];
|
|
205
|
+
//console.log('url_parts.path ' + url_parts.path);
|
|
206
|
+
var filePath = url_parts.path.substr(1);
|
|
207
|
+
//console.log('module.uri ' + module.uri);
|
|
208
|
+
|
|
209
|
+
// No, need the current module's relative path....
|
|
210
|
+
|
|
211
|
+
//var val2 = path.dirname(module.uri);
|
|
212
|
+
//console.log('val2 ' + val2);
|
|
213
|
+
//throw '9) stop';
|
|
214
|
+
|
|
215
|
+
//var diskPath = val2 + '/../css/' + fileName;
|
|
216
|
+
var diskPath = '../../ws/css/' + fileName;
|
|
217
|
+
|
|
218
|
+
serve_html_file_from_disk(diskPath, res);
|
|
219
|
+
} else {
|
|
220
|
+
if (splitPath.length == 3) {
|
|
221
|
+
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
module.exports = Site_Template_HTML;
|
package/roadmap.md
CHANGED
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
To fix:
|
|
2
|
-
CSS bundled from the JS.
|
|
3
|
-
|
|
4
|
-
Generally tidy it up.
|
|
5
|
-
Be clear about the responsibilities of the different parts of it.
|
|
6
|
-
Make a documentation, demo and marketing/promotion/awareness server app within this repo (a simple one at least)
|
|
7
|
-
But just specific to jsgui3-server, could be used in a larger webapp for jsgu3 doc, demo, promo
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
Make it work as a stand-alone application.
|
|
12
|
-
It's already quite a large codebase. Make use of existing code and expand somewhat further.
|
|
13
|
-
Start it, get it serving a directory easily.
|
|
14
|
-
Start it, access it through admin pages.
|
|
15
|
-
Admin interface showing by default.
|
|
16
|
-
|
|
17
|
-
Admin web interfaces seem like a piece of progress that the groundwork is in place for.
|
|
18
|
-
|
|
19
|
-
node server start 80
|
|
20
|
-
node server stop 80
|
|
21
|
-
|
|
22
|
-
Command line interfaces to interact with a jsgui server
|
|
23
|
-
|
|
24
|
-
node server modify 80 upload \[path\] as index.html
|
|
25
|
-
or similar?
|
|
26
|
-
|
|
27
|
-
node server get 80
|
|
28
|
-
|
|
29
|
-
node server 80
|
|
30
|
-
starts it
|
|
31
|
-
shows a cli for it...
|
|
32
|
-
a cli app?
|
|
33
|
-
a terminal app?
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
Server will start with a default holding page.
|
|
37
|
-
Server will be in a very simple configuration.
|
|
38
|
-
Single html response for all requests...?
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
Server with admin interface available, and admin interface allowing it to bundle / serve selected content.
|
|
42
|
-
Also want to make use of simple and stable API.
|
|
43
|
-
|
|
44
|
-
Want to make the server admin page(s) with panels.
|
|
45
|
-
Would be a nice place for a decent web ui.
|
|
46
|
-
|
|
47
|
-
More advanced and user-friendly functionality out-of-the-box.
|
|
48
|
-
A file manager interface would be cool.
|
|
49
|
-
Maybe would need to use file system resource
|
|
50
|
-
Could work on remote file system too.
|
|
51
|
-
|
|
52
|
-
Or make clear this is the core of the server?
|
|
53
|
-
jsgui3-server-core perhaps?
|
|
54
|
-
|
|
55
|
-
A Default server? Could also include file management.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
jsgui3-website could be helpful
|
|
59
|
-
a .deploy function
|
|
60
|
-
possibly the website could be hosted over multiple different servers, deployment could work for that.
|
|
61
|
-
The website would not only be within the server.
|
|
62
|
-
|
|
63
|
-
Could have a deployment wizard.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
1
|
+
To fix:
|
|
2
|
+
CSS bundled from the JS.
|
|
3
|
+
|
|
4
|
+
Generally tidy it up.
|
|
5
|
+
Be clear about the responsibilities of the different parts of it.
|
|
6
|
+
Make a documentation, demo and marketing/promotion/awareness server app within this repo (a simple one at least)
|
|
7
|
+
But just specific to jsgui3-server, could be used in a larger webapp for jsgu3 doc, demo, promo
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
Make it work as a stand-alone application.
|
|
12
|
+
It's already quite a large codebase. Make use of existing code and expand somewhat further.
|
|
13
|
+
Start it, get it serving a directory easily.
|
|
14
|
+
Start it, access it through admin pages.
|
|
15
|
+
Admin interface showing by default.
|
|
16
|
+
|
|
17
|
+
Admin web interfaces seem like a piece of progress that the groundwork is in place for.
|
|
18
|
+
|
|
19
|
+
node server start 80
|
|
20
|
+
node server stop 80
|
|
21
|
+
|
|
22
|
+
Command line interfaces to interact with a jsgui server
|
|
23
|
+
|
|
24
|
+
node server modify 80 upload \[path\] as index.html
|
|
25
|
+
or similar?
|
|
26
|
+
|
|
27
|
+
node server get 80
|
|
28
|
+
|
|
29
|
+
node server 80
|
|
30
|
+
starts it
|
|
31
|
+
shows a cli for it...
|
|
32
|
+
a cli app?
|
|
33
|
+
a terminal app?
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
Server will start with a default holding page.
|
|
37
|
+
Server will be in a very simple configuration.
|
|
38
|
+
Single html response for all requests...?
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
Server with admin interface available, and admin interface allowing it to bundle / serve selected content.
|
|
42
|
+
Also want to make use of simple and stable API.
|
|
43
|
+
|
|
44
|
+
Want to make the server admin page(s) with panels.
|
|
45
|
+
Would be a nice place for a decent web ui.
|
|
46
|
+
|
|
47
|
+
More advanced and user-friendly functionality out-of-the-box.
|
|
48
|
+
A file manager interface would be cool.
|
|
49
|
+
Maybe would need to use file system resource
|
|
50
|
+
Could work on remote file system too.
|
|
51
|
+
|
|
52
|
+
Or make clear this is the core of the server?
|
|
53
|
+
jsgui3-server-core perhaps?
|
|
54
|
+
|
|
55
|
+
A Default server? Could also include file management.
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
jsgui3-website could be helpful
|
|
59
|
+
a .deploy function
|
|
60
|
+
possibly the website could be hosted over multiple different servers, deployment could work for that.
|
|
61
|
+
The website would not only be within the server.
|
|
62
|
+
|
|
63
|
+
Could have a deployment wizard.
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|