UNPKG

30s

Version:

A command-line application for 30 seconds of code snippets

72 lines (54 loc) 2.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.printSnippet = exports.colorizedPrint = void 0; var _markedTerminal = _interopRequireDefault(require("marked-terminal")); var _chalk = _interopRequireDefault(require("chalk")); var _marked = _interopRequireDefault(require("marked")); var _ramda = require("ramda"); var _cliHighlight = require("cli-highlight"); var _clipboardy = require("clipboardy"); var _helpers = require("./helpers"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } _marked.default.setOptions({ renderer: new _markedTerminal.default() }); const colorizedPrint = x => { const printMap = { code: y => (0, _cliHighlight.highlight)(y, { language: 'javascript' }), description: y => (0, _helpers.enforceSingleNewLine)((0, _marked.default)(y)), example: y => (0, _cliHighlight.highlight)(y, { language: 'javascript' }), id: y => _chalk.default.magenta.bold(y), tags: (0, _ramda.compose)(_chalk.default.gray.italic, (0, _ramda.join)(', ')) }; const print = y => (0, _ramda.compose)((0, _ramda.replace)(/\n$/, ''), (0, _ramda.join)('\n'), (0, _ramda.map)(([k, v]) => printMap[k](v) + (k === 'id' ? '' : '\n')), _ramda.toPairs)(y); return (0, _ramda.compose)((0, _ramda.join)('\n\n'), (0, _ramda.map)(print))(x); }; exports.colorizedPrint = colorizedPrint; const printSnippet = ({ cp, layout, json }, x) => { const arr = (0, _ramda.is)(Array, x) ? x : [x]; const layoutMap = { c: 'code', d: 'description', e: 'example', i: 'id', t: 'tags' }; const keysByLayout = (0, _ramda.map)(k => layoutMap[k])(Array.from(layout)); if (x == null) return ''; if (cp) { (0, _clipboardy.writeSync)((0, _ramda.compose)((0, _ramda.join)('\n'), (0, _ramda.map)((0, _ramda.prop)('code')))(arr)); } const pickedSnippet = (0, _ramda.map)((0, _ramda.pick)(keysByLayout))(arr); return (0, _ramda.compose)(console.log, json ? JSON.stringify : colorizedPrint)(pickedSnippet); }; exports.printSnippet = printSnippet;