Restructured library.
This commit is contained in:
Executable
+59
@@ -0,0 +1,59 @@
|
||||
import Interface from './interface.js'
|
||||
|
||||
/** Basic Application object to be used as a singleton.
|
||||
Provides an interface for automatic testing and common device specific
|
||||
feature detection.
|
||||
*/
|
||||
|
||||
export class IApp extends Interface {
|
||||
/** Build the app by registering event handlers,
|
||||
* adding DOM elements, instanciating templates, etc...
|
||||
*/
|
||||
setup() { return this }
|
||||
|
||||
/** Run the application by starting a main loop, ...
|
||||
*/
|
||||
run() { return this }
|
||||
}
|
||||
|
||||
export default class App extends Object {
|
||||
/** Override this method to build your app.
|
||||
*/
|
||||
setup() {
|
||||
return this
|
||||
}
|
||||
|
||||
/** Start and run the application. Override this method with everything
|
||||
that is needed to maintain your App, main loops, etc.
|
||||
*/
|
||||
run() {
|
||||
return this
|
||||
}
|
||||
|
||||
/** Defines all test suites. Overwrite this method to ensure that
|
||||
all testable aspects of your App are evaluated.
|
||||
*/
|
||||
allTests() {
|
||||
console.log('Overwrite App.allTests()')
|
||||
}
|
||||
|
||||
/** Run all tests. Should return 'ok' and the amount of time needed to
|
||||
run App.allTests() or a failure message with diagnostic error decription.
|
||||
@return {array} - array with 'ok' as first element and needed time as
|
||||
second element or "Tests failed" and an error string
|
||||
*/
|
||||
runTests() {
|
||||
var start = performance.now()
|
||||
try {
|
||||
this.allTests()
|
||||
var end = performance.now()
|
||||
return ['ok', end - start]
|
||||
}
|
||||
catch(e) {
|
||||
console.trace()
|
||||
return ['Tests failed', e.message]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
IApp.implementedBy(App)
|
||||
Reference in New Issue
Block a user