UNPKG

npm-check-extras

Version:

CLI app to check for outdated and unused dependencies, and run update/delete action over selected ones

63 lines (62 loc) 2.96 kB
import * as R from 'ramda'; import { v4 as uuidv4 } from 'uuid'; import { focusableItemsManager } from './store/focusable-items.js'; import { colors } from './defaults.js'; const getId = () => { return uuidv4(); }; const isAvailableChar = (value) => { if (value === '') return false; const alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; const numbers = '123456789'; const otherChars = '\\/\'"-+=_!@#$%^&*()<?>.,:;{[]}'; const availableChars = `${alphabet}${numbers}${otherChars}`; return availableChars.includes(value); }; const getNextIndex = (current, size) => { return R.ifElse(R.gt(size), R.identity, R.subtract(size))(R.inc(current)); }; const getPreviousIndex = (current, size) => { return R.ifElse(R.lte(0), R.identity, R.add(size))(R.dec(current)); }; const getCommandFromSentence = (sentence) => { if (sentence.includes(' to go')) { return R.compose(R.head, R.split)(' to go', sentence); } if (sentence.includes('age:')) { return R.compose(R.last, R.split)('kage: ', sentence); } return ''; }; const removeUrl = (source) => { /* eslint-disable unicorn/prefer-string-replace-all */ return R.trim(source.replace(/(?:https?|ftp):\/\/[\n\S]+/g, '')); /* eslint-enable unicorn/prefer-string-replace-all */ }; const selectify = R.set(R.lensProp('isSelected'), true); const unselectify = R.set(R.lensProp('isSelected'), false); const activate = R.set(R.lensProp('isActive'), true); const deactivate = R.set(R.lensProp('isActive'), false); const activatePackage = R.set(R.lensProp('isActive'), true); const deactivatePackage = R.set(R.lensProp('isActive'), false); const activateOptionItem = R.set(R.lensProp('isActive'), true); const deactivateOptionItem = R.set(R.lensProp('isActive'), false); const toggleActionItem = R.over(R.lensProp('isSelected'), R.not); const selectAction = R.set(R.lensProp('isSelected'), true); const unselectAction = R.set(R.lensProp('isSelected'), false); const getSelected = R.filter(value => R.equals(true, value)); const markInView = R.set(R.lensProp('inView'), true); const unmarkInView = R.set(R.lensProp('inView'), false); const getButtonColor = (name) => focusableItemsManager.isActive(name) ? colors.activeButton.color : colors.button.color; const getButtonBgColor = (name) => focusableItemsManager.isActive(name) ? colors.activeButton.bg : colors.button.bg; const getPanelColor = (result) => (result ? 'green' : 'grey'); const operationCountsMapping = { update: 'Updated', delete: 'Deleted', }; export { getId, isAvailableChar, getCommandFromSentence, removeUrl, selectify, unselectify, activate, deactivate, activateOptionItem, deactivateOptionItem, toggleActionItem, getSelected, getButtonColor, getButtonBgColor, activatePackage, deactivatePackage, getNextIndex, getPreviousIndex, selectAction, unselectAction, getPanelColor, markInView, unmarkInView, operationCountsMapping, };