import { log, Command, t } from '../common'; type P = t.ICommandProps; export const DEFAULT = { DB: 'nedb:tmp/db-1.db', }; /** * Sample commands. */ export const root = Command.create

('root', e => null) .add('db', e => { const param = e.param(0, 'db-1'); const name = typeof param === 'number' ? `db-${param}` : param; const kind = e.param(1, 'nedb'); const db = `${kind}:tmp/${name}`; log.info(db); e.props.db(db).dispose(); e.props.next({ current: db }); }) .add('get', async e => { const db = e.props.current; const res = await db.get(e.param(0) || 'foo'); log.info('GET', res); }) .add('find', async e => { const db = e.props.current; const pattern = e.param(0, '**'); const res = await db.find(pattern); log.info('\nFIND', res); if (e.props.state.current) { const databases = { ...(e.props.state.databases || {}), [e.props.state.current]: res.map }; e.props.next({ databases }); } }) .add('put', e => { const db = e.props.current; db.put(e.param(0) || 'foo', e.param(1)); }) .add('putMany', async e => { const db = e.props.current; const value = e.param(0); const res = await db.putMany([ { key: 'foo', value }, { key: 'bar', value }, { key: 'baz', value }, ]); log.info('putMany', res); }) .add('delete', e => { const db = e.props.current; db.delete(e.param(0) || 'foo'); }) .add('delete-all', async e => { const db = e.props.current; const all = await db.find('**'); console.log('all', all); const res = await db.deleteMany(all.keys); log.info('deleted', res); }) .add('open-folder', e => { const db = e.props.state.current || ''; e.props.ipc.send('DB/open/folder', { conn: db }); });