From 7e2c866575834ed220dbd2f18e1d2deefe13da12 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 7 Jan 2017 22:12:36 +0900 Subject: [PATCH] Validate URLs --- src/config.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/config.ts b/src/config.ts index 2369b709f..d6b1af0e3 100644 --- a/src/config.ts +++ b/src/config.ts @@ -4,6 +4,7 @@ import * as fs from 'fs'; import * as yaml from 'js-yaml'; +import * as isUrl from 'is-url'; /** * ユーザーが設定する必要のある情報 @@ -72,6 +73,10 @@ export default (path: string) => { const mixin: Mixin = {} as Mixin; + // Validate URLs + if (!isUrl(config.url)) urlError(config.url); + if (!isUrl(config.secondary_url)) urlError(config.secondary_url); + config.url = normalizeUrl(config.url); config.secondary_url = normalizeUrl(config.secondary_url); @@ -93,3 +98,8 @@ export default (path: string) => { function normalizeUrl(url: string): string { return url[url.length - 1] === '/' ? url.substr(0, url.length - 1) : url; } + +function urlError(url: string): void { + console.error(`「${url}」は、正しいURLではありません。先頭に http:// または https:// をつけ忘れてないかなど確認してください。`); + process.exit(); +}