diff --git a/gulpfile.ts b/gulpfile.ts index 3be636fa90..b08a517805 100644 --- a/gulpfile.ts +++ b/gulpfile.ts @@ -36,9 +36,9 @@ if (!fs.existsSync('./.config/config.yml')) { process.exit(); } +(global as any).MISSKEY_CONFIG_PATH = '.config/config.yml'; import { IConfig } from './src/config'; -const config = eval(require('typescript').transpile(require('fs').readFileSync('./src/config.ts').toString())) - ('.config/config.yml') as IConfig; +const config = eval(require('typescript').transpile(require('fs').readFileSync('./src/config.ts').toString())) as IConfig; const tsProject = ts.createProject('tsconfig.json'); diff --git a/src/config.ts b/src/config.ts index 7c6ecaab25..916aaab580 100644 --- a/src/config.ts +++ b/src/config.ts @@ -62,12 +62,10 @@ interface Mixin { export type IConfig = ISource & Mixin; -/** - * 設定を取得します - * @param {string} path 設定ファイルのパス - * @return {IConfig} 設定 - */ -export default (path: string) => { +export default load(); + +function load() { + const path = (global as any).MISSKEY_CONFIG_PATH ? (global as any).MISSKEY_CONFIG_PATH : `${__dirname}/../.config/config.yml`; const config = yaml.safeLoad(fs.readFileSync(path, 'utf8')) as ISource; const mixin: Mixin = {} as Mixin; @@ -90,14 +88,14 @@ export default (path: string) => { mixin.dev_url = `${mixin.scheme}://dev.${mixin.host}`; mixin.drive_url = `${mixin.secondary_scheme}://file.${mixin.secondary_host}`; - return Object.assign(config || {}, mixin) as IConfig; -}; + return Object.assign(config, mixin); +} -function normalizeUrl(url: string): string { +function normalizeUrl(url: string) { return url[url.length - 1] === '/' ? url.substr(0, url.length - 1) : url; } -function urlError(url: string): void { +function urlError(url: string) { console.error(`「${url}」は、正しいURLではありません。先頭に http:// または https:// をつけ忘れてないかなど確認してください。`); process.exit(); } diff --git a/src/globals.d.ts b/src/globals.d.ts deleted file mode 100644 index 0af8362122..0000000000 --- a/src/globals.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import * as mongodb from 'mongodb'; -import { IConfig } from './config'; - -declare var config: IConfig; - -declare module NodeJS { - interface Global { - config: IConfig; - db: mongodb.Db; - } -} diff --git a/src/server.ts b/src/server.ts index bff4b86bce..1a7d8e59b0 100644 --- a/src/server.ts +++ b/src/server.ts @@ -8,6 +8,8 @@ import * as https from 'https'; import * as express from 'express'; import vhost = require('vhost'); +import config from './config'; + /** * Init app */