Client namespace & classes
Client-side equivalent classes
Some server-side classes have client-side equivalents. These are put in the Alchemy.Client namespace.
A few examples include:
- Alchemy.Client.Model
- Alchemy.Client.Document
- Alchemy.Client.Conduit
- Alchemy.Client.Controller
- ...
Where server-side classes mostly inherit from Alchemy.Base, client-side classes inherit from Alchemy.Client.Base
Methods & property getters added to client-side classes are also automatically added to the server-side equivalent, if those do not have an existing implementation already.
Client-side models & documents
Models are special: a client-side equivalent model class is automatically created for every model.
If you want to change these classes, you can't recreate them using Function.inherits, but you have to use the custom Model.getClass method.
The following example will add a title getter to the client-side ProjectVersion document class. Because there is no specific server-side implementation, this property will also be available on the server-side document class:
const ProjectVersion = Hawkejs.Model.getClass('ProjectVersion');
ProjectVersion.setDocumentProperty(function title() {
return this.name.titleize();
});