dynamodb-admin-vperi-fork
Version:
GUI for DynamoDB. Useful for local development.
60 lines (47 loc) • 1.39 kB
JavaScript
#!/usr/bin/env node
const { ArgumentParser } = require('argparse')
const open = require('open')
const packageJson = require('../package.json')
const { createServer } = require('../lib/backend')
if (process.env.NODE_ENV === 'production') {
const clc = require('cli-color')
console.error(clc.red('Do not run this in production!'))
process.exit(1)
}
const parser = new ArgumentParser({
description: packageJson.description,
})
parser.add_argument('-v', '--version', {
action: 'version',
version: packageJson.version
})
parser.add_argument('-o', '--open', {
action: 'store_true',
help: 'Open server URL in default browser on start',
})
parser.add_argument('-H', '--host', {
type: 'str',
required: false,
help: 'Host to run on (default: undefined)',
})
parser.add_argument('-p', '--port', {
type: 'int',
default: 8001,
help: 'Port to run on (default: 8001)',
})
const args = parser.parse_args()
const app = createServer()
const host = process.env.HOST || args.host
const port = process.env.PORT || args.port
const server = app.listen(port, host)
server.on('listening', () => {
const { address, port } = server.address()
let url = `http://${address}:${port}`
if (!host && address !== '0.0.0.0') {
url += ` (alternatively http://0.0.0.0:${port})`
}
console.log(` dynamodb-admin listening on ${url}`)
if (args.open) {
open(url)
}
})