Add ability to run app minified

This commit is contained in:
Jerko Steiner 2019-04-15 21:45:03 +12:00
parent f102ff1d70
commit a672aab11d
5 changed files with 48 additions and 2 deletions

View File

@ -2,6 +2,7 @@
app: app:
name: Notify name: Notify
baseUrl: http://localhost:3000/notify baseUrl: http://localhost:3000/notify
assets: []
session: session:
httpsOnly: false httpsOnly: false
secret: secret:

View File

@ -39,9 +39,25 @@ export class Bootstrap implements IBootstrap {
return new Application(this.getConfig(), database) return new Application(this.getConfig(), database)
} }
async exec(command: string = 'listen') {
switch (command) {
case 'listen':
await this.listen()
return
case 'migrate':
await this.migrate()
return
case 'migrate-undo':
await this.migrateUndo()
return
default:
throw new Error('Unknown command: ' + command)
}
}
async listen( async listen(
port: number | string | undefined = process.env.PORT, port: number | string | undefined = process.env.PORT || 3000,
hostname?: string, hostname: string | undefined= process.env.BIND_HOST,
) { ) {
const apiLogger = loggerFactory.getLogger('api') const apiLogger = loggerFactory.getLogger('api')
try { try {
@ -53,6 +69,18 @@ export class Bootstrap implements IBootstrap {
} }
} }
async migrate() {
const connection = await this.database.connect()
await connection.runMigrations()
await connection.close()
}
async migrateUndo() {
const connection = await this.database.connect()
await connection.undoLastMigration()
await connection.close()
}
protected async start( protected async start(
port: number | string | undefined = process.env.PORT, port: number | string | undefined = process.env.PORT,
hostname?: string, hostname?: string,

View File

@ -6,6 +6,7 @@ export interface IConfig {
readonly name: string readonly name: string
readonly baseUrl: UrlWithStringQuery readonly baseUrl: UrlWithStringQuery
readonly context: string readonly context: string
readonly assets: string[]
readonly session: { readonly session: {
readonly name: string readonly name: string
readonly secret: string | string[] readonly secret: string | string[]

View File

@ -9,6 +9,7 @@ const baseUrl = URL.parse(cfg.get('app.baseUrl'))
export const config: IConfig = { export const config: IConfig = {
app: { app: {
name: cfg.get('app.name'), name: cfg.get('app.name'),
assets: cfg.get('app.assets'),
baseUrl, baseUrl,
context: baseUrl.path!, context: baseUrl.path!,
session: { session: {

15
scripts/pack-migrations.js Executable file
View File

@ -0,0 +1,15 @@
const fs = require('fs')
const path = require('path')
const dir = process.argv[2]
const index = fs.readdirSync(dir)
.filter(item => item.endsWith('.ts') && !item.endsWith('index.ts'))
.map(item => item.replace(/\.ts$/, ''))
.sort()
.map(item => `export * from './${item}'\n`)
.reduce((str, item) => str += item, '')
const out = path.join(dir, 'index.ts')
console.log('Writing to %s', out)
fs.writeFileSync(path.join(dir, 'index.ts'), index)