Skip to content

Commit

Permalink
refactor: migrate complection to ES2015
Browse files Browse the repository at this point in the history
  • Loading branch information
devoto13 committed Mar 15, 2018
1 parent aeb4541 commit a1f4716
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 23 deletions.
42 changes: 22 additions & 20 deletions lib/completion.js
@@ -1,7 +1,9 @@
var CUSTOM = ['']
var BOOLEAN = false
'use strict'

var options = {
const CUSTOM = ['']
const BOOLEAN = false

const options = {
start: {
'--port': CUSTOM,
'--auto-watch': BOOLEAN,
Expand Down Expand Up @@ -30,8 +32,8 @@ var options = {
}
}

var parseEnv = function (argv, env) {
var words = argv.slice(5)
function parseEnv (argv, env) {
const words = argv.slice(5)

return {
words: words,
Expand All @@ -41,19 +43,19 @@ var parseEnv = function (argv, env) {
}
}

var opositeWord = function (word) {
function opositeWord (word) {
if (word.charAt(0) !== '-') {
return null
}

return word.substr(0, 5) === '--no-' ? '--' + word.substr(5) : '--no-' + word.substr(2)
}

var sendCompletionNoOptions = function () {}
function sendCompletionNoOptions () {}

var sendCompletion = function (possibleWords, env) {
var regexp = new RegExp('^' + env.last)
var filteredWords = possibleWords.filter(function (word) {
function sendCompletion (possibleWords, env) {
const regexp = new RegExp('^' + env.last)
const filteredWords = possibleWords.filter(function (word) {
return regexp.test(word) && env.words.indexOf(word) === -1 &&
env.words.indexOf(opositeWord(word)) === -1
})
Expand All @@ -67,13 +69,13 @@ var sendCompletion = function (possibleWords, env) {
})
}

var glob = require('glob')
var globOpts = {
const glob = require('glob')
const globOpts = {
mark: true,
nocase: true
}

var sendCompletionFiles = function (env) {
function sendCompletionFiles (env) {
glob(env.last + '*', globOpts, function (err, files) {
if (err) return console.error(err)

Expand All @@ -85,11 +87,11 @@ var sendCompletionFiles = function (env) {
})
}

var sendCompletionConfirmLast = function (env) {
function sendCompletionConfirmLast (env) {
console.log(env.last)
}

var complete = function (env) {
function complete (env) {
if (env.count === 1) {
if (env.words[0].charAt(0) === '-') {
return sendCompletion(['--help', '--version'], env)
Expand All @@ -103,8 +105,8 @@ var complete = function (env) {
return sendCompletionFiles(env)
}

var cmdOptions = options[env.words[0]]
var previousOption = cmdOptions[env.prev]
const cmdOptions = options[env.words[0]]
const previousOption = cmdOptions[env.prev]

if (!cmdOptions) {
// no completion, wrong command
Expand All @@ -124,14 +126,14 @@ var complete = function (env) {
return sendCompletion(Object.keys(cmdOptions), env)
}

var completion = function () {
function completion () {
if (process.argv[3] === '--') {
return complete(parseEnv(process.argv, process.env))
}

// just print out the karma-completion.sh
var fs = require('graceful-fs')
var path = require('path')
const fs = require('graceful-fs')
const path = require('path')

fs.readFile(path.resolve(__dirname, '../scripts/karma-completion.sh'), 'utf8', function (err, data) {
if (err) return console.error(err)
Expand Down
8 changes: 5 additions & 3 deletions test/unit/completion.spec.js
@@ -1,10 +1,12 @@
var c = require('../../lib/completion')
'use strict'

const c = require('../../lib/completion')

describe('completion', () => {
var completion
let completion

function mockEnv (line) {
var words = line.split(' ')
const words = line.split(' ')

return {
words: words,
Expand Down

0 comments on commit a1f4716

Please sign in to comment.