Implicit import interfaces

This commit is contained in:
Jannis Mattheis 2019-09-28 16:42:15 +02:00
parent f92f5e6f4c
commit 6138d7ad92
20 changed files with 29 additions and 9 deletions

View File

@ -4,6 +4,7 @@ import {Base64} from 'js-base64';
import {detect} from 'detect-browser'; import {detect} from 'detect-browser';
import {SnackReporter} from './snack/SnackManager'; import {SnackReporter} from './snack/SnackManager';
import {observable} from 'mobx'; import {observable} from 'mobx';
import {IClient, IUser} from './types';
const tokenKey = 'gotify-login-key'; const tokenKey = 'gotify-login-key';

View File

@ -3,6 +3,7 @@ import axios from 'axios';
import * as config from '../config'; import * as config from '../config';
import {action} from 'mobx'; import {action} from 'mobx';
import {SnackReporter} from '../snack/SnackManager'; import {SnackReporter} from '../snack/SnackManager';
import {IApplication} from '../types';
export class AppStore extends BaseStore<IApplication> { export class AppStore extends BaseStore<IApplication> {
public onDelete: () => void = () => {}; public onDelete: () => void = () => {};

View File

@ -20,6 +20,7 @@ import {observable} from 'mobx';
import {inject, Stores} from '../inject'; import {inject, Stores} from '../inject';
import * as config from '../config'; import * as config from '../config';
import UpdateDialog from './UpdateApplicationDialog'; import UpdateDialog from './UpdateApplicationDialog';
import {IApplication} from '../types';
@observer @observer
class Applications extends Component<Stores<'appStore'>> { class Applications extends Component<Stores<'appStore'>> {

View File

@ -3,6 +3,7 @@ import axios from 'axios';
import * as config from '../config'; import * as config from '../config';
import {action} from 'mobx'; import {action} from 'mobx';
import {SnackReporter} from '../snack/SnackManager'; import {SnackReporter} from '../snack/SnackManager';
import {IClient} from '../types';
export class ClientStore extends BaseStore<IClient> { export class ClientStore extends BaseStore<IClient> {
public constructor(private readonly snack: SnackReporter) { public constructor(private readonly snack: SnackReporter) {

View File

@ -17,6 +17,7 @@ import UpdateDialog from './UpdateClientDialog';
import {observer} from 'mobx-react'; import {observer} from 'mobx-react';
import {observable} from 'mobx'; import {observable} from 'mobx';
import {inject, Stores} from '../inject'; import {inject, Stores} from '../inject';
import {IClient} from '../types';
@observer @observer
class Clients extends Component<Stores<'clientStore'>> { class Clients extends Component<Stores<'clientStore'>> {

View File

@ -21,6 +21,7 @@ import {observer} from 'mobx-react';
import {observable} from 'mobx'; import {observable} from 'mobx';
import {inject, Stores} from '../inject'; import {inject, Stores} from '../inject';
import {NetworkLostBanner} from '../common/NetworkLostBanner'; import {NetworkLostBanner} from '../common/NetworkLostBanner';
import {IVersion} from '../types';
const styles = (theme: Theme) => ({ const styles = (theme: Theme) => ({
content: { content: {

View File

@ -9,6 +9,7 @@ import * as config from '../config';
import {StyleRulesCallback} from '@material-ui/core/styles/withStyles'; import {StyleRulesCallback} from '@material-ui/core/styles/withStyles';
import ReactMarkdown from 'react-markdown'; import ReactMarkdown from 'react-markdown';
import {RenderMode, contentType} from './extras'; import {RenderMode, contentType} from './extras';
import {IMessageExtras} from '../types';
const styles: StyleRulesCallback = () => ({ const styles: StyleRulesCallback = () => ({
header: { header: {

View File

@ -9,6 +9,7 @@ import {observer} from 'mobx-react';
import {inject, Stores} from '../inject'; import {inject, Stores} from '../inject';
import {observable} from 'mobx'; import {observable} from 'mobx';
import ReactInfinite from 'react-infinite'; import ReactInfinite from 'react-infinite';
import {IMessage} from '../types';
interface IProps extends RouteComponentProps<{id: string}> {} interface IProps extends RouteComponentProps<{id: string}> {}

View File

@ -4,6 +4,7 @@ import axios, {AxiosResponse} from 'axios';
import * as config from '../config'; import * as config from '../config';
import {createTransformer} from 'mobx-utils'; import {createTransformer} from 'mobx-utils';
import {SnackReporter} from '../snack/SnackManager'; import {SnackReporter} from '../snack/SnackManager';
import {IApplication, IMessage, IPagedMessages} from '../types';
const AllMessages = -1; const AllMessages = -1;

View File

@ -2,6 +2,7 @@ import {SnackReporter} from '../snack/SnackManager';
import {CurrentUser} from '../CurrentUser'; import {CurrentUser} from '../CurrentUser';
import * as config from '../config'; import * as config from '../config';
import {AxiosError} from 'axios'; import {AxiosError} from 'axios';
import {IMessage} from '../types';
export class WebSocketStore { export class WebSocketStore {
private wsActive = false; private wsActive = false;

View File

@ -1,3 +1,5 @@
import {IMessageExtras} from '../types';
export enum RenderMode { export enum RenderMode {
Markdown = 'text/markdown', Markdown = 'text/markdown',
Plain = 'text/plain', Plain = 'text/plain',

View File

@ -15,6 +15,7 @@ import DefaultPage from '../common/DefaultPage';
import * as config from '../config'; import * as config from '../config';
import Container from '../common/Container'; import Container from '../common/Container';
import {inject, Stores} from '../inject'; import {inject, Stores} from '../inject';
import {IPlugin} from '../types';
interface IProps extends RouteComponentProps<{id: string}> {} interface IProps extends RouteComponentProps<{id: string}> {}

View File

@ -3,6 +3,7 @@ import {action} from 'mobx';
import {BaseStore} from '../common/BaseStore'; import {BaseStore} from '../common/BaseStore';
import * as config from '../config'; import * as config from '../config';
import {SnackReporter} from '../snack/SnackManager'; import {SnackReporter} from '../snack/SnackManager';
import {IPlugin} from '../types';
export class PluginStore extends BaseStore<IPlugin> { export class PluginStore extends BaseStore<IPlugin> {
public onDelete: () => void = () => {}; public onDelete: () => void = () => {};

View File

@ -13,6 +13,7 @@ import DefaultPage from '../common/DefaultPage';
import ToggleVisibility from '../common/ToggleVisibility'; import ToggleVisibility from '../common/ToggleVisibility';
import {observer} from 'mobx-react'; import {observer} from 'mobx-react';
import {inject, Stores} from '../inject'; import {inject, Stores} from '../inject';
import {IPlugin} from '../types';
@observer @observer
class Plugins extends Component<Stores<'pluginStore'>> { class Plugins extends Component<Stores<'pluginStore'>> {

View File

@ -1,5 +1,6 @@
import Notify from 'notifyjs'; import Notify from 'notifyjs';
import removeMarkdown from 'remove-markdown'; import removeMarkdown from 'remove-markdown';
import {IMessage} from '../types';
export function requestPermission() { export function requestPermission() {
if (Notify.needsPermission && Notify.isSupported()) { if (Notify.needsPermission && Notify.isSupported()) {

View File

@ -5,6 +5,7 @@ import {clickByText, count, innerText, waitForCount, waitForExists} from './util
import * as auth from './authentication'; import * as auth from './authentication';
import * as selector from './selector'; import * as selector from './selector';
import axios from 'axios'; import axios from 'axios';
import {IApplication, IMessage, IMessageExtras} from '../types';
let page: Page; let page: Page;
let gotify: GotifyTest; let gotify: GotifyTest;

View File

@ -1,4 +1,4 @@
interface IApplication { export interface IApplication {
id: number; id: number;
token: string; token: string;
name: string; name: string;
@ -7,13 +7,13 @@ interface IApplication {
internal: boolean; internal: boolean;
} }
interface IClient { export interface IClient {
id: number; id: number;
token: string; token: string;
name: string; name: string;
} }
interface IPlugin { export interface IPlugin {
id: number; id: number;
token: string; token: string;
name: string; name: string;
@ -25,7 +25,7 @@ interface IPlugin {
capabilities: Array<'webhooker' | 'displayer' | 'configurer' | 'messenger' | 'storager'>; capabilities: Array<'webhooker' | 'displayer' | 'configurer' | 'messenger' | 'storager'>;
} }
interface IMessage { export interface IMessage {
id: number; id: number;
appid: number; appid: number;
message: string; message: string;
@ -36,29 +36,29 @@ interface IMessage {
extras?: IMessageExtras; extras?: IMessageExtras;
} }
interface IMessageExtras { export interface IMessageExtras {
[key: string]: any; // tslint:disable-line no-any [key: string]: any; // tslint:disable-line no-any
} }
interface IPagedMessages { export interface IPagedMessages {
paging: IPaging; paging: IPaging;
messages: IMessage[]; messages: IMessage[];
} }
interface IPaging { export interface IPaging {
next?: string; next?: string;
since?: number; since?: number;
size: number; size: number;
limit: number; limit: number;
} }
interface IUser { export interface IUser {
id: number; id: number;
name: string; name: string;
admin: boolean; admin: boolean;
} }
interface IVersion { export interface IVersion {
version: string; version: string;
commit: string; commit: string;
buildDate: string; buildDate: string;

View File

@ -3,6 +3,7 @@ import axios from 'axios';
import * as config from '../config'; import * as config from '../config';
import {action} from 'mobx'; import {action} from 'mobx';
import {SnackReporter} from '../snack/SnackManager'; import {SnackReporter} from '../snack/SnackManager';
import {IUser} from '../types';
export class UserStore extends BaseStore<IUser> { export class UserStore extends BaseStore<IUser> {
constructor(private readonly snack: SnackReporter) { constructor(private readonly snack: SnackReporter) {

View File

@ -16,6 +16,7 @@ import AddEditDialog from './AddEditUserDialog';
import {observer} from 'mobx-react'; import {observer} from 'mobx-react';
import {observable} from 'mobx'; import {observable} from 'mobx';
import {inject, Stores} from '../inject'; import {inject, Stores} from '../inject';
import {IUser} from '../types';
const styles = () => ({ const styles = () => ({
wrapper: { wrapper: {

View File

@ -19,6 +19,7 @@
"noUnusedLocals": true, "noUnusedLocals": true,
"allowSyntheticDefaultImports": true, "allowSyntheticDefaultImports": true,
"experimentalDecorators": true "experimentalDecorators": true
"isolatedModules": true,
}, },
"exclude": [ "exclude": [
"node_modules", "node_modules",