puter/src/puter-js-common
2024-07-25 23:19:54 -04:00
..
src dev: add Invoker 2024-07-25 23:19:54 -04:00
test dev: add Invoker 2024-07-25 23:19:54 -04:00
index.js chore: add missing license headers 2024-07-09 04:10:33 -04:00
package.json refactor: move puter gui to workspace 2024-07-07 17:12:55 -04:00
README.md refactor: move puter gui to workspace 2024-07-07 17:12:55 -04:00

Puter - Common Javascript Module

This is a small module for javascript which you might call a "language tool"; it adds some behavior to make javascript classes more flexible, with an aim to avoid any significant complexity.

Each class in this module is best described as an idea:

BasicBase

BasicBase is the idea that there should be a common way to see the inheritance chain of the current instance, and obtain merged objects and arrays from static members of these classes.

TraitBase

TraitBase is the idea that there should be a common way to "install" behavior into objects of a particular class, as dictated by the class definition. A trait might install a common set of methods ("mixins"), decorate all or a specified set of methods in the class (performance monitors, sanitization, etc), or anything else.

AdvancedBase

AdvancedBase is the idea that, in a node.js environment, you always want the ability to add traits to a class and there are some default traits you want in all classes, which are:

  • PropertiesTrait - add lazy factories for instance members instead of always populating them in the constructor.
  • NodeModuleDITrait - require node modules in a way that allows unit tests to inject mocks easily.