-
Notifications
You must be signed in to change notification settings - Fork 1.8k
es6 note
backend focus: This documentation is more relevant to Puter's backend than frontend, but is placed here because it could apply to other areas in the future.
One important shortcoming in the ES6 class syntax to be aware of is that it discourages the use of expressions as methods.
For example:
class ExampleClass extends SomeBase {
intuitive_method_definition () {}
constructor () {
this.less_intuitive = some_expr();
}
}
Even if it is known that the return type of some_expr
is a function,
it is still unclear whether it's being used as a callback or
as a method without other context in the code, since this is
how we typically assign instance members rather than methods.
We solve this in Puter's backend using a trait called
AssignableMethodsTrait
which allows a static member called METHODS
to contain
method definitions.
Method Composition is the act of composing methods from other constituents. For example, Sequence allows composing a method from smaller functions, allowing easier definition of "in-betwewen-each" behaviors and ways to track which values from the arguments are actually read during a particular call.
You are reading documentation for the open-source repository of Puter.
Getting started on localhost is as simple as git clone
npm install
npm start
.