Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@doodle/doodle-node-cli / src / prompts / search-doodle-repos.js
Size: Mime:
const inquirer = require('inquirer');
const chalk = require('chalk');
const fuzzy = require('fuzzy');
const open = require('open');
const data = require('../data/repos.json');

inquirer.registerPrompt('autocomplete', require('inquirer-autocomplete-prompt'));

const repoUrls = data.map(repo => repo.name);

function searchRepos(answers, input = '') {
  return new Promise(resolve => {
    setTimeout(() => {
      const fuzzyResult = fuzzy.filter(input, repoUrls);
      resolve(fuzzyResult.map(el => el.original));
    }, 50);
  });
}

function searchDoodleRepos() {
  inquirer
    .prompt([
      {
        type: 'autocomplete',
        name: 'target',
        message: 'What repo do you want to open?',
        suggestOnly: false,
        source: searchRepos,
        pageSize: 4,
      },
    ])
    .then(answers => {
      const entry = data.find(o => o.name === answers.target);

      if (entry && entry.url) {
        console.log(chalk.yellow('Opening url'), entry.url);
        open(entry.url);
      }
    });
}

module.exports = searchDoodleRepos;