puter/packages/puter-js-common
2024-06-24 19:08:56 -04:00
..
src fix: Throw an error when readdir is called on a non-directory 2024-06-24 19:08:56 -04:00
test Release backend 2024-03-30 19:08:03 -04:00
index.js refactor: flatten the monorepo 2024-06-08 01:07:42 -04:00
package.json Rename workspace modules to avoid confusion 2024-04-23 04:06:15 -04:00
README.md refactor: flatten the monorepo 2024-06-08 01:07:42 -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.