Skip to content

More refactoring#7

Open
CodexHere wants to merge 17 commits intomainfrom
moreRefactoring
Open

More refactoring#7
CodexHere wants to merge 17 commits intomainfrom
moreRefactoring

Conversation

@CodexHere
Copy link
Owner

No description provided.

…ize.

* Added ability to toggle encrypting of single setting name. This is used by set by name and merge in the Context Provider.
* Added bogus modules for doc generation purposes
* LifecycleManager now exists, and handles events for various lifecycle
  patterns. Also manages Lock state, held within the AppBootstrapper.
* All ContextProviders now gate (via Lock state) registration/config-only accessors, and will throw an Error if violated.
* Renamed Settings->Configuration/etc as it pertains to the App
  lifecycle (ie, app mode vs config mode)
* Managers now consume and propagate LockHolder
* Managers now have a proper API to avoid member access.
	* Some ContextProvider implementations turned into proxied calls to
	  encapsulate member access to the Manager.
* Hashed out all Events as `CoreEvents`
	* string values of Events are contextualized to the author of
	  the event to give an idea of the source of event flow.
* Converted some callback methodology to Events.
	* Propagated through ConfigurationRenderer and Plugins
* ContextProviders use ES6 private (i.e., # modifier) because TS does
  not actually encapsulate `private` members. This means things like the
Manager, internal settings, etc were accessible to Plugins. Now with the
private modifier, Plugins can't intrude into the system.
	* Re-added `CoreEvents.RendererStarted` Event, as I decided I liked the feature. I can see dynamic Settings occurring based on other settings, which is neat.
	* Finalized the `CoreEvents.RendererStarted` Event for lifecycle
	  purposes. Renderer renders, then plugins.
* Cleaned up documentation throughout
* SettingsManager/ContextProvider
	* Added Settings Overrides capabilities!
		* This lets plugins overwrite schemas at registration time
		* Useful for dynamic settings UIs
		* Useful for enforcing values/options that need to be
		  dynamically gathered/enforced (ie, default/required plugins).
	* Added a cache for the processed FormSchema
		* Reduces a LOT of redundant processing
		* Required a bunch of instrumenting for clearing cache in
		  various scenarios so results would be accurate.
* Package:
	* Got rid of lodash completely!!!
* Utils:
	* Separated a few things in index/misc a bit better
	* Replacement of lodash get/set/unset with local functions!
	* Fixed cleaning Processed Schema Cache in a few locations
	* Removed unused packages
* Utils::Forms
	* Schema Processors:
		* Normalizing name on construction now
		* Enhanced `schemaOverrides` to include a `MergeMode`
		* Removed SimpleInput as it provided no value
	* Updated `PathSet` to properly set arrays
* Fixed some runtime browser accessibility complaints (but not all)
* No longer wrapping `hidden` inputs
* Minor additions of notes while relearning code
* Started creating Application Lifecycle documentation
  explicitness and consistency
* Added/fixed up error reporting based on context of what's happening
	* Registration vs Bus Lock vs etc
* Where necessary, added plugin injection for reification in error stack
  handling, especially in Display::showError
* Where necessary, added LockHolder::isLocked checks and error
  appropriately
* Core/Internal eventing is now **ONLY** on explicit EventEmitter
  descendants. This means AppBootstrapper, PluginManager, etc - whatever
implements a EnhancedEventEmitter as part of the Core event data flow
* Plugin eventing is now **ONLY** on the singular explicit
* Plugin names are now better namespaced to provide explicit intent
  BusEventEmitter via the ContextProvider proxy.
* Plugins now have an explicit start as a result of internal eventing
  staying internal. We don't proxy the event to plugins anymore, it is
proxied directly to the PluginManager, which then explicitly starts the
plugins
	* Updated Plugins to use explicit start()
* Plugin Registration is now auto detectable by exposing an interface
  and if available will retrieve and register on it's behalf.
* Plugin Registration, if explicit, now has a more narrow type injected
  to avoid overextending interface accessiblity to a PluginInstance.
* Deleted it now. iykyk
* Added a source for errors to make error popups more contextual
* PluginManager now injects a ref Symbol
    * Default Plugins were refactored to remove these ref's
* MergeMode converted to a string-based enum, allows for clearer intent in raw ES6 Plugins
Added Ollama + Piper samplefor when we get to building overlays
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant