Update cli.ts

This commit is contained in:
DJj123dj
2025-04-07 16:47:57 +02:00
parent 5f79ae909b
commit d545d21bb1
+14 -6
View File
@@ -146,7 +146,7 @@ async function renderConfigArrayStructureSelector(checker:api.ODChecker,backFn:(
if (!structure.options.propertyChecker) return await backFn() if (!structure.options.propertyChecker) return await backFn()
const propertyName = structure.options.cliDisplayPropertyName ?? "index" const propertyName = structure.options.cliDisplayPropertyName ?? "index"
const answer = await terminal.singleColumnMenu([ const answer = await terminal.singleColumnMenu(data.length < 1 ? ["Add "+propertyName] : [
"Add "+propertyName, "Add "+propertyName,
"Edit "+propertyName, "Edit "+propertyName,
"Move "+propertyName, "Move "+propertyName,
@@ -211,12 +211,11 @@ async function renderconfigArrayStructureMoveSelector(checker:api.ODChecker,back
}).promise }).promise
if (dataAnswer.canceled) return await backFn() if (dataAnswer.canceled) return await backFn()
const subData = data[dataAnswer.selectedIndex]
renderHeader([...path,dataAnswer.selectedIndex]) renderHeader([...path,dataAnswer.selectedIndex])
terminal(ansis.bold.green("Please select the position you would like to move to.\n")+ansis.italic.gray("(use arrow keys to navigate, go back using escape)\n")) terminal(ansis.bold.green("Please select the position you would like to move to.\n")+ansis.italic.gray("(use arrow keys to navigate, go back using escape)\n"))
const moveAnswer = await terminal.singleColumnMenu([...data.map((d,i) => "Position "+(i+1)),"Last Position"],{ const moveAnswer = await terminal.singleColumnMenu(data.map((d,i) => "Position "+(i+1)),{
leftPadding:"> ", leftPadding:"> ",
style:terminal.cyan, style:terminal.cyan,
selectedStyle:terminal.bgDefaultColor.bold, selectedStyle:terminal.bgDefaultColor.bold,
@@ -226,7 +225,14 @@ async function renderconfigArrayStructureMoveSelector(checker:api.ODChecker,back
}).promise }).promise
if (moveAnswer.canceled) return await renderconfigArrayStructureMoveSelector(checker,backFn,arrayStructure,structure,data,parent,parentIndex,path) if (moveAnswer.canceled) return await renderconfigArrayStructureMoveSelector(checker,backFn,arrayStructure,structure,data,parent,parentIndex,path)
console.log("move from:",dataAnswer.selectedIndex,"to:",moveAnswer.selectedIndex)
const subData = data[dataAnswer.selectedIndex]
const slicedData = [...data.slice(0,dataAnswer.selectedIndex),...data.slice(dataAnswer.selectedIndex+1)]
const insertedData = [...slicedData.slice(0,moveAnswer.selectedIndex),subData,...slicedData.slice(moveAnswer.selectedIndex)]
insertedData.forEach((d,i) => data[i] = d)
terminal.bold.blue("\n\n✅ Property moved succesfully!")
await utilities.timer(400)
await backFn()
} }
async function renderconfigArrayStructureRemoveSelector(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),arrayStructure:api.ODCheckerArrayStructure,structure:api.ODCheckerStructure,data:any[],parent:object,parentIndex:string|number,path:(string|number)[]){ async function renderconfigArrayStructureRemoveSelector(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),arrayStructure:api.ODCheckerArrayStructure,structure:api.ODCheckerStructure,data:any[],parent:object,parentIndex:string|number,path:(string|number)[]){
@@ -246,8 +252,10 @@ async function renderconfigArrayStructureRemoveSelector(checker:api.ODChecker,ba
}).promise }).promise
if (dataAnswer.canceled) return await backFn() if (dataAnswer.canceled) return await backFn()
const subData = data[dataAnswer.selectedIndex] data.splice(dataAnswer.selectedIndex,1)
console.log("delete position:",dataAnswer.selectedIndex) terminal.bold.blue("\n\n✅ Property deleted succesfully!")
await utilities.timer(400)
await backFn()
} }
async function renderConfigBooleanStructureEditor(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),structure:api.ODCheckerBooleanStructure,data:boolean,parent:object,parentIndex:string|number,path:(string|number)[]){ async function renderConfigBooleanStructureEditor(checker:api.ODChecker,backFn:(() => api.ODPromiseVoid),structure:api.ODCheckerBooleanStructure,data:boolean,parent:object,parentIndex:string|number,path:(string|number)[]){