UNPKG

@splash-cli/core

Version:

Core of @splash-cli/splash-cli

58 lines (47 loc) 991 B
require('babel-polyfill'); import normalize from 'normalize-url'; import got from 'got'; import chalk from 'chalk'; import Ora from 'ora'; import isMonth from '@splash-cli/is-month'; import printBlock from '@splash-cli/print-block'; import splashError from '@splash-cli/splash-error'; const jparse = JSON.parse; const spinner = new Ora({ text: 'Connecting to UNSPLASH', color: 'yellow', spinner: isMonth('december') ? 'christmas' : 'earth', }); export default async (url, { quiet }) => { url = normalize(url); if (quiet) { spinner.start = () => {}; spinner.stop = () => {}; spinner.fail = () => {}; spinner.succeed = () => {}; } spinner.start(); try { const { body, statusCode, statusMessage } = await got(url); const photo = jparse(body); spinner.text = 'Connected'; spinner.succeed(); return { data: photo, status: { statusCode, statusMessage } }; } catch (err) { spinner.fail(); splashError(err); return err; } }