From ab8e49c27251dcadf00f9355c432a08f88492cc5 Mon Sep 17 00:00:00 2001 From: Nick Van Doorn Date: Sun, 9 Dec 2018 23:16:50 -0800 Subject: Validate config & pass in rootDir --- bin/index.ts | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/bin/index.ts b/bin/index.ts index 54ded03..4ec7b69 100644 --- a/bin/index.ts +++ b/bin/index.ts @@ -1,13 +1,24 @@ import fs from 'fs' import process from 'process' -import { Config } from '../src/models/config.model' +import { Config, validateConfig } from '../src/models/config.model' import { Context } from '../src/models/context.model' import { testRunner } from '../src/test-runner' - -const config: Config = JSON.parse(fs.readFileSync(`${__dirname}/config.json`)) -const ctx: Context = { - isTestMode: process.env.NODE_ENV === 'production', - logger: console.log, - config -} -testRunner(ctx) +;(async () => { + const config: Config = require('./config.json') + const errors = await validateConfig(config) + const isValid = errors.length <= 0 + if (!isValid) { + console.error('Invalid configuration:') + for (let err of errors) { + console.error(err) + } + process.exit(1) + } + const ctx: Context = { + isTestMode: process.env.NODE_ENV === 'production', + logger: console.log, + rootDir: __dirname, + config + } + testRunner(ctx) +})() -- cgit v1.2.3