UNPKG

rack-node

Version:

write like human, search like computer

50 lines (49 loc) 1.73 kB
"use strict"; const command_1 = require("@oclif/command"); const CodeTokenProvider_1 = require("./core/CodeTokenProvider"); class RackNode extends command_1.Command { async run() { const { args, flags } = this.parse(RackNode); let score; switch (flags.score.toLowerCase()) { case 'kkc': score = CodeTokenProvider_1.Score.KKC; break; case 'kac': score = CodeTokenProvider_1.Score.KAC; break; default: score = CodeTokenProvider_1.Score.ALL; } const rawQuery = args.query.substr('--query='.length); const result = await new CodeTokenProvider_1.default(rawQuery).recommendApi(score); let message; if (flags.quiet) { message = result.map(([api]) => api).join(' '); } else { message = result.map(([token, score]) => `${token}: ${score}`).join('\n'); } this.log(message); } } RackNode.description = 'write like human, search like computer'; RackNode.flags = { // add --version flag to show CLI version version: command_1.flags.version({ char: 'v' }), help: command_1.flags.help({ char: 'h' }), // flag with a value (-s, --score=VALUE) score: command_1.flags.string({ char: 's', description: 'the scoring to order suggestion', default: 'all', options: ['kac', 'kkc', 'all'], }), quiet: command_1.flags.boolean({ char: 'q', description: 'only list the APIs', default: false, }), }; RackNode.args = [{ name: 'query', required: true }]; module.exports = RackNode;