52 lines
2.1 KiB
JavaScript
52 lines
2.1 KiB
JavaScript
|
// ===========================================================
|
||
|
// DEVBUG INLINE DEBUGGING HELPER - FOR USE WITH DEVBUG SERVER
|
||
|
// TODO: REMOVE BEFORE COMMITTING
|
||
|
let outs = {}
|
||
|
let devbug_url = 'http://localhost:8000/'
|
||
|
let project_api_key = 'CHANGEME'
|
||
|
const out = (key, what, group="") => {
|
||
|
if ( group ){
|
||
|
if ( Object.keys(outs).includes(group) ) outs[group][key] = what
|
||
|
else outs[group] = {}; outs[group][key] = what
|
||
|
}
|
||
|
else {
|
||
|
outs[key] = what
|
||
|
}
|
||
|
}
|
||
|
const breakpoint = (html = false, name = null) => {
|
||
|
var e = new Error();
|
||
|
(function() {
|
||
|
// Load better json
|
||
|
var js_decycle = document.createElement("script");
|
||
|
js_decycle.src = devbug_url+"assets/cycle.js";
|
||
|
js_decycle.type = 'text/javascript';
|
||
|
js_decycle.onload = () => {
|
||
|
// Load the script
|
||
|
var script = document.createElement("script");
|
||
|
script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js';
|
||
|
script.type = 'text/javascript';
|
||
|
script.onload = () => {
|
||
|
var $ = window.jQuery;
|
||
|
$(() => {
|
||
|
var s = e.stack.split('at'); var caller = '';
|
||
|
if ( s.length < 3 ) s = e.stack.split('@')
|
||
|
if ( s.length > 2 ) caller = s[2].trim()
|
||
|
else if ( s.length > 1 ) caller = s[1]
|
||
|
else caller = 'Unable to determine stacktrace'
|
||
|
var data = new FormData();
|
||
|
console.log(JSON.decycle({brief: (name ? name : 'Breakpoint: ')+caller,data: outs}))
|
||
|
data.append('data', JSON.stringify(JSON.rmref(JSON.decycle({brief: (name ? name : 'Breakpoint: ')+caller,data: outs}))))
|
||
|
$.ajax({
|
||
|
url: devbug_url+'api/v1/out/'+project_api_key,
|
||
|
data: data, cache: false, contentType: false, processData: false, method: 'POST', type: 'POST',
|
||
|
success: (res) => { console.log('DevBug POST Completed'); console.log(res) }
|
||
|
})
|
||
|
});
|
||
|
};
|
||
|
document.getElementsByTagName("head")[0].appendChild(script);
|
||
|
}
|
||
|
document.getElementsByTagName("head")[0].appendChild(js_decycle);
|
||
|
})();
|
||
|
}
|
||
|
window.out = out; window.breakpoint = breakpoint;
|
||
|
// ===========================================================
|