electron-devtools-vendor
Version:
<div align="center"> <h2>electron-devtools-vendor</h2> <img alt="MIT" src="https://img.shields.io/github/license/BlackHole1/electron-devtools-vendor?color=9cf&style=flat-square"> <img alt="GitHub repo size" src="https://img.shields.io/github/r
69 lines (53 loc) • 2.61 kB
JavaScript
Modules.set('backboneAgent', function() {
// imports
var Component = Modules.get('Component');
var u = Modules.get('utils');
var debug = Modules.get('debug');
var server = Modules.get('server');
var backboneController = Modules.get('controllers.backboneController');
var backboneComponentController = Modules.get('controllers.backboneComponentController');
var appComponentControllers = {
'View': Modules.get('controllers.appViewController'),
'Model': Modules.get('controllers.appModelController'),
'Collection': Modules.get('controllers.appCollectionController'),
'Router': Modules.get('controllers.appRouterController')
}
var appComponentsInfos = Modules.get('collections.appComponentsInfos');
var backboneAgent = new (Component.extend({ // singleton
// business logic
initialize: function() {
server.start();
// detect backbone
backboneController.onBackboneDetected(u.bind(function(Backbone) {
this.isBackboneDetected = true;
debug.log('Backbone detected: ', Backbone);
// detect backbone components
// (the Backbone object might be only partially defined.)
u.each(['View', 'Model', 'Collection', 'Router'], function(BackboneComponentName) {
u.onceDefined(Backbone, BackboneComponentName, u.bind(function(BackboneComponent) {
debug.log('Backbone.'+BackboneComponentName+' detected');
// detect backbone component instances (i.e. app components)
var appComponentController = appComponentControllers[BackboneComponentName];
backboneComponentController.onNewInstance(BackboneComponent, function(appComponent) {
appComponentController.handle(appComponent);
});
}, this));
}, this);
}, this));
},
// PUBLIC API
isBackboneDetected: false,
appComponentsInfos: appComponentsInfos,
server: server,
database: Modules.get('database'),
Reader: Modules.get('Reader'),
filters: Modules.get('filters.filters'),
appComponentControllers: appComponentControllers,
// manual Backbone detection
handleBackbone: function(Backbone) {
return backboneController.handleBackbone(Backbone);
}
}))();
return backboneAgent;
});
window.__backboneAgent = Modules.get('backboneAgent');