opendb_test_rpc
Version:
general purpose library for OpenDB blockchain
60 lines (50 loc) • 1.27 kB
text/typescript
// tslint:disable:no-console no-if-statement no-expression-statement
import meow from 'meow'
import { Package, UpdateInfo, UpdateNotifier } from 'update-notifier'
import { OpenDBiOptions } from './utils'
const cli = meow(
`
Usage
$ npx openDBi
Non-Interactive Usage
$ npx openDBi [options] <input>
Options
--keystore, -k create keystore or recover from keystore
Non-Interactive Example
$ openDBi --k
`,
{
flags: {
keystore: {
alias: 'k',
default: false,
type: 'boolean',
},
},
}
)
export async function checkArgs(): Promise<OpenDBiOptions> {
// immediately check for updates every time we run openDBi
await checkUpdate(cli.pkg)
return {
keystore: cli.flags.keystore,
}
}
export const showHelp = cli.showHelp
async function checkUpdate(pkg: Package) {
const updateInfo = await new Promise<UpdateInfo>((resolve, reject) => {
const notifier = new UpdateNotifier({
callback: (error, update) => {
error ? reject(error) : resolve(update)
},
pkg,
})
notifier.check()
})
if (updateInfo.type !== 'latest') {
throw new Error(`
Your version of openDBi is outdated.
Consider using 'npx openDBi' to always get the latest version.
`)
}
}