pipe( ofType(runLock.type), tap(({ payload }) => ipcRenderer.send('npm-init-lock', { ...payload, mode: 'local' }) ), ignoreElements() )
pipe( ofType(addActionError.type), tap(({ payload }) => { const { error } = payload; return error.split('npm ERR!'); }), map(errorsArr => errorsArr.map(errorLine => { const notEmptyLine = errorLine.trim().length > 1; return notEmptyLine && errorLine.indexOf('fatal') > 0 ? errorLine : ''; }) ), ignoreElements() )
}), onOffOperator(ON, OFF), tap(({ payload: { channel, options } }) => ipcRenderer.send(channel, options) ),
const searchEpic = (action$, state$) => action$.pipe( ofType(setPackagesSearchStart.type), tap(({ payload: { channel, options } }) => { const { common: { mode, directory } } = state$.value; ipcRenderer.send( channel, Object.assign({}, options, { mode, directory }) ); }), concatMap(() => [ updateLoader({ loading: true, message: iMessage('info', 'searching') }), clearSelected(), clearCommands(), clearInstallOptions(), ]) )
action$.pipe( ofType(installPackage.type), tap(({ payload }) => { const { name, pkgOptions } = payload; const {
action$.pipe( ofType(installMultiplePackages.type), tap(({ payload }) => {
/** * Send ipc event to main process to handle npm-dedupe */ const npmRunDedupeEpic = (action$, state$) => action$.pipe( ofType(runDedupe.type), tap(({ payload }) => { const { common: { mode, directory } } = state$.value; ipcRenderer.send('npm-dedupe', { ...payload, mode, directory }); }), mergeMap(() => [ updateLoader({ loading: true, message: iMessage('info', 'deduping') })]), )
/** * Uninstall packages * supports global and local mode */ const uninstallPackagesEpic = (action$, state$) => action$.pipe( ofType(uninstallPackages.type), tap(({ payload }) => { const { common: { mode, directory } } = state$.value; ipcRenderer.send( 'npm-uninstall', Object.assign({}, payload, { mode, directory }) ); }), ignoreElements() )
const npmRunAuditEpic = (action$, state$) => action$.pipe( ofType(runAudit.type), tap(({ payload }) => { const { common: { mode, directory } } = state$.value; ipcRenderer.send('npm-audit', { ...payload, mode, directory }); }), ignoreElements() )
pipe( ofType(runInit.type), tap(({ payload }) => ipcRenderer.send('npm-init', { ...payload, mode: 'local' }) ), ignoreElements() )
pipe( ofType(viewPackageStart.type), tap(({ payload: { options } }) => ipcRenderer.send('npm-view', options)), ignoreElements() )
/** * Send ipc event to main process to handle npm-doctor */ const npmRunDoctorEpic = (action$, state$) => action$.pipe( ofType(runDoctor.type), tap(({ payload }) => { const { common: { mode, directory } } = state$.value; ipcRenderer.send('npm-doctor', { ...payload, mode, directory }); }), ignoreElements() )
/** * Update packages * supports global and local mode */ const updatePackagesEpic = (action$, state$) => action$.pipe( ofType(updatePackages.type), tap(({ payload }) => { const { common: { mode, directory } } = state$.value; ipcRenderer.send( 'npm-update', Object.assign({}, payload, { mode, directory }) ); }), ignoreElements() )
/** * Send ipc event to main process to handle npm-install for a single package * supports global and local mode */ const installPackageJsonEpic = (action$, state$) => action$.pipe( ofType(installPackageJson.type), tap(({ payload }) => { const { common: { mode, directory, } } = state$.value; const parameters = { ...payload, mode, directory, packageJson: true }; ipcRenderer.send('npm-install', parameters); }), ignoreElements() )
/** * Send ipc event to main process to handle npm-cache */ const npmRunCacheEpic = (action$, state$) => action$.pipe( ofType(runCache.type), tap(({ payload }) => { const { common: { mode, directory } } = state$.value; ipcRenderer.send('npm-cache', { ...payload, mode, directory }); }), mergeMap(() => [ updateLoader({ loading: true, message: iMessage('info', 'cacheRunning', { '%action%': 'verify' }) })]), )