@senx/discovery-code
Version:
Discovery Code Editor
1 lines • 5.76 kB
JavaScript
var Utils=function(){function e(){}e.mergeDeep=function(){var t=[];for(var n=0;n<arguments.length;n++){t[n]=arguments[n]}var r={};var a=true;var i=0;for(;i<t.length;i++){var s=t[i];e.merge(s,r,a)}return r};e.unsescape=function(e){return e.replace(/>/g,">").replace(/</g,"<").replace(/"/g,'"').replace(/'/g,"'").replace(/&/g,"&")};e.merge=function(t,n,r){for(var a in t){if(t.hasOwnProperty(a)){if(r&&Object.prototype.toString.call(t[a])==="[object Object]"){n[a]=e.mergeDeep(n[a],t[a])}else{n[a]=t[a]}}}};e.toArray=function(e){var t=[];Object.keys(e).forEach((function(n){return t.push(e[n])}));return t};e.httpPost=function(e,t,n){return new Promise((function(r,a){var i=new XMLHttpRequest;var s={};i.onreadystatechange=function(){i.getAllResponseHeaders().split("\n").forEach((function(e){if(e.trim()!==""){var t=e.split(":");s[t[0].trim()]=t[1].trim().replace("\r","")}}));if(i.readyState===4&&i.status===200){r({data:i.responseText,headers:s,status:{ops:parseInt(s["x-warp10-ops"],10),elapsed:parseInt(s["x-warp10-elapsed"],10),fetched:parseInt(s["x-warp10-fetched"],10)}})}else if(i.readyState===4&&i.status>=400){a({statusText:i.statusText,status:i.status,url:e,message:"line #".concat(s["x-warp10-error-line"],": ").concat(s["x-warp10-error-message"]),detail:{mess:s["x-warp10-error-message"],line:s["x-warp10-error-line"]}})}else if(i.readyState===4&&i.status===0){a({statusText:e+" is unreachable",status:404,url:e,message:e+" is unreachable",detail:{mess:e+" is unreachable",line:-1}})}};i.open("POST",e,true);i.setRequestHeader("Content-Type","text/plain; charset=utf-8");Object.keys(n||{}).filter((function(e){return e.toLowerCase()!=="accept"&&e.toLowerCase()!=="content-type"})).forEach((function(e){return i.setRequestHeader(e,n[e])}));i.send(t)}))};e.isArray=function(e){return e&&typeof e==="object"&&e instanceof Array&&typeof e.length==="number"&&typeof e.splice==="function"&&!e.propertyIsEnumerable("length")};return e}();var Config=function(){function e(){this.buttons={class:""};this.execButton={class:"",label:"Execute"};this.datavizButton={class:"",label:"Visualize"};this.hover=true;this.readOnly=false;this.messageClass="";this.errorClass="";this.addLocalHeader=false;this.editor={quickSuggestionsDelay:10,quickSuggestions:true,tabSize:2,minLineNumber:10,enableDebug:false,rawResultsReadOnly:false};this.codeReview={enabled:false,readonly:false,cancelButton:{class:"",label:"Cancel"},addButton:{class:"",label:"Add comment"},replyButton:{label:"Reply"},removeButton:{label:"Remove"},editButton:{label:"Edit"}}}return e}();var EditorConfig=function(){function e(){this.quickSuggestionsDelay=10;this.quickSuggestions=true;this.tabSize=2;this.minLineNumber=10;this.enableDebug=false;this.rawResultsReadOnly=false}return e}();var wsStatement=function(){function e(e,t){this.statement=e;this.offset=t}return e}();var WarpScriptParser=function(){function e(){}e.findMacrosBeforePosition=function(e,t,n){for(var r=0;r<e.length;r++){if(e[r]instanceof wsStatement&&e[r].offset==t){var a=r-1;var i=0;var s=[];while(a>=0&&i<n){if(e[a]instanceof wsStatement){break}else{if(typeof e[a]!=="number"){s.push([e[a][0],e[a][e[a].length-1]]);i++}}a--}return s}else if(typeof e[r]==="number");else{var u=this.findMacrosBeforePosition(e[r],t,n);if(null!==u){return u}}}return null};e.parseWarpScriptStatements=function(e,t){if(t===void 0){t=false}var n=0;var r=[];while(n<e.length-1){if(e.charAt(n)=="<"&&e.charAt(n+1)=="'"){var a=e.substring(n,e.length).split("\n");var i=0;while(i<a.length&&a[i].trim()!="'>"){n+=a[i].length+1;i++}n+=a[i].length+1}if(e.charAt(n)=="/"&&e.charAt(n+1)=="*"){n++;while(n<e.length-1&&!(e.charAt(n)=="*"&&e.charAt(n+1)=="/")){n++}n+=2}if(e.charAt(n)=="/"&&e.charAt(n+1)=="/"){n++;while(n<e.length-1&&e.charAt(n)!="\n"){n++}}if(e.charAt(n)=="'"){var s=n;n++;while(n<e.length&&e.charAt(n)!="'"&&e.charAt(n)!="\n"){n++}n++;r.push(e.substring(s,n).replace("\r",""))}if(e.charAt(n)=='"'){var s=n;n++;while(n<e.length&&e.charAt(n)!='"'&&e.charAt(n)!="\n"){n++}n++;r.push(e.substring(s,n).replace("\r",""))}if(e.charAt(n)=="<"&&e.charAt(n+1)=="%"){r.push("<%");n+=2}if(e.charAt(n)=="%"&&e.charAt(n+1)==">"){r.push("%>");n+=2}if(e.charAt(n)!=" "&&e.charAt(n)!="\n"){var s=n;while(n<e.length&&e.charAt(n)!=" "&&e.charAt(n)!="\n"){n++}if(t){r.push([e.substring(s,n).replace("\r",""),s,n])}else{r.push(e.substring(s,n).replace("\r",""))}}n++}return r};e.extractSpecialComments=function(e){var t={};var n=e.split("\n");t.listOfMacroInclusion=[];t.listOfMacroInclusionRange=[];for(var r=0;r<n.length;r++){var a=n[r];if(a.startsWith("//")){var i=/\/\/\s*@(\w*)\s*(.*)$/g;var s=void 0;var u=RegExp(i);while(s=u.exec(a.replace("\r",""))){var l=s[1];var f=s[2];switch(l){case"endpoint":t.endpoint=f;break;case"localmacrosubstitution":t.localmacrosubstitution="true"===f.trim().toLowerCase();break;case"timeunit":if(["us","ms","ns"].indexOf(f.trim())>-1){t.timeunit=f.trim()}break;case"preview":switch(f.toLowerCase().substring(0,4)){case"none":t.displayPreviewOpt="X";break;case"gts":t.displayPreviewOpt="G";break;case"imag":t.displayPreviewOpt="I";break;case"json":t.displayPreviewOpt="J";break;case"disc":t.displayPreviewOpt="D";break;default:t.displayPreviewOpt="";break}break;case"include":var o=f.trim();if(o.startsWith("macro:")){o=o.substring(6).trim();t.listOfMacroInclusion.push(o);var c={startLineNumber:r,startColumn:3,endLineNumber:r,endColumn:a.trim().length};t.listOfMacroInclusionRange.push(c)}break;case"theme":t.theme=f.trim().toLowerCase();break}}}else{if(a.trim().length>0){break}}}return t};e.IsWsLitteralString=function(e){return e.length>=2&&(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))};return e}();export{Config as C,EditorConfig as E,Utils as U,WarpScriptParser as W};