本文整理汇总了TypeScript中terminal-kit.terminal.grabInput方法的典型用法代码示例。如果您正苦于以下问题:TypeScript terminal.grabInput方法的具体用法?TypeScript terminal.grabInput怎么用?TypeScript terminal.grabInput使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类terminal-kit.terminal
的用法示例。
在下文中一共展示了terminal.grabInput方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: function
terminal.on('key', function (name) {
if (name !== 'y') {
process.exit(0)
}
terminal.grabInput(false)
resolve()
})
示例2: handleKeyEvent
async function handleKeyEvent(name: string,
currentIndex: number,
selectedIndices: number[],
projects: ProjectInfo[],
env: SystemEnvironment,
callback: () => void): Promise<number> {
switch (name) {
case 'DOWN': {
currentIndex = (currentIndex + 1) % projects.length
rerender(projects, currentIndex, selectedIndices)
break
}
case 'UP': {
currentIndex = (currentIndex + projects.length - 1) % projects.length
rerender(projects, currentIndex, selectedIndices)
break
}
case ' ': { // SPACE
const index = selectedIndices.indexOf(currentIndex)
if (index >= 0) {
selectedIndices.splice(index, 1)
} else {
selectedIndices.push(currentIndex)
}
rerender(projects, currentIndex, selectedIndices)
break
}
case 'ENTER': {
await handleSelect(selectedIndices, projects, env)
terminal.grabInput(false)
callback()
break
}
case 'CTRL_C': {
clear(projects)
terminal.hideCursor(false)
terminal.grabInput(false)
process.exit()
}
default: {
break
}
}
return currentIndex
}
示例3: handleKeyEvent
async function handleKeyEvent(name: string,
currentIndex: number,
projects: ProjectInfo[],
callback: (projectId: string) => void): Promise<number> {
switch (name) {
case 'DOWN': {
currentIndex = (currentIndex + 1) % projects.length
rerender(projects, currentIndex)
break
}
case 'UP': {
currentIndex = (currentIndex + projects.length - 1) % projects.length
rerender(projects, currentIndex)
break
}
case 'ENTER': {
clear(projects)
terminal.hideCursor(false)
terminal.grabInput(false)
callback(projects[currentIndex].projectId)
break
}
case 'CTRL_C': {
clear(projects)
terminal.hideCursor(false)
terminal.grabInput(false)
process.exit()
}
default: {
break
}
}
return currentIndex
}
示例4: async
export default async (props: DeleteProps, env: SystemEnvironment): Promise<void> => {
const {resolver, out} = env
if (props.sourceProjectId) {
out.startSpinner(deletingProjectMessage(props.sourceProjectId))
try {
await deleteProject([props.sourceProjectId], resolver)
out.stopSpinner()
out.write(deletedProjectMessage([props.sourceProjectId]))
} catch (e) {
out.stopSpinner()
if (e.errors) {
const errors = parseErrors(e)
const output = generateErrorOutput(errors)
out.writeError(`${output}`)
} else {
throw e
}
}
} else {
const projects = await fetchProjects(resolver)
terminal.saveCursor()
terminal.grabInput()
terminal.hideCursor()
terminal(`\n`)
// initially select current project
const projectId = getProjectId(env)
let currentIndex = projectId ? projects.map(p => p.projectId).indexOf(projectId) : 0
const selectedIndices = []
render(projects, currentIndex, selectedIndices)
await new Promise(resolve => {
terminal.on('key', async (name: string) => {
currentIndex = await handleKeyEvent(name, currentIndex, selectedIndices, projects, env, resolve)
})
})
}
}
示例5: interactiveProjectSelection
async function interactiveProjectSelection(env: SystemEnvironment): Promise<string> {
const projects = await fetchProjects(env.resolver)
terminal.saveCursor()
terminal.grabInput()
terminal.hideCursor()
terminal(`\n`)
let currentIndex = 0
render(projects, currentIndex)
const projectId = await new Promise<string>(resolve => {
terminal.on('key', async (name: string) => {
currentIndex = await handleKeyEvent(name, currentIndex, projects, resolve)
})
})
return projectId
}
示例6: handleSelect
async function handleSelect(selectedIndices: number[], projects: ProjectInfo[], env: SystemEnvironment): Promise<void> {
terminal(`\n\n${deletingProjectWarningMessage}`)
terminal.grabInput(true)
await new Promise(resolve => {
terminal.on('key', function (name) {
if (name !== 'y') {
process.exit(0)
}
terminal.grabInput(false)
resolve()
})
})
const projectIdsToDelete = selectedIndices.reduce((prev: string[], current: number) => {
prev.push(projects[current].projectId)
return prev
}, [])
terminal.restoreCursor()
terminal.eraseDisplayBelow()
terminal.hideCursor(false)
env.out.startSpinner(deletingProjectsMessage(projectIdsToDelete))
try {
await deleteProject(projectIdsToDelete, env.resolver)
env.out.stopSpinner()
env.out.write(deletedProjectMessage(projectIdsToDelete))
} catch (e) {
env.out.stopSpinner()
if (e.errors) {
const errors = parseErrors(e)
const output = generateErrorOutput(errors)
env.out.writeError(`${output}`)
} else {
throw e
}
}
}
示例7: terminate
function terminate() {
term.grabInput(false);
setTimeout(() => {}, 100);
}
示例8: async
export default async (props: PullProps, env: SystemEnvironment): Promise<void> => {
const {resolver, out} = env
try {
const projectId = await getProjectId(props, env)
const projectFile = props.projectFile || graphcoolProjectFileName
const outputPath = props.outputPath || projectFile
const currentVersion = getCurrentVersion(projectFile, resolver)
// warn if the current project file is different from specified project id
if (resolver.exists(graphcoolProjectFileName)) {
const readProjectId = readProjectIdFromProjectFile(resolver, graphcoolProjectFileName)
if (readProjectId && projectId !== readProjectId) {
out.write(differentProjectIdWarningMessage(projectId!, readProjectId))
terminal.grabInput(true)
await new Promise(resolve => {
terminal.on('key', name => {
if (name !== 'y') {
process.exit(0)
}
terminal.grabInput(false)
resolve()
})
})
}
}
if (!props.force && projectFile === outputPath && resolver.exists(projectFile)) {
out.write(warnOverrideProjectFileMessage(projectFile))
terminal.grabInput(true)
await new Promise(resolve => {
terminal.on('key', function (name) {
if (name !== 'y') {
process.exit(0)
}
terminal.grabInput(false)
resolve()
})
})
}
out.startSpinner(`${fetchingProjectDataMessage}`)
const projectInfo = await pullProjectInfo(projectId!, resolver)
out.stopSpinner()
const message = resolver.projectFiles('.').length === 0 ?
pulledInitialProjectFileMessage(outputPath) :
wroteProjectFileMessage(outputPath)
writeProjectFile(projectInfo, resolver, outputPath)
out.write(message)
if (projectInfo.version && currentVersion) {
const shouldDisplayVersionUpdate = parseInt(projectInfo.version!) > parseInt(currentVersion!)
if (shouldDisplayVersionUpdate) {
const message = newVersionMessage(projectInfo.version)
out.write(` ${message}`)
}
}
} catch (e) {
out.stopSpinner()
if (e.errors) {
const errors = parseErrors(e)
const output = generateErrorOutput(errors)
out.writeError(`${output}`)
} else {
throw e
}
}
}