2015-11-04 11:11:27 -08:00
Poltergeist = ( function ( ) {
/ * *
* The MAIN class of the project
* @ param port
* @ param width
* @ param height
2016-03-02 12:40:24 -08:00
* @ param jsErrors
2015-11-04 11:11:27 -08:00
* @ constructor
* /
2016-03-02 12:40:24 -08:00
function Poltergeist ( port , width , height , jsErrors ) {
2015-11-04 11:11:27 -08:00
var self ;
2016-03-02 12:40:24 -08:00
this . browser = new Poltergeist . Browser ( this , width , height , jsErrors ) ;
2015-11-04 11:11:27 -08:00
this . commandServer = new Poltergeist . Server ( this , port ) ;
this . commandServer . start ( ) ;
self = this ;
phantom . onError = function ( message , stack ) {
return self . onError ( message , stack ) ;
} ;
this . running = false ;
}
/ * *
* Tries to execute a command send by a client and returns the command response
* or error if something happened
* @ param command
* @ param serverResponse
* @ return { boolean }
* /
Poltergeist . prototype . serverRunCommand = function ( command , serverResponse ) {
var error ;
this . running = true ;
try {
return this . browser . serverRunCommand ( command , serverResponse ) ;
} catch ( _error ) {
error = _error ;
if ( error instanceof Poltergeist . Error ) {
return this . serverSendError ( error , serverResponse ) ;
}
return this . serverSendError ( new Poltergeist . BrowserError ( error . toString ( ) , error . stack ) , serverResponse ) ;
}
} ;
/ * *
* Sends error back to the client
* @ param error
* @ param serverResponse
* @ return { boolean }
* /
Poltergeist . prototype . serverSendError = function ( error , serverResponse ) {
var errorObject ;
errorObject = {
error : {
name : error . name || 'Generic' ,
args : error . args && error . args ( ) || [ error . toString ( ) ]
}
} ;
return this . commandServer . sendError ( serverResponse , 500 , errorObject ) ;
} ;
/ * *
* Send the response back to the client
* @ param response Data to send to the client
* @ param serverResponse Phantomjs response object associated to the client request
* @ return { boolean }
* /
Poltergeist . prototype . serverSendResponse = function ( response , serverResponse ) {
return this . commandServer . send ( serverResponse , { response : response } ) ;
} ;
return Poltergeist ;
} ) ( ) ;
window . Poltergeist = Poltergeist ;