diff --git a/src/tsconfig.json b/src/tsconfig.json
index 36600eed2..d88432d24 100644
--- a/src/tsconfig.json
+++ b/src/tsconfig.json
@@ -12,7 +12,9 @@
"target": "es2017",
"module": "commonjs",
"removeComments": false,
- "noLib": false
+ "noLib": false,
+ "strict": true,
+ "strictNullChecks": false
},
"compileOnSave": false,
"include": [
diff --git a/src/web/app/common/mios.ts b/src/web/app/common/mios.ts
index 6ee42ea8a..b947e0743 100644
--- a/src/web/app/common/mios.ts
+++ b/src/web/app/common/mios.ts
@@ -4,6 +4,10 @@ import signout from './scripts/signout';
import Progress from './scripts/loading';
import HomeStreamManager from './scripts/streaming/home-stream-manager';
import api from './scripts/api';
+import DriveStreamManager from './scripts/streaming/drive-stream-manager';
+import ServerStreamManager from './scripts/streaming/server-stream-manager';
+import RequestsStreamManager from './scripts/streaming/requests-stream-manager';
+import MessagingIndexStreamManager from './scripts/streaming/messaging-index-stream-manager';
//#region environment variables
declare const _VERSION_: string;
@@ -50,6 +54,16 @@ export default class MiOS extends EventEmitter {
*/
public stream: HomeStreamManager;
+ /**
+ * Connection managers
+ */
+ public streams: {
+ driveStream: DriveStreamManager;
+ serverStream: ServerStreamManager;
+ requestsStream: RequestsStreamManager;
+ messagingIndexStream: MessagingIndexStreamManager;
+ };
+
/**
* A registration of service worker
*/
@@ -69,6 +83,9 @@ export default class MiOS extends EventEmitter {
this.shouldRegisterSw = shouldRegisterSw;
+ this.streams.serverStream = new ServerStreamManager();
+ this.streams.requestsStream = new RequestsStreamManager();
+
//#region BIND
this.log = this.log.bind(this);
this.logInfo = this.logInfo.bind(this);
@@ -79,6 +96,15 @@ export default class MiOS extends EventEmitter {
this.getMeta = this.getMeta.bind(this);
this.registerSw = this.registerSw.bind(this);
//#endregion
+
+ this.once('signedin', () => {
+ // Init home stream manager
+ this.stream = new HomeStreamManager(this.i);
+
+ // Init other stream manager
+ this.streams.driveStream = new DriveStreamManager(this.i);
+ this.streams.messagingIndexStream = new MessagingIndexStreamManager(this.i);
+ });
}
public log(...args) {
@@ -139,8 +165,8 @@ export default class MiOS extends EventEmitter {
// When failure
.catch(() => {
// Render the error screen
- document.body.innerHTML = '';
- riot.mount('*');
+ //document.body.innerHTML = '';
+ //riot.mount('*');
Progress.done();
});
@@ -173,10 +199,7 @@ export default class MiOS extends EventEmitter {
this.i = me;
- // Init home stream manager
- this.stream = this.isSignedin
- ? new HomeStreamManager(this.i)
- : null;
+ this.emit('signedin');
// Finish init
callback();
diff --git a/src/web/app/common/mixins.ts b/src/web/app/common/mixins.ts
deleted file mode 100644
index e9c362593..000000000
--- a/src/web/app/common/mixins.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import * as riot from 'riot';
-
-import MiOS from './mios';
-import ServerStreamManager from './scripts/streaming/server-stream-manager';
-import RequestsStreamManager from './scripts/streaming/requests-stream-manager';
-import MessagingIndexStreamManager from './scripts/streaming/messaging-index-stream-manager';
-import DriveStreamManager from './scripts/streaming/drive-stream-manager';
-
-export default (mios: MiOS) => {
- (riot as any).mixin('os', {
- mios: mios
- });
-
- (riot as any).mixin('i', {
- init: function() {
- this.I = mios.i;
- this.SIGNIN = mios.isSignedin;
-
- if (this.SIGNIN) {
- this.on('mount', () => {
- mios.i.on('updated', this.update);
- });
- this.on('unmount', () => {
- mios.i.off('updated', this.update);
- });
- }
- },
- me: mios.i
- });
-
- (riot as any).mixin('api', {
- api: mios.api
- });
-
- (riot as any).mixin('stream', { stream: mios.stream });
- (riot as any).mixin('drive-stream', { driveStream: new DriveStreamManager(mios.i) });
- (riot as any).mixin('server-stream', { serverStream: new ServerStreamManager() });
- (riot as any).mixin('requests-stream', { requestsStream: new RequestsStreamManager() });
- (riot as any).mixin('messaging-index-stream', { messagingIndexStream: new MessagingIndexStreamManager(mios.i) });
-};
diff --git a/src/web/app/common/tags/time.vue b/src/web/app/common/tags/time.vue
index 0239f5422..7d165fc00 100644
--- a/src/web/app/common/tags/time.vue
+++ b/src/web/app/common/tags/time.vue
@@ -7,23 +7,43 @@
diff --git a/src/web/app/init.ts b/src/web/app/init.ts
index 62bd6949b..4b2a3b868 100644
--- a/src/web/app/init.ts
+++ b/src/web/app/init.ts
@@ -30,21 +30,21 @@ if (_HOST_ != 'localhost') {
document.domain = _HOST_;
}
-{ // Set lang attr
- const html = document.documentElement;
- html.setAttribute('lang', _LANG_);
-}
+//#region Set lang attr
+const html = document.documentElement;
+html.setAttribute('lang', _LANG_);
+//#endregion
-{ // 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);
-}
+//#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
// Set global configuration
-(riot as any).mixin(__CONSTS__);
+//(riot as any).mixin(__CONSTS__);
// iOSでプライベートモードだとlocalStorageが使えないので既存のメソッドを上書きする
try {
diff --git a/tsconfig.json b/tsconfig.json
index a38ff220b..68f6809b9 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -12,7 +12,9 @@
"target": "es2017",
"module": "commonjs",
"removeComments": false,
- "noLib": false
+ "noLib": false,
+ "strict": true,
+ "strictNullChecks": false
},
"compileOnSave": false,
"include": [