--- title: /api.html
--- description: API Notation
# API Notation
The following document attempts to define a legend for easy specification of APIs for components. Any suggestions to improve are welcome.
```
NameOfClass.WithPossibleNamespace
+ class property
- instance property
~> listened events (socket)
+> listened events (class/module)
-> listened events (instance)
<~ dispatched events (socket)
<+ dispatched events(class/module)
<- dispatched events (instance)
:: class method
# instance method
Other symbols
=> returns
->() callback return
[xx] optional
data type
Recommended order: class first, then sockets, then instance. Internally: Properties, events, methods.
// Anything after two forward slashes is a comment
```
Here's an example of usage
```
HypotheticalModule
+staticProperty
+anotherStaticProperty
::toggleAnotherStaticProperty()
::setStaticProperty(newValue )
-instanceProperty
-anotherInstanceProperty
#instanceMethodSync([optionalParameter]) => resultOfCall
#instanceMethodAsync(someValue , [callback] ) ->(error , result )
```
Here's another example but with events.
```
EventHypotheticalClass
+>AnotherClass<+staticEventToListen(eventData )
<+staticEventDispatched(someData )
~>listenedSocketEvent(eventData )
<~dispatchedSocketEvent(eventData )
->AnotherClass<-instanceEventToListen(eventData