summaryrefslogtreecommitdiff
path: root/src/server/web/app/init.ts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-03-29 20:32:18 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-03-29 20:32:18 +0900
commitcf33e483f7e6f40e8cbbbc0118a7df70bdaf651f (patch)
tree318279530d3392ee40d91968477fc0e78d5cf0f7 /src/server/web/app/init.ts
parentUpdate .travis.yml (diff)
downloadsharkey-cf33e483f7e6f40e8cbbbc0118a7df70bdaf651f.tar.gz
sharkey-cf33e483f7e6f40e8cbbbc0118a7df70bdaf651f.tar.bz2
sharkey-cf33e483f7e6f40e8cbbbc0118a7df70bdaf651f.zip
整理した
Diffstat (limited to 'src/server/web/app/init.ts')
-rw-r--r--src/server/web/app/init.ts172
1 files changed, 0 insertions, 172 deletions
diff --git a/src/server/web/app/init.ts b/src/server/web/app/init.ts
deleted file mode 100644
index 3e5c38961f..0000000000
--- a/src/server/web/app/init.ts
+++ /dev/null
@@ -1,172 +0,0 @@
-/**
- * App initializer
- */
-
-import Vue from 'vue';
-import VueRouter from 'vue-router';
-import VModal from 'vue-js-modal';
-import * as TreeView from 'vue-json-tree-view';
-import VAnimateCss from 'v-animate-css';
-import Element from 'element-ui';
-import ElementLocaleEn from 'element-ui/lib/locale/lang/en';
-import ElementLocaleJa from 'element-ui/lib/locale/lang/ja';
-
-import App from './app.vue';
-import checkForUpdate from './common/scripts/check-for-update';
-import MiOS, { API } from './common/mios';
-import { version, codename, hostname, lang } from './config';
-
-let elementLocale;
-switch (lang) {
- case 'ja': elementLocale = ElementLocaleJa; break;
- case 'en': elementLocale = ElementLocaleEn; break;
- default: elementLocale = ElementLocaleEn; break;
-}
-
-Vue.use(VueRouter);
-Vue.use(VModal);
-Vue.use(TreeView);
-Vue.use(VAnimateCss);
-Vue.use(Element, { locale: elementLocale });
-
-// Register global directives
-require('./common/views/directives');
-
-// Register global components
-require('./common/views/components');
-require('./common/views/widgets');
-
-// Register global filters
-require('./common/views/filters');
-
-Vue.mixin({
- destroyed(this: any) {
- if (this.$el.parentNode) {
- this.$el.parentNode.removeChild(this.$el);
- }
- }
-});
-
-/**
- * APP ENTRY POINT!
- */
-
-console.info(`Misskey v${version} (${codename})`);
-console.info(
- '%cここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。',
- 'color: red; background: yellow; font-size: 16px; font-weight: bold;');
-
-// BootTimer解除
-window.clearTimeout((window as any).mkBootTimer);
-delete (window as any).mkBootTimer;
-
-if (hostname != 'localhost') {
- document.domain = hostname;
-}
-
-//#region Set lang attr
-const html = document.documentElement;
-html.setAttribute('lang', lang);
-//#endregion
-
-//#region Set description meta tag
-const head = document.getElementsByTagName('head')[0];
-const meta = document.createElement('meta');
-meta.setAttribute('name', 'description');
-meta.setAttribute('content', '%i18n:common.misskey%');
-head.appendChild(meta);
-//#endregion
-
-// iOSでプライベートモードだとlocalStorageが使えないので既存のメソッドを上書きする
-try {
- localStorage.setItem('kyoppie', 'yuppie');
-} catch (e) {
- Storage.prototype.setItem = () => { }; // noop
-}
-
-// クライアントを更新すべきならする
-if (localStorage.getItem('should-refresh') == 'true') {
- localStorage.removeItem('should-refresh');
- location.reload(true);
-}
-
-// MiOSを初期化してコールバックする
-export default (callback: (launch: (router: VueRouter, api?: (os: MiOS) => API) => [Vue, MiOS]) => void, sw = false) => {
- const os = new MiOS(sw);
-
- os.init(() => {
- // アプリ基底要素マウント
- document.body.innerHTML = '<div id="app"></div>';
-
- const launch = (router: VueRouter, api?: (os: MiOS) => API) => {
- os.apis = api ? api(os) : null;
-
- Vue.mixin({
- data() {
- return {
- os,
- api: os.api,
- apis: os.apis
- };
- }
- });
-
- const app = new Vue({
- router,
- created() {
- this.$watch('os.i', i => {
- // キャッシュ更新
- localStorage.setItem('me', JSON.stringify(i));
- }, {
- deep: true
- });
- },
- render: createEl => createEl(App)
- });
-
- os.app = app;
-
- // マウント
- app.$mount('#app');
-
- return [app, os] as [Vue, MiOS];
- };
-
- try {
- callback(launch);
- } catch (e) {
- panic(e);
- }
-
- //#region 更新チェック
- const preventUpdate = localStorage.getItem('preventUpdate') == 'true';
- if (!preventUpdate) {
- setTimeout(() => {
- checkForUpdate(os);
- }, 3000);
- }
- //#endregion
- });
-};
-
-// BSoD
-function panic(e) {
- console.error(e);
-
- // Display blue screen
- document.documentElement.style.background = '#1269e2';
- document.body.innerHTML =
- '<div id="error">'
- + '<h1>:( 致命的な問題が発生しました。</h1>'
- + '<p>お使いのブラウザ(またはOS)のバージョンを更新すると解決する可能性があります。</p>'
- + '<hr>'
- + `<p>エラーコード: ${e.toString()}</p>`
- + `<p>ブラウザ バージョン: ${navigator.userAgent}</p>`
- + `<p>クライアント バージョン: ${version}</p>`
- + '<hr>'
- + '<p>問題が解決しない場合は、上記の情報をお書き添えの上 syuilotan@yahoo.co.jp までご連絡ください。</p>'
- + '<p>Thank you for using Misskey.</p>'
- + '</div>';
-
- // TODO: Report the bug
-}