feat(misc): ✨ add commands
- add help, declaration for long script instead of prefix
This commit is contained in:
parent
bdcc7d8d56
commit
07ece78cd6
1 changed files with 35 additions and 3 deletions
|
|
@ -20,6 +20,21 @@
|
||||||
// </div>
|
// </div>
|
||||||
export class Debugger {
|
export class Debugger {
|
||||||
public output: any[] = [];
|
public output: any[] = [];
|
||||||
|
public commandList: string[] = [
|
||||||
|
"** any js code can be used here! **",
|
||||||
|
"external commands: ",
|
||||||
|
"",
|
||||||
|
"use tb; - start the tb script until `tbs` is found.",
|
||||||
|
"tbs; - stop the tb scipt, the next line may execute in js or others.",
|
||||||
|
"!tb - prefix for execute commands from angular",
|
||||||
|
"!tb proto - list all functions and variables in this component",
|
||||||
|
"!tb clear - clear output",
|
||||||
|
"!tb store - collect and store previous line output as variable. This can be used to interact with function",
|
||||||
|
"!tb vars - view all stored variables",
|
||||||
|
"!tb var::<name> - get variable value by stored name",
|
||||||
|
"!tb get::<name> - get value of variable in angular",
|
||||||
|
"!tb fn::<name> <...args> - execute the function with args",
|
||||||
|
];
|
||||||
// evaluate
|
// evaluate
|
||||||
eval(comp: any) {
|
eval(comp: any) {
|
||||||
let enableCommand = document.getElementById('command-enable') as any;
|
let enableCommand = document.getElementById('command-enable') as any;
|
||||||
|
|
@ -30,12 +45,26 @@ export class Debugger {
|
||||||
let holdon:any = {};
|
let holdon:any = {};
|
||||||
// split line
|
// split line
|
||||||
let lines = command.value.split('\n');
|
let lines = command.value.split('\n');
|
||||||
|
let declPrefixFlag = false;
|
||||||
lines.forEach((line: string, index: number) => {
|
lines.forEach((line: string, index: number) => {
|
||||||
|
|
||||||
|
if(line == "use tb;") {
|
||||||
|
declPrefixFlag = true;
|
||||||
|
} else if(line == "tbs;"){
|
||||||
|
declPrefixFlag = false;
|
||||||
|
}
|
||||||
|
|
||||||
// this.output.push(line);
|
// this.output.push(line);
|
||||||
|
|
||||||
// escape line, exec function of class
|
// escape line, exec function of class
|
||||||
if(line.startsWith("!tb")){
|
if(line.startsWith("!tb") || declPrefixFlag){
|
||||||
let cmd = line.substring(3).trim();
|
let cmd = "";
|
||||||
|
if(line.includes("!tb")){
|
||||||
|
cmd = line.substring(3).trim();
|
||||||
|
} else {
|
||||||
|
cmd = line;
|
||||||
|
}
|
||||||
|
|
||||||
switch(cmd){
|
switch(cmd){
|
||||||
case "proto":
|
case "proto":
|
||||||
this.output.push(Object.keys(comp));
|
this.output.push(Object.keys(comp));
|
||||||
|
|
@ -54,6 +83,9 @@ export class Debugger {
|
||||||
case "vars":
|
case "vars":
|
||||||
this.output.push(JSON.stringify(holdon));
|
this.output.push(JSON.stringify(holdon));
|
||||||
break;
|
break;
|
||||||
|
case "help":
|
||||||
|
this.output.push(this.commandList.join("\n"));
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
||||||
|
|
@ -93,7 +125,7 @@ export class Debugger {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (!line.startsWith("//")){
|
} else if (!line.startsWith("//") && line != ""){
|
||||||
|
|
||||||
if(!line.startsWith("window") && !line.startsWith("let") && !line.startsWith("var")){
|
if(!line.startsWith("window") && !line.startsWith("let") && !line.startsWith("var")){
|
||||||
line = "window."+line;
|
line = "window."+line;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue