All files autocomplete.js

100% Statements 14/14
100% Branches 6/6
100% Functions 2/2
100% Lines 13/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33    2x   5x 1x     4x 4x   4x 3x 1x     4x 1x     3x           3x     2x      
"use strict";
 
const autocomplete = ({ choices, filter }) => {
  // exact match
  if (choices[filter]) {
    return Promise.resolve(filter);
  }
 
  let keys = Object.keys(choices);
  let message = "npm run";
 
  if (filter) {
    keys = keys.filter(item => item.includes(filter));
    message += ` (filter: ${filter})`;
  }
 
  if (!keys.length) {
    throw new Error("No scripts available");
  }
 
  const prompt = new (require("enquirer")).AutoComplete({
    name: "NPM scripts",
    message,
    choices: keys
  });
 
  return prompt.run();
};
 
module.exports = {
  autocomplete
};