From 7e2c866575834ed220dbd2f18e1d2deefe13da12 Mon Sep 17 00:00:00 2001
From: syuilo <syuilotan@yahoo.co.jp>
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();
+}