315 lines
5.6 KiB
JavaScript
315 lines
5.6 KiB
JavaScript
|
|
|
||
|
|
import tools from '../unify/tools.js';
|
||
|
|
|
||
|
|
import socketMessage from '../unify/socketMessage.js';
|
||
|
|
|
||
|
|
import unify from '../unify/unify.js';
|
||
|
|
|
||
|
|
import groupsFlat from '../server/themeGroups.js';
|
||
|
|
|
||
|
|
export default class debug {
|
||
|
|
|
||
|
|
objects = new Array();
|
||
|
|
|
||
|
|
socketManager = false;
|
||
|
|
|
||
|
|
parseFilename( filename ) {
|
||
|
|
|
||
|
|
if( filename[0] == "-" ) {
|
||
|
|
|
||
|
|
return false;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
if( !filename ) {
|
||
|
|
|
||
|
|
filename = "Unknown";
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
var emtpySpaces = 28 - filename.length;
|
||
|
|
|
||
|
|
for( var c = 0; c < emtpySpaces; c++) {
|
||
|
|
|
||
|
|
filename += " ";
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
return filename;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
processDebugMessage( message ) {
|
||
|
|
|
||
|
|
switch( message.parameters.action ) {
|
||
|
|
|
||
|
|
case "log":
|
||
|
|
|
||
|
|
this.logDebugMessage( message );
|
||
|
|
|
||
|
|
break;
|
||
|
|
|
||
|
|
case "addObject":
|
||
|
|
|
||
|
|
|
||
|
|
this.addDebugObject( message );
|
||
|
|
|
||
|
|
break;
|
||
|
|
|
||
|
|
case "updateFile":
|
||
|
|
|
||
|
|
this.updateFile( message );
|
||
|
|
|
||
|
|
break;
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
checkVisible( element ) {
|
||
|
|
|
||
|
|
return element.offsetWidth > 0 || element.offsetHeight > 0;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
getVisibleInherites( className, visible ) {
|
||
|
|
|
||
|
|
var core = document.cores[0];
|
||
|
|
|
||
|
|
this.cacheArray = new Array();
|
||
|
|
|
||
|
|
var objects = core.dependencieMap[className];
|
||
|
|
|
||
|
|
if( !objects ) {
|
||
|
|
|
||
|
|
return false;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
for (var b = 0; b < objects.length; b++) {
|
||
|
|
|
||
|
|
var object = objects[b];
|
||
|
|
|
||
|
|
if( tools.isVisible( object.element ) || visible ) {
|
||
|
|
|
||
|
|
this.cacheArray.push( object );
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
console.log("created cache array", this.cacheArray);
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
async updateFile( message ) {
|
||
|
|
|
||
|
|
var parameters = message.parameters;
|
||
|
|
|
||
|
|
var file = parameters.file;
|
||
|
|
|
||
|
|
var fullPath = file.path + "/" + file.name;
|
||
|
|
|
||
|
|
|
||
|
|
var currentPath = "../cache/platforms/"+document.config.os+"/"+document.config.device+"/"+document.config.tint+"/" + fullPath + "?disableCache=" + Math.random();
|
||
|
|
|
||
|
|
console.log("message", message);
|
||
|
|
|
||
|
|
console.log("currentPath", currentPath);
|
||
|
|
|
||
|
|
var newImport = await import(currentPath);
|
||
|
|
|
||
|
|
var newInstance = new newImport.default();
|
||
|
|
|
||
|
|
|
||
|
|
unify.extend( newInstance );
|
||
|
|
|
||
|
|
console.log("newInstance", newInstance);
|
||
|
|
|
||
|
|
var className = newInstance.getClassName();
|
||
|
|
|
||
|
|
this.getVisibleInherites( className, false );
|
||
|
|
|
||
|
|
newInstance.create = false;
|
||
|
|
|
||
|
|
this.updateMainObjects( newInstance );
|
||
|
|
|
||
|
|
this.updateInherites( newInstance );
|
||
|
|
|
||
|
|
|
||
|
|
var that = this;
|
||
|
|
|
||
|
|
setTimeout(function(){
|
||
|
|
|
||
|
|
|
||
|
|
that.getVisibleInherites( className, true );
|
||
|
|
|
||
|
|
that.updateInherites( newInstance );
|
||
|
|
|
||
|
|
|
||
|
|
}, 1000);
|
||
|
|
|
||
|
|
//function () {
|
||
|
|
|
||
|
|
//this.getVisibleInherites( className, true );
|
||
|
|
|
||
|
|
//this.updateInherites( newInstance );
|
||
|
|
|
||
|
|
//}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
updateInherites() {
|
||
|
|
|
||
|
|
var objects = this.cacheArray;
|
||
|
|
|
||
|
|
for ( var c = 0; c < objects.length; c++ ) {
|
||
|
|
|
||
|
|
var object = objects[c];
|
||
|
|
|
||
|
|
this.instantiateInheritence( object );
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
updateMainObjects( newInstance ) {
|
||
|
|
|
||
|
|
var core = document.cores[0];
|
||
|
|
|
||
|
|
var idObjects = core.classObjects[ newInstance.getClassName() ];
|
||
|
|
|
||
|
|
if( idObjects ) {
|
||
|
|
|
||
|
|
idObjects = idObjects.filter( n => n );
|
||
|
|
|
||
|
|
console.log( idObjects );
|
||
|
|
|
||
|
|
for ( var i = 0; i < idObjects.length; i++ ) {
|
||
|
|
|
||
|
|
var object = idObjects[i];
|
||
|
|
|
||
|
|
object.updateProperties( newInstance );
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
async instantiateInheritence( object ) {
|
||
|
|
|
||
|
|
var newConstructor = object.constructor;
|
||
|
|
|
||
|
|
if( object.__sourcePath ) {
|
||
|
|
|
||
|
|
var currentPath = "../cache/platforms/" + document.config.os + "/" + document.config.device + "/" + document.config.tint +"/" + object.__sourcePath + "?disableCache=" + Math.random();
|
||
|
|
|
||
|
|
var newImport = await import( currentPath );
|
||
|
|
|
||
|
|
|
||
|
|
if( newImport.default ) {
|
||
|
|
|
||
|
|
var newInstance = new newImport.default();
|
||
|
|
|
||
|
|
unify.extend( newInstance );
|
||
|
|
|
||
|
|
console.log("Hot swap Unify Object", object.getClassName(), object.element, newInstance["background"]);
|
||
|
|
|
||
|
|
var reload = object.updateProperties( newInstance );
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
} else {
|
||
|
|
|
||
|
|
console.log("error object doesnt have sourcePath", object);
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
addDebugObject( message ) {
|
||
|
|
|
||
|
|
var object = cycle.retrocycle( message.parameters.object );
|
||
|
|
|
||
|
|
if( object.applicationPathString ) {
|
||
|
|
|
||
|
|
console.log( "add object", object );
|
||
|
|
|
||
|
|
var div = document.createElement("div");
|
||
|
|
|
||
|
|
div.innerHTML = object.applicationPathString;
|
||
|
|
|
||
|
|
var socket = this.socketManager.socket;
|
||
|
|
|
||
|
|
|
||
|
|
div.onclick = function(){
|
||
|
|
|
||
|
|
console.log( object.applicationPathString );
|
||
|
|
|
||
|
|
var message = new socketMessage();
|
||
|
|
|
||
|
|
message.controller = "settings";
|
||
|
|
message.method = "debugObject";
|
||
|
|
|
||
|
|
message.object = object.applicationPathString;
|
||
|
|
|
||
|
|
socket.send( JSON.stringify( message ) );
|
||
|
|
|
||
|
|
this.style.color = "green";
|
||
|
|
|
||
|
|
console.log( this.style.color );
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
document.body.appendChild( div );
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
logDebugMessage( message ) {
|
||
|
|
|
||
|
|
var parameters = message.parameters;
|
||
|
|
|
||
|
|
var parameter1 = cycle.retrocycle( parameters.parameter1 );
|
||
|
|
var parameter2 = cycle.retrocycle( parameters.parameter2 );
|
||
|
|
var parameter3 = cycle.retrocycle( parameters.parameter3 );
|
||
|
|
|
||
|
|
if(parameter1 == "clear_console") {
|
||
|
|
|
||
|
|
console.clear();
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
var filename = parameters.filename;
|
||
|
|
|
||
|
|
if( parameters.lineNumber ) {
|
||
|
|
|
||
|
|
filename += ":" + parameters.lineNumber;
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
filename = this.parseFilename( filename );
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
if( parameters.parameter3 ) {
|
||
|
|
|
||
|
|
console.log( filename, parameter1, parameter2, parameter3 );
|
||
|
|
|
||
|
|
} else if( parameters.parameter2 ) {
|
||
|
|
|
||
|
|
console.log( filename, parameter1, parameter2 );
|
||
|
|
|
||
|
|
} else {
|
||
|
|
|
||
|
|
console.log( filename, parameter1 );
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|