npm-check-extras
Version:
CLI app to check for outdated and unused dependencies, and run update/delete action over selected ones
39 lines (38 loc) • 1.2 kB
JavaScript
import * as R from 'ramda';
import { atom, action } from 'nanostores';
import { activate, deactivate } from '../helpers.js';
const $buttons = atom([
{
name: 'check-packages',
isActive: false,
},
{
name: 'update',
isActive: false,
}
]);
const activateByName = action($buttons, 'activateButton', (store, name) => {
const buttons = store.get();
const foundIndex = R.findIndex(R.propEq(name, 'name'), buttons);
if (foundIndex > -1) {
store.set(R.map(R.ifElse(R.propEq(name, 'name'), activate, deactivate), buttons));
}
return store.get();
});
const deactivateByName = action($buttons, 'deactivateButton', (store, name) => {
const buttons = store.get();
const foundIndex = R.findIndex(R.propEq(name, 'name'), buttons);
if (foundIndex > -1) {
store.set(R.map(R.ifElse(R.propEq(name, 'name'), deactivate, activate), buttons));
}
return store.get();
});
const isActive = (name) => {
const buttons = $buttons.get();
return R.any(R.both(R.propEq(true, 'isActive'), R.propEq(name, 'name')), buttons);
};
export const buttonsManager = {
activateByName,
deactivateByName,
isActive,
};