[!NOTE]
This is a reorganization only PR. There are no new features
This PR is the first pass at porting the NetCreate Comment Manager so it can be reused in other projects that are being updated this year. It is being committed now to add the new addons jsplay and webplay to the base system, as well as fixing a bug in the URSYS Core FILE module.
SIMPLE TESTING
[ ] Try existing URSYS addon commands (e.g. ur net start and ur net stop) and see if it still works for localhost
See Additional Changes below for a description of these commands
[ ] Try the jsplay addon by cd-ing to _ur and typing ur jsplay
[ ] Try the webplay addon by cd-ing to _ur and typing ur webplay
CODE REVIEW RELATED CHANGES
A code review of the ac-comment, dc-comment, and comment-mgr modules from NetCreate was conducted to determine the best way to port the code, but it is not as modular as hoped and not easy to follow. In preparation of porting the system into URSYS, the following changes were made to make it easier to study in a functional+operational sense:
Type system reorganization and named for consistency
Missing type assignments added (partial)
Dozens of missing comments added
Clarification of existing functionality
Identification of problematic overloading
Whitespace and Comment Style corrections
Modules split into multiple separate modules when too much was happening in one
Methods sorted and ordered by function
The code review helped identify general approaches to apply in Stage 2. They are being discussed in Discussion #20 "Refactoring Comment Manager", identifying the kind of support modules to write.
ADDITIONAL CHANGES
new addons jsplay and webplay for prototyping code modules outside of an application shell. These are live-reload scratchpad environments that can be ported easily into an application or the URSYS core itself
new support module "universal ids" which formalize our entity id string format as schema:prefix-integer with validation and conversion utilities.
FILE module current directory utility modified to work in pure Typescript (not NodeTypescript) environment
BACKGROUND
After evaluating the current code, there is still a lot of system-level architectural work to be done to make the comment manager easily portable using URSYS conventions. The major drawbacks of the current implementation are:
unclear conventions for message-based and method-based APIs
lack of separation between ui framework code, data transformation, visual state management, and operations despite the existence of appcore and datacore methods. They are modular in name only, forwarding methods and messages rather than assigning distinct concerns to each layer
These are critical concerns for modularity so a deeper rewrite is needed. Many of the ideal patterns do not yet exist in prior code, so this is an opportunity to introduce clean implementation as was done with URSYS Messaging support.
This PR is the first pass at porting the NetCreate Comment Manager so it can be reused in other projects that are being updated this year. It is being committed now to add the new addons
jsplay
andwebplay
to the base system, as well as fixing a bug in the URSYS Core FILE module.SIMPLE TESTING
ur net start
andur net stop
) and see if it still works for localhostSee Additional Changes below for a description of these commands
jsplay
addon by cd-ing to_ur
and typingur jsplay
webplay
addon by cd-ing to_ur
and typingur webplay
CODE REVIEW RELATED CHANGES
A code review of the
ac-comment
,dc-comment
, andcomment-mgr
modules from NetCreate was conducted to determine the best way to port the code, but it is not as modular as hoped and not easy to follow. In preparation of porting the system into URSYS, the following changes were made to make it easier to study in a functional+operational sense:The code review helped identify general approaches to apply in Stage 2. They are being discussed in Discussion #20 "Refactoring Comment Manager", identifying the kind of support modules to write.
ADDITIONAL CHANGES
jsplay
andwebplay
for prototyping code modules outside of an application shell. These are live-reload scratchpad environments that can be ported easily into an application or the URSYS core itselfschema:prefix-integer
with validation and conversion utilities.BACKGROUND
After evaluating the current code, there is still a lot of system-level architectural work to be done to make the comment manager easily portable using URSYS conventions. The major drawbacks of the current implementation are:
These are critical concerns for modularity so a deeper rewrite is needed. Many of the ideal patterns do not yet exist in prior code, so this is an opportunity to introduce clean implementation as was done with URSYS Messaging support.