UNPKG

@wallerbuilt/vaq

Version:

A cli for managing vim plugins through vim-plug

64 lines (55 loc) 1.4 kB
/* eslint-disable camelcase */ const axios = require('axios') const { Spinner } = require('clui') const { errorMsg } = require('./colorStates') // vim awesome api const API = 'https://vimawesome.com/api/plugins' const fetchPluginData = (pageNum = 1, query = '') => { const status = new Spinner('fetching...') status.start() return axios .get(`${API}?page=${pageNum}&query=${query}`) .then((res) => { status.stop() return res.data }) .catch((err) => { status.stop() errorMsg(err) }) } // example: plugin -> vim-surround const fetchPluginDetails = (plugin) => { const status = new Spinner(`fetching details for ${plugin}`) status.start() return axios .get(`${API}/${plugin}`) .then((res) => { status.stop() const { author, github_homepage, github_stars, github_short_desc, github_url } = res.data return { author, homepage: github_homepage, 'github stars': github_stars, description: github_short_desc, 'github url': github_url } }) .catch((err) => { status.stop() errorMsg(err) }) } const fetchAllPlugins = async () => await fetchPluginData() const queryPlugins = async ({ query }) => await fetchPluginData(1, query) module.exports = { fetchAllPlugins, fetchPluginDetails, queryPlugins }