From 6138d7ad92b3eb215981888d989f4e5ecbb3f09a Mon Sep 17 00:00:00 2001 From: Jannis Mattheis Date: Sat, 28 Sep 2019 16:42:15 +0200 Subject: [PATCH] Implicit import interfaces --- ui/src/CurrentUser.ts | 1 + ui/src/application/AppStore.ts | 1 + ui/src/application/Applications.tsx | 1 + ui/src/client/ClientStore.ts | 1 + ui/src/client/Clients.tsx | 1 + ui/src/layout/Layout.tsx | 1 + ui/src/message/Message.tsx | 1 + ui/src/message/Messages.tsx | 1 + ui/src/message/MessagesStore.ts | 1 + ui/src/message/WebSocketStore.ts | 1 + ui/src/message/extras.ts | 2 ++ ui/src/plugin/PluginDetailView.tsx | 1 + ui/src/plugin/PluginStore.ts | 1 + ui/src/plugin/Plugins.tsx | 1 + ui/src/snack/browserNotification.ts | 1 + ui/src/tests/message.test.ts | 1 + ui/src/types.ts | 18 +++++++++--------- ui/src/user/UserStore.ts | 1 + ui/src/user/Users.tsx | 1 + ui/tsconfig.json | 1 + 20 files changed, 29 insertions(+), 9 deletions(-) diff --git a/ui/src/CurrentUser.ts b/ui/src/CurrentUser.ts index 683f9fd..545cf2c 100644 --- a/ui/src/CurrentUser.ts +++ b/ui/src/CurrentUser.ts @@ -4,6 +4,7 @@ import {Base64} from 'js-base64'; import {detect} from 'detect-browser'; import {SnackReporter} from './snack/SnackManager'; import {observable} from 'mobx'; +import {IClient, IUser} from './types'; const tokenKey = 'gotify-login-key'; diff --git a/ui/src/application/AppStore.ts b/ui/src/application/AppStore.ts index e4ae5a4..97916ef 100644 --- a/ui/src/application/AppStore.ts +++ b/ui/src/application/AppStore.ts @@ -3,6 +3,7 @@ import axios from 'axios'; import * as config from '../config'; import {action} from 'mobx'; import {SnackReporter} from '../snack/SnackManager'; +import {IApplication} from '../types'; export class AppStore extends BaseStore { public onDelete: () => void = () => {}; diff --git a/ui/src/application/Applications.tsx b/ui/src/application/Applications.tsx index 2173a50..0f14225 100644 --- a/ui/src/application/Applications.tsx +++ b/ui/src/application/Applications.tsx @@ -20,6 +20,7 @@ import {observable} from 'mobx'; import {inject, Stores} from '../inject'; import * as config from '../config'; import UpdateDialog from './UpdateApplicationDialog'; +import {IApplication} from '../types'; @observer class Applications extends Component> { diff --git a/ui/src/client/ClientStore.ts b/ui/src/client/ClientStore.ts index d259e70..87aebc7 100644 --- a/ui/src/client/ClientStore.ts +++ b/ui/src/client/ClientStore.ts @@ -3,6 +3,7 @@ import axios from 'axios'; import * as config from '../config'; import {action} from 'mobx'; import {SnackReporter} from '../snack/SnackManager'; +import {IClient} from '../types'; export class ClientStore extends BaseStore { public constructor(private readonly snack: SnackReporter) { diff --git a/ui/src/client/Clients.tsx b/ui/src/client/Clients.tsx index c7b7ba9..f803c4c 100644 --- a/ui/src/client/Clients.tsx +++ b/ui/src/client/Clients.tsx @@ -17,6 +17,7 @@ import UpdateDialog from './UpdateClientDialog'; import {observer} from 'mobx-react'; import {observable} from 'mobx'; import {inject, Stores} from '../inject'; +import {IClient} from '../types'; @observer class Clients extends Component> { diff --git a/ui/src/layout/Layout.tsx b/ui/src/layout/Layout.tsx index 9c50646..b784880 100644 --- a/ui/src/layout/Layout.tsx +++ b/ui/src/layout/Layout.tsx @@ -21,6 +21,7 @@ import {observer} from 'mobx-react'; import {observable} from 'mobx'; import {inject, Stores} from '../inject'; import {NetworkLostBanner} from '../common/NetworkLostBanner'; +import {IVersion} from '../types'; const styles = (theme: Theme) => ({ content: { diff --git a/ui/src/message/Message.tsx b/ui/src/message/Message.tsx index 1ef21a6..e4c8f2b 100644 --- a/ui/src/message/Message.tsx +++ b/ui/src/message/Message.tsx @@ -9,6 +9,7 @@ import * as config from '../config'; import {StyleRulesCallback} from '@material-ui/core/styles/withStyles'; import ReactMarkdown from 'react-markdown'; import {RenderMode, contentType} from './extras'; +import {IMessageExtras} from '../types'; const styles: StyleRulesCallback = () => ({ header: { diff --git a/ui/src/message/Messages.tsx b/ui/src/message/Messages.tsx index a6926ad..1dc640b 100644 --- a/ui/src/message/Messages.tsx +++ b/ui/src/message/Messages.tsx @@ -9,6 +9,7 @@ import {observer} from 'mobx-react'; import {inject, Stores} from '../inject'; import {observable} from 'mobx'; import ReactInfinite from 'react-infinite'; +import {IMessage} from '../types'; interface IProps extends RouteComponentProps<{id: string}> {} diff --git a/ui/src/message/MessagesStore.ts b/ui/src/message/MessagesStore.ts index ffc3023..5544f80 100644 --- a/ui/src/message/MessagesStore.ts +++ b/ui/src/message/MessagesStore.ts @@ -4,6 +4,7 @@ import axios, {AxiosResponse} from 'axios'; import * as config from '../config'; import {createTransformer} from 'mobx-utils'; import {SnackReporter} from '../snack/SnackManager'; +import {IApplication, IMessage, IPagedMessages} from '../types'; const AllMessages = -1; diff --git a/ui/src/message/WebSocketStore.ts b/ui/src/message/WebSocketStore.ts index f7747f2..a851f03 100644 --- a/ui/src/message/WebSocketStore.ts +++ b/ui/src/message/WebSocketStore.ts @@ -2,6 +2,7 @@ import {SnackReporter} from '../snack/SnackManager'; import {CurrentUser} from '../CurrentUser'; import * as config from '../config'; import {AxiosError} from 'axios'; +import {IMessage} from '../types'; export class WebSocketStore { private wsActive = false; diff --git a/ui/src/message/extras.ts b/ui/src/message/extras.ts index ceec00f..ec0b0c4 100644 --- a/ui/src/message/extras.ts +++ b/ui/src/message/extras.ts @@ -1,3 +1,5 @@ +import {IMessageExtras} from '../types'; + export enum RenderMode { Markdown = 'text/markdown', Plain = 'text/plain', diff --git a/ui/src/plugin/PluginDetailView.tsx b/ui/src/plugin/PluginDetailView.tsx index 831c348..a1c6206 100644 --- a/ui/src/plugin/PluginDetailView.tsx +++ b/ui/src/plugin/PluginDetailView.tsx @@ -15,6 +15,7 @@ import DefaultPage from '../common/DefaultPage'; import * as config from '../config'; import Container from '../common/Container'; import {inject, Stores} from '../inject'; +import {IPlugin} from '../types'; interface IProps extends RouteComponentProps<{id: string}> {} diff --git a/ui/src/plugin/PluginStore.ts b/ui/src/plugin/PluginStore.ts index 28ec968..0b33d4b 100644 --- a/ui/src/plugin/PluginStore.ts +++ b/ui/src/plugin/PluginStore.ts @@ -3,6 +3,7 @@ import {action} from 'mobx'; import {BaseStore} from '../common/BaseStore'; import * as config from '../config'; import {SnackReporter} from '../snack/SnackManager'; +import {IPlugin} from '../types'; export class PluginStore extends BaseStore { public onDelete: () => void = () => {}; diff --git a/ui/src/plugin/Plugins.tsx b/ui/src/plugin/Plugins.tsx index 62a7efb..5f9ab33 100644 --- a/ui/src/plugin/Plugins.tsx +++ b/ui/src/plugin/Plugins.tsx @@ -13,6 +13,7 @@ import DefaultPage from '../common/DefaultPage'; import ToggleVisibility from '../common/ToggleVisibility'; import {observer} from 'mobx-react'; import {inject, Stores} from '../inject'; +import {IPlugin} from '../types'; @observer class Plugins extends Component> { diff --git a/ui/src/snack/browserNotification.ts b/ui/src/snack/browserNotification.ts index 0210b3e..bc788ba 100644 --- a/ui/src/snack/browserNotification.ts +++ b/ui/src/snack/browserNotification.ts @@ -1,5 +1,6 @@ import Notify from 'notifyjs'; import removeMarkdown from 'remove-markdown'; +import {IMessage} from '../types'; export function requestPermission() { if (Notify.needsPermission && Notify.isSupported()) { diff --git a/ui/src/tests/message.test.ts b/ui/src/tests/message.test.ts index 9b3f5b3..3093fa7 100644 --- a/ui/src/tests/message.test.ts +++ b/ui/src/tests/message.test.ts @@ -5,6 +5,7 @@ import {clickByText, count, innerText, waitForCount, waitForExists} from './util import * as auth from './authentication'; import * as selector from './selector'; import axios from 'axios'; +import {IApplication, IMessage, IMessageExtras} from '../types'; let page: Page; let gotify: GotifyTest; diff --git a/ui/src/types.ts b/ui/src/types.ts index 8bb1de0..537d097 100644 --- a/ui/src/types.ts +++ b/ui/src/types.ts @@ -1,4 +1,4 @@ -interface IApplication { +export interface IApplication { id: number; token: string; name: string; @@ -7,13 +7,13 @@ interface IApplication { internal: boolean; } -interface IClient { +export interface IClient { id: number; token: string; name: string; } -interface IPlugin { +export interface IPlugin { id: number; token: string; name: string; @@ -25,7 +25,7 @@ interface IPlugin { capabilities: Array<'webhooker' | 'displayer' | 'configurer' | 'messenger' | 'storager'>; } -interface IMessage { +export interface IMessage { id: number; appid: number; message: string; @@ -36,29 +36,29 @@ interface IMessage { extras?: IMessageExtras; } -interface IMessageExtras { +export interface IMessageExtras { [key: string]: any; // tslint:disable-line no-any } -interface IPagedMessages { +export interface IPagedMessages { paging: IPaging; messages: IMessage[]; } -interface IPaging { +export interface IPaging { next?: string; since?: number; size: number; limit: number; } -interface IUser { +export interface IUser { id: number; name: string; admin: boolean; } -interface IVersion { +export interface IVersion { version: string; commit: string; buildDate: string; diff --git a/ui/src/user/UserStore.ts b/ui/src/user/UserStore.ts index 1ec5310..8a88c51 100644 --- a/ui/src/user/UserStore.ts +++ b/ui/src/user/UserStore.ts @@ -3,6 +3,7 @@ import axios from 'axios'; import * as config from '../config'; import {action} from 'mobx'; import {SnackReporter} from '../snack/SnackManager'; +import {IUser} from '../types'; export class UserStore extends BaseStore { constructor(private readonly snack: SnackReporter) { diff --git a/ui/src/user/Users.tsx b/ui/src/user/Users.tsx index 1792f17..29fca06 100644 --- a/ui/src/user/Users.tsx +++ b/ui/src/user/Users.tsx @@ -16,6 +16,7 @@ import AddEditDialog from './AddEditUserDialog'; import {observer} from 'mobx-react'; import {observable} from 'mobx'; import {inject, Stores} from '../inject'; +import {IUser} from '../types'; const styles = () => ({ wrapper: { diff --git a/ui/tsconfig.json b/ui/tsconfig.json index 28c0b06..fa4d47b 100644 --- a/ui/tsconfig.json +++ b/ui/tsconfig.json @@ -19,6 +19,7 @@ "noUnusedLocals": true, "allowSyntheticDefaultImports": true, "experimentalDecorators": true + "isolatedModules": true, }, "exclude": [ "node_modules",