From 7092103594f80606f3411325506e8c8249e2eb0a Mon Sep 17 00:00:00 2001 From: Stefan Werfling Date: Mon, 8 Apr 2024 09:48:23 +0200 Subject: [PATCH] #55 change tsconfig to strict, update code --- frontend/src/inc/Api/GatewayIdentifier.ts | 7 +++++ frontend/src/inc/Api/IpAccess.ts | 7 +++++ frontend/src/inc/Api/Response/Response.ts | 6 +++- frontend/src/inc/Api/Settings.ts | 7 +++++ frontend/src/inc/Api/Ssl.ts | 6 ++++ frontend/src/inc/Api/UpnpNat.ts | 7 +++++ frontend/src/inc/Api/User.ts | 7 +++++ frontend/src/inc/Pages/Dashboard.ts | 29 +++++++++++++------ .../Dashboard/DashboardIpBlacklistModal.ts | 2 +- .../src/inc/Pages/Dashboard/DashboardMapIp.ts | 18 +++++++++++- frontend/src/inc/Pages/DnsResolver.ts | 2 +- frontend/src/inc/Pages/Domains.ts | 12 +++++--- .../src/inc/Pages/Domains/DomainEditModal.ts | 2 +- .../Pages/Domains/DomainRecordEditModal.ts | 2 +- .../DynDnsClient/DynDnsClientEditModal.ts | 2 +- frontend/src/inc/Pages/DynDnsClients.ts | 4 +-- frontend/src/inc/Pages/DynDnsServer.ts | 4 +-- .../DynDnsServer/DynDnsServerEditModal.ts | 2 +- frontend/src/inc/Pages/Gateway.ts | 8 ++--- .../src/inc/Pages/Gateway/GatewayEditModal.ts | 2 +- frontend/src/inc/Pages/IpAccess.ts | 12 ++++---- .../IpAccess/IpAccessBlacklistImportModal.ts | 2 +- .../IpAccess/IpAccessBlacklistOwnModal.ts | 2 +- .../Pages/IpAccess/IpAccessWhitelistModal.ts | 2 +- frontend/src/inc/Pages/Listens.ts | 8 ++--- .../src/inc/Pages/Listens/ListensEditModal.ts | 2 +- frontend/src/inc/Pages/Routes.ts | 27 ++++++++++++----- .../inc/Pages/Routes/RouteHttpEditModal.ts | 2 +- .../inc/Pages/Routes/RouteStreamEditModal.ts | 2 +- frontend/src/inc/Pages/Settings.ts | 4 +-- frontend/src/inc/Pages/UpnpNat.ts | 8 ++--- .../src/inc/Pages/UpnpNat/UpnpNatEditModal.ts | 2 +- frontend/src/inc/Pages/Users.ts | 8 ++--- .../src/inc/Pages/Users/UsersEditModal.ts | 2 +- frontend/tsconfig.json | 10 ++++--- 35 files changed, 160 insertions(+), 69 deletions(-) diff --git a/frontend/src/inc/Api/GatewayIdentifier.ts b/frontend/src/inc/Api/GatewayIdentifier.ts index 14d9cb05..13ae1a53 100644 --- a/frontend/src/inc/Api/GatewayIdentifier.ts +++ b/frontend/src/inc/Api/GatewayIdentifier.ts @@ -4,7 +4,9 @@ import { SchemaDefaultReturn, SchemaGatewayIdentifierListResponse } from 'flyingfish_schemas'; +import {Vts} from 'vts'; import {NetFetch} from '../Net/NetFetch'; +import {UnknownResponse} from './Error/UnknownResponse'; /** * GatewayIdentifier @@ -16,6 +18,11 @@ export class GatewayIdentifier { */ public static async getList(): Promise { const result = await NetFetch.getData('/json/gatewayidentifier/list', SchemaGatewayIdentifierListResponse); + + if (Vts.isUndefined(result.data)) { + throw new UnknownResponse('Gateway identifier return empty list!'); + } + return result.data; } diff --git a/frontend/src/inc/Api/IpAccess.ts b/frontend/src/inc/Api/IpAccess.ts index 2f0275b0..7b2d84ef 100644 --- a/frontend/src/inc/Api/IpAccess.ts +++ b/frontend/src/inc/Api/IpAccess.ts @@ -18,7 +18,9 @@ import { SchemaIpAccessWhiteListResponse, SchemaIpAccessWhiteSaveResponse } from 'flyingfish_schemas'; +import {Vts} from 'vts'; import {NetFetch} from '../Net/NetFetch'; +import {UnknownResponse} from './Error/UnknownResponse'; /** * BlacklistCategory @@ -59,6 +61,11 @@ export class IpAccess { */ public static async getMaintainerList(): Promise { const result = await NetFetch.getData('/json/ipaccess/maintainer/list', SchemaIpAccessMaintainerResponse); + + if (Vts.isUndefined(result.list)) { + throw new UnknownResponse('IP Access maintainer return empty list!'); + } + return result.list; } diff --git a/frontend/src/inc/Api/Response/Response.ts b/frontend/src/inc/Api/Response/Response.ts index 7e9ae91f..30fcf8ec 100644 --- a/frontend/src/inc/Api/Response/Response.ts +++ b/frontend/src/inc/Api/Response/Response.ts @@ -1,5 +1,5 @@ import {DefaultReturn, StatusCodes} from 'flyingfish_schemas'; -import {Schema, SchemaErrors} from 'vts'; +import {Schema, SchemaErrors, Vts} from 'vts'; import {InternalError} from '../Error/InternalError'; import {SchemaError} from '../Error/SchemaError'; import {UnauthorizedError} from '../Error/UnauthorizedError'; @@ -47,6 +47,10 @@ export class Response { throw new UnauthorizedError(); case StatusCodes.INTERNAL_ERROR: + if (Vts.isUndefined(data.msg)) { + throw new InternalError(''); + } + throw new InternalError(data.msg); } } diff --git a/frontend/src/inc/Api/Settings.ts b/frontend/src/inc/Api/Settings.ts index 711012ba..5d258980 100644 --- a/frontend/src/inc/Api/Settings.ts +++ b/frontend/src/inc/Api/Settings.ts @@ -1,5 +1,7 @@ import {SchemaDefaultReturn, SchemaSettingsResponse, SettingsList} from 'flyingfish_schemas'; +import {Vts} from 'vts'; import {NetFetch} from '../Net/NetFetch'; +import {UnknownResponse} from './Error/UnknownResponse'; /** * Settings @@ -11,6 +13,11 @@ export class Settings { */ public static async getSettings(): Promise { const result = await NetFetch.getData('/json/settings/list', SchemaSettingsResponse); + + if (Vts.isUndefined(result.list)) { + throw new UnknownResponse('Settings return empty list!'); + } + return result.list; } diff --git a/frontend/src/inc/Api/Ssl.ts b/frontend/src/inc/Api/Ssl.ts index 59f737bb..e6c348c8 100644 --- a/frontend/src/inc/Api/Ssl.ts +++ b/frontend/src/inc/Api/Ssl.ts @@ -4,7 +4,9 @@ import { SslDetails, SslProvidersResponse } from 'flyingfish_schemas'; +import {Vts} from 'vts'; import {NetFetch} from '../Net/NetFetch'; +import {UnknownResponse} from './Error/UnknownResponse'; /** * Ssl @@ -26,6 +28,10 @@ export class Ssl { public static async getCertDetails(httpid: number): Promise { const resultContent = await NetFetch.postData('/json/ssl/cert/details', {httpid}, SchemaSslDetailsResponse); + if (Vts.isUndefined(resultContent.details)) { + throw new UnknownResponse('Ssl cert return empty details!'); + } + return resultContent.details; } diff --git a/frontend/src/inc/Api/UpnpNat.ts b/frontend/src/inc/Api/UpnpNat.ts index 98118ac2..a25da63e 100644 --- a/frontend/src/inc/Api/UpnpNat.ts +++ b/frontend/src/inc/Api/UpnpNat.ts @@ -4,7 +4,9 @@ import { UpnpNatDeleteRequest, UpnpNatGatwayInfo, UpnpNatPort, UpnpNatSaveRequest } from 'flyingfish_schemas'; +import {Vts} from 'vts'; import {NetFetch} from '../Net/NetFetch'; +import {UnknownResponse} from './Error/UnknownResponse'; /** * NatStatuts @@ -33,6 +35,11 @@ export class UpnpNat { */ public static async getCurrentGatewayInfo(): Promise { const result = await NetFetch.getData('/json/upnpnat/current_gateway_info', SchemaUpnpNatCurrentGatwayInfoResponse); + + if (Vts.isUndefined(result.data)) { + throw new UnknownResponse('UpnpNat current gateway return empty info!'); + } + return result.data; } diff --git a/frontend/src/inc/Api/User.ts b/frontend/src/inc/Api/User.ts index 10a3797c..6479fc31 100644 --- a/frontend/src/inc/Api/User.ts +++ b/frontend/src/inc/Api/User.ts @@ -6,7 +6,9 @@ import { UserEntry, UserInfo } from 'flyingfish_schemas'; +import {Vts} from 'vts'; import {NetFetch} from '../Net/NetFetch'; +import {UnknownResponse} from './Error/UnknownResponse'; /** * User @@ -18,6 +20,11 @@ export class User { */ public static async getUserInfo(): Promise { const result = await NetFetch.getData('/json/user/info', SchemaUserInfoResponse); + + if (Vts.isUndefined(result.data)) { + throw new UnknownResponse('User return empty info!'); + } + return result.data; } diff --git a/frontend/src/inc/Pages/Dashboard.ts b/frontend/src/inc/Pages/Dashboard.ts index 3d8fc354..f7b4e427 100644 --- a/frontend/src/inc/Pages/Dashboard.ts +++ b/frontend/src/inc/Pages/Dashboard.ts @@ -17,6 +17,7 @@ import { SwitchTimer, Tooltip, TooltipInfo } from 'bambooo'; import moment from 'moment/moment'; +import {Vts} from 'vts'; import {Dashboard as DashboardApi} from '../Api/Dashboard'; import {UnauthorizedError} from '../Api/Error/UnauthorizedError'; import {Lang} from '../Lang'; @@ -35,7 +36,7 @@ export class Dashboard extends BasePage { * name * @protected */ - protected _name: string = 'dashboard'; + protected override _name: string = 'dashboard'; /** * switch timer @@ -53,13 +54,13 @@ export class Dashboard extends BasePage { * line chart requests * @protected */ - protected _lineChartRequests: LineChartRequests; + protected _lineChartRequests: LineChartRequests | undefined; /** * ip blacklist map * @protected */ - protected _ipBlacklistMap: DashboardMapIp; + protected _ipBlacklistMap: DashboardMapIp | undefined; /** * constructor @@ -87,7 +88,7 @@ export class Dashboard extends BasePage { /** * loadContent */ - public async loadContent(): Promise { + public override async loadContent(): Promise { const content = this._wrapper.getContentWrapper().getContent(); const row = new ContentRow(content); @@ -157,7 +158,9 @@ export class Dashboard extends BasePage { streamRequestsPoints.push(streamRequestPoint.counts); } - this._lineChartRequests.updateData(streamRequestsPoints); + if (this._lineChartRequests) { + this._lineChartRequests.updateData(streamRequestsPoints); + } // public ip ----------------------------------------------------------------------------------------------- @@ -260,7 +263,9 @@ export class Dashboard extends BasePage { } } - this._ipBlacklistMap.setMarks(blockMarkList); + if (this._ipBlacklistMap) { + this._ipBlacklistMap.setMarks(blockMarkList); + } // ip blocks ----------------------------------------------------------------------------------------------- @@ -294,7 +299,9 @@ export class Dashboard extends BasePage { this._updateSwitch.setTimeoutFn(async() => { try { - this._onLoadTable(); + if (!Vts.isNull(this._onLoadTable)) { + this._onLoadTable(); + } } catch (e) { if (e instanceof UnauthorizedError) { UtilRedirect.toLogin(); @@ -306,9 +313,13 @@ export class Dashboard extends BasePage { /** * unloadContent */ - public async unloadContent(): Promise { + public override async unloadContent(): Promise { super.unloadContent(); - await this._ipBlacklistMap.unloadContent(); + + if (this._ipBlacklistMap) { + await this._ipBlacklistMap.unloadContent(); + } + this._updateSwitch.setEnable(false); } diff --git a/frontend/src/inc/Pages/Dashboard/DashboardIpBlacklistModal.ts b/frontend/src/inc/Pages/Dashboard/DashboardIpBlacklistModal.ts index e5f508cc..91b9c9eb 100644 --- a/frontend/src/inc/Pages/Dashboard/DashboardIpBlacklistModal.ts +++ b/frontend/src/inc/Pages/Dashboard/DashboardIpBlacklistModal.ts @@ -48,7 +48,7 @@ export class DashboardIpBlacklistModal extends ModalDialog { /** * show */ - public show(): void { + public override show(): void { super.show(); const bodyCard = jQuery('
').appendTo(this._body.empty()); diff --git a/frontend/src/inc/Pages/Dashboard/DashboardMapIp.ts b/frontend/src/inc/Pages/Dashboard/DashboardMapIp.ts index 67027216..a6ddfc45 100644 --- a/frontend/src/inc/Pages/Dashboard/DashboardMapIp.ts +++ b/frontend/src/inc/Pages/Dashboard/DashboardMapIp.ts @@ -10,6 +10,7 @@ import {getVectorContext} from 'ol/render.js'; import {easeOut} from 'ol/easing.js'; import {Element} from 'bambooo'; import {Circle as CircleStyle, Fill, Stroke, Style} from 'ol/style'; +import {Vts} from 'vts'; /** * DashboardMapIpMark @@ -140,11 +141,26 @@ export class DashboardMapIp extends Element { const map = this._map; this._source.on('addfeature', (e) => { + if (Vts.isUndefined(e.feature)) { + return; + } + const feature = e.feature; const start = Date.now(); - const flashGeom = feature.getGeometry().clone(); + const geometry = feature.getGeometry(); + + if (Vts.isUndefined(geometry)) { + return; + } + + const flashGeom = geometry.clone(); const listenerKey = tileLayer.on('postrender', (event) => { const frameState = event.frameState; + + if (Vts.isUndefined(frameState)) { + return; + } + const elapsed = frameState.time - start; if (elapsed >= duration) { unByKey(listenerKey); diff --git a/frontend/src/inc/Pages/DnsResolver.ts b/frontend/src/inc/Pages/DnsResolver.ts index 7e26414e..10105189 100644 --- a/frontend/src/inc/Pages/DnsResolver.ts +++ b/frontend/src/inc/Pages/DnsResolver.ts @@ -9,7 +9,7 @@ export class DnsResolver extends BasePage { * name * @protected */ - protected _name: string = 'dnsresolver'; + protected override _name: string = 'dnsresolver'; /** * constructor diff --git a/frontend/src/inc/Pages/Domains.ts b/frontend/src/inc/Pages/Domains.ts index bb41e996..59dd06bc 100644 --- a/frontend/src/inc/Pages/Domains.ts +++ b/frontend/src/inc/Pages/Domains.ts @@ -24,6 +24,7 @@ import { } from 'bambooo'; import {DomainData} from 'flyingfish_schemas'; import moment from 'moment'; +import {Vts} from 'vts'; import {Domain as DomainAPI} from '../Api/Domain'; import {Nginx as NginxAPI} from '../Api/Nginx'; import {BasePage} from './BasePage'; @@ -39,7 +40,7 @@ export class Domains extends BasePage { * name * @protected */ - protected _name: string = 'domains'; + protected override _name: string = 'domains'; /** * domain dialog @@ -186,7 +187,7 @@ export class Domains extends BasePage { /** * loadContent */ - public async loadContent(): Promise { + public override async loadContent(): Promise { const content = this._wrapper.getContentWrapper().getContent(); /** @@ -208,9 +209,12 @@ export class Domains extends BasePage { } const domainCollection = domainMap.get(domain.parent_id); - domainCollection.push(domain); - domainMap.set(domain.parent_id, domainCollection); + if (!Vts.isUndefined(domainCollection)) { + domainCollection.push(domain); + + domainMap.set(domain.parent_id, domainCollection); + } } } diff --git a/frontend/src/inc/Pages/Domains/DomainEditModal.ts b/frontend/src/inc/Pages/Domains/DomainEditModal.ts index 23eac8b5..29832aea 100644 --- a/frontend/src/inc/Pages/Domains/DomainEditModal.ts +++ b/frontend/src/inc/Pages/Domains/DomainEditModal.ts @@ -110,7 +110,7 @@ export class DomainEditModal extends ModalDialog { /** * resetValues */ - public resetValues(): void { + public override resetValues(): void { this.setId(null); this.setName(''); this.setDisable(false); diff --git a/frontend/src/inc/Pages/Domains/DomainRecordEditModal.ts b/frontend/src/inc/Pages/Domains/DomainRecordEditModal.ts index 0a1b7068..48939c08 100644 --- a/frontend/src/inc/Pages/Domains/DomainRecordEditModal.ts +++ b/frontend/src/inc/Pages/Domains/DomainRecordEditModal.ts @@ -263,7 +263,7 @@ export class DomainRecordEditModal extends ModalDialog { /** * resetValues */ - public resetValues(): void { + public override resetValues(): void { this.setId(null); this.setDomainId(null); this.setDomainName(''); diff --git a/frontend/src/inc/Pages/DynDnsClient/DynDnsClientEditModal.ts b/frontend/src/inc/Pages/DynDnsClient/DynDnsClientEditModal.ts index b6239391..54d8c173 100644 --- a/frontend/src/inc/Pages/DynDnsClient/DynDnsClientEditModal.ts +++ b/frontend/src/inc/Pages/DynDnsClient/DynDnsClientEditModal.ts @@ -263,7 +263,7 @@ export class DynDnsClientEditModal extends ModalDialog { /** * resetValues */ - public resetValues(): void { + public override resetValues(): void { this.setProvider('none'); this._multipleDomains.setValue([]); this._inputUsername.setValue(''); diff --git a/frontend/src/inc/Pages/DynDnsClients.ts b/frontend/src/inc/Pages/DynDnsClients.ts index 1ca04270..ced9983c 100644 --- a/frontend/src/inc/Pages/DynDnsClients.ts +++ b/frontend/src/inc/Pages/DynDnsClients.ts @@ -18,7 +18,7 @@ export class DynDnsClients extends BasePage { * name * @protected */ - protected _name: string = 'dyndnsclients'; + protected override _name: string = 'dyndnsclients'; /** * dyn dns client dialog @@ -123,7 +123,7 @@ export class DynDnsClients extends BasePage { /** * loadContent */ - public async loadContent(): Promise { + public override async loadContent(): Promise { const row1 = new ContentRow(this._wrapper.getContentWrapper().getContent()); const card = new Card(new ContentCol(row1, ContentColSize.col12)); diff --git a/frontend/src/inc/Pages/DynDnsServer.ts b/frontend/src/inc/Pages/DynDnsServer.ts index da3f300c..a1efc8ea 100644 --- a/frontend/src/inc/Pages/DynDnsServer.ts +++ b/frontend/src/inc/Pages/DynDnsServer.ts @@ -29,7 +29,7 @@ export class DynDnsServer extends BasePage { * name * @member {string} */ - protected _name: string = 'dyndnsserver'; + protected override _name: string = 'dyndnsserver'; /** * dyn dns client dialog @@ -123,7 +123,7 @@ export class DynDnsServer extends BasePage { /** * loadContent */ - public async loadContent(): Promise { + public override async loadContent(): Promise { const row1 = new ContentRow(this._wrapper.getContentWrapper().getContent()); const card = new Card(new ContentCol(row1, ContentColSize.col12)); diff --git a/frontend/src/inc/Pages/DynDnsServer/DynDnsServerEditModal.ts b/frontend/src/inc/Pages/DynDnsServer/DynDnsServerEditModal.ts index 62410b1b..ad6a4d54 100644 --- a/frontend/src/inc/Pages/DynDnsServer/DynDnsServerEditModal.ts +++ b/frontend/src/inc/Pages/DynDnsServer/DynDnsServerEditModal.ts @@ -175,7 +175,7 @@ export class DynDnsServerEditModal extends ModalDialog { /** * resetValues */ - public resetValues(): void { + public override resetValues(): void { this._multipleDomains.setValue([]); this._inputUsername.setValue(''); this._inputPassword.setValue(''); diff --git a/frontend/src/inc/Pages/Gateway.ts b/frontend/src/inc/Pages/Gateway.ts index a6e1735f..e2e7ba62 100644 --- a/frontend/src/inc/Pages/Gateway.ts +++ b/frontend/src/inc/Pages/Gateway.ts @@ -15,7 +15,7 @@ export class Gateway extends BasePage { * name * @protected */ - protected _name: string = 'gateway'; + protected override _name: string = 'gateway'; /** * gateway dialog @@ -73,7 +73,7 @@ export class Gateway extends BasePage { title: 'Gateway save success.' }); } - } catch ({message}) { + } catch (message) { this._toast.fire({ icon: 'error', title: message @@ -85,7 +85,7 @@ export class Gateway extends BasePage { /** * loadContent */ - public async loadContent(): Promise { + public override async loadContent(): Promise { const content = this._wrapper.getContentWrapper().getContent(); const card = new Card(new ContentCol(content, ContentColSize.col12)); @@ -198,7 +198,7 @@ export class Gateway extends BasePage { title: 'Gateway identifier delete success.' }); } - } catch ({message}) { + } catch (message) { this._toast.fire({ icon: 'error', title: message diff --git a/frontend/src/inc/Pages/Gateway/GatewayEditModal.ts b/frontend/src/inc/Pages/Gateway/GatewayEditModal.ts index 88feb62a..213e76a2 100644 --- a/frontend/src/inc/Pages/Gateway/GatewayEditModal.ts +++ b/frontend/src/inc/Pages/Gateway/GatewayEditModal.ts @@ -205,7 +205,7 @@ export class GatewayEditModal extends ModalDialog { * resetValues * ovverride for use */ - public resetValues(): void { + public override resetValues(): void { this.setId(null); this.setNetworkName(''); this.setGatewayMacAddress(''); diff --git a/frontend/src/inc/Pages/IpAccess.ts b/frontend/src/inc/Pages/IpAccess.ts index feda0107..eb1fb349 100644 --- a/frontend/src/inc/Pages/IpAccess.ts +++ b/frontend/src/inc/Pages/IpAccess.ts @@ -25,7 +25,7 @@ export class IpAccess extends BasePage { * name * @protected */ - protected _name: string = 'ipaccess'; + protected override _name: string = 'ipaccess'; /** * import blacklist dialog @@ -145,7 +145,7 @@ export class IpAccess extends BasePage { title: 'Blacklist save success.' }); } - } catch ({message}) { + } catch (message) { this._toast.fire({ icon: 'error', title: message @@ -182,7 +182,7 @@ export class IpAccess extends BasePage { title: 'Whitelist save success.' }); } - } catch ({message}) { + } catch (message) { this._toast.fire({ icon: 'error', title: message @@ -194,7 +194,7 @@ export class IpAccess extends BasePage { /** * loadContent */ - public async loadContent(): Promise { + public override async loadContent(): Promise { const content = this._wrapper.getContentWrapper().getContent(); const row = new ContentRow(content); @@ -364,7 +364,7 @@ export class IpAccess extends BasePage { title: 'Whitelist entrie delete success.' }); } - } catch ({message}) { + } catch (message) { this._toast.fire({ icon: 'error', title: message @@ -509,7 +509,7 @@ export class IpAccess extends BasePage { title: 'Blacklist entrie delete success.' }); } - } catch ({message}) { + } catch (message) { this._toast.fire({ icon: 'error', title: message diff --git a/frontend/src/inc/Pages/IpAccess/IpAccessBlacklistImportModal.ts b/frontend/src/inc/Pages/IpAccess/IpAccessBlacklistImportModal.ts index 0802beab..6455c2f2 100644 --- a/frontend/src/inc/Pages/IpAccess/IpAccessBlacklistImportModal.ts +++ b/frontend/src/inc/Pages/IpAccess/IpAccessBlacklistImportModal.ts @@ -86,7 +86,7 @@ export class IpAccessBlacklistImportModal extends ModalDialog { /** * resetValues */ - public resetValues(): void { + public override resetValues(): void { this.setId(null); this.setDisabled(false); } diff --git a/frontend/src/inc/Pages/IpAccess/IpAccessBlacklistOwnModal.ts b/frontend/src/inc/Pages/IpAccess/IpAccessBlacklistOwnModal.ts index 73f81c8c..29e15410 100644 --- a/frontend/src/inc/Pages/IpAccess/IpAccessBlacklistOwnModal.ts +++ b/frontend/src/inc/Pages/IpAccess/IpAccessBlacklistOwnModal.ts @@ -134,7 +134,7 @@ export class IpAccessBlacklistOwnModal extends ModalDialog { /** * resetValues */ - public resetValues(): void { + public override resetValues(): void { this.setId(null); this.setIp(''); this.setDisabled(false); diff --git a/frontend/src/inc/Pages/IpAccess/IpAccessWhitelistModal.ts b/frontend/src/inc/Pages/IpAccess/IpAccessWhitelistModal.ts index 7705e5ed..7b4ec117 100644 --- a/frontend/src/inc/Pages/IpAccess/IpAccessWhitelistModal.ts +++ b/frontend/src/inc/Pages/IpAccess/IpAccessWhitelistModal.ts @@ -134,7 +134,7 @@ export class IpAccessWhitelistModal extends ModalDialog { /** * resetValues */ - public resetValues(): void { + public override resetValues(): void { this.setId(null); this.setIp(''); this.setDisabled(false); diff --git a/frontend/src/inc/Pages/Listens.ts b/frontend/src/inc/Pages/Listens.ts index cab8835a..aa0645af 100644 --- a/frontend/src/inc/Pages/Listens.ts +++ b/frontend/src/inc/Pages/Listens.ts @@ -15,7 +15,7 @@ export class Listens extends BasePage { * name * @protected */ - protected _name: string = 'listens'; + protected override _name: string = 'listens'; /** * listen dialog @@ -27,7 +27,7 @@ export class Listens extends BasePage { * toast * @protected */ - protected _toast: any; + protected override _toast: any; /** * constructor @@ -116,7 +116,7 @@ export class Listens extends BasePage { /** * loadContent */ - public async loadContent(): Promise { + public override async loadContent(): Promise { const row1 = new ContentRow(this._wrapper.getContentWrapper().getContent()); const card = new Card(new ContentCol(row1, ContentColSize.col12)); @@ -287,7 +287,7 @@ export class Listens extends BasePage { }); } } - } catch ({message}) { + } catch (message) { this._toast.fire({ icon: 'error', title: message diff --git a/frontend/src/inc/Pages/Listens/ListensEditModal.ts b/frontend/src/inc/Pages/Listens/ListensEditModal.ts index c0423ee4..73598811 100644 --- a/frontend/src/inc/Pages/Listens/ListensEditModal.ts +++ b/frontend/src/inc/Pages/Listens/ListensEditModal.ts @@ -505,7 +505,7 @@ export class ListensEditModal extends ModalDialog { /** * resetValues */ - public resetValues(): void { + public override resetValues(): void { this.setId(null); this.setName(''); this.setType(`${ListenTypes.stream}`); diff --git a/frontend/src/inc/Pages/Routes.ts b/frontend/src/inc/Pages/Routes.ts index 4ac494f5..82dd0ce5 100644 --- a/frontend/src/inc/Pages/Routes.ts +++ b/frontend/src/inc/Pages/Routes.ts @@ -22,6 +22,7 @@ import { Tr } from 'bambooo'; import {ListenData, RouteHttpSave, RouteStreamSave} from 'flyingfish_schemas'; +import {Vts} from 'vts'; import {Listen as ListenAPI, ListenCategory} from '../Api/Listen'; import {Nginx as NginxAPI} from '../Api/Nginx'; import { @@ -45,13 +46,13 @@ export class Routes extends BasePage { * name * @protected */ - protected _name: string = 'routes'; + protected override _name: string = 'routes'; /** * toast * @protected */ - protected _toast: any; + protected override _toast: any; /** * route stream dialog @@ -277,7 +278,7 @@ export class Routes extends BasePage { /** * loadContent */ - public async loadContent(): Promise { + public override async loadContent(): Promise { const content = this._wrapper.getContentWrapper().getContent(); /** @@ -734,13 +735,25 @@ export class Routes extends BasePage { break; case NginxLocationDestinationTypes.redirect: - // eslint-disable-next-line no-new - new Badge(sdTdD, `${aLocation.redirect.redirect} (${aLocation.redirect.code})`, BadgeType.secondary); + if (!Vts.isUndefined(aLocation.redirect)) { + // eslint-disable-next-line no-new + new Badge( + sdTdD, + `${aLocation.redirect.redirect} (${aLocation.redirect.code})`, + BadgeType.secondary + ); + } break; case NginxLocationDestinationTypes.ssh: - // eslint-disable-next-line no-new - new Badge(sdTdD, `SSH INTERNT OUT (<-- ${aLocation.ssh.port_out})`, BadgeType.primary); + if (!Vts.isUndefined(aLocation.ssh)) { + // eslint-disable-next-line no-new + new Badge( + sdTdD, + `SSH INTERNT OUT (<-- ${aLocation.ssh.port_out})`, + BadgeType.primary + ); + } break; case NginxLocationDestinationTypes.dyndns: diff --git a/frontend/src/inc/Pages/Routes/RouteHttpEditModal.ts b/frontend/src/inc/Pages/Routes/RouteHttpEditModal.ts index 2f837b06..55b607a5 100644 --- a/frontend/src/inc/Pages/Routes/RouteHttpEditModal.ts +++ b/frontend/src/inc/Pages/Routes/RouteHttpEditModal.ts @@ -692,7 +692,7 @@ export class RouteHttpEditModal extends ModalDialog { /** * resetValues */ - public resetValues(): void { + public override resetValues(): void { this.setId(null); this.setDomainName(''); this._inputIndex.setValue(''); diff --git a/frontend/src/inc/Pages/Routes/RouteStreamEditModal.ts b/frontend/src/inc/Pages/Routes/RouteStreamEditModal.ts index 282918c9..ac44043d 100644 --- a/frontend/src/inc/Pages/Routes/RouteStreamEditModal.ts +++ b/frontend/src/inc/Pages/Routes/RouteStreamEditModal.ts @@ -811,7 +811,7 @@ export class RouteStreamEditModal extends ModalDialog { /** * resetValues */ - public resetValues(): void { + public override resetValues(): void { this.setId(null); this.setDomainName(''); this._inputIndex.setValue(''); diff --git a/frontend/src/inc/Pages/Settings.ts b/frontend/src/inc/Pages/Settings.ts index 97116ad2..4d28248c 100644 --- a/frontend/src/inc/Pages/Settings.ts +++ b/frontend/src/inc/Pages/Settings.ts @@ -13,7 +13,7 @@ export class Settings extends BasePage { * name * @protected */ - protected _name: string = 'settings'; + protected override _name: string = 'settings'; /** * constructor @@ -27,7 +27,7 @@ export class Settings extends BasePage { /** * loadContent */ - public async loadContent(): Promise { + public override async loadContent(): Promise { const content = this._wrapper.getContentWrapper().getContent(); /** diff --git a/frontend/src/inc/Pages/UpnpNat.ts b/frontend/src/inc/Pages/UpnpNat.ts index 0348d633..4ad33e23 100644 --- a/frontend/src/inc/Pages/UpnpNat.ts +++ b/frontend/src/inc/Pages/UpnpNat.ts @@ -17,7 +17,7 @@ export class UpnpNat extends BasePage { * name * @protected */ - protected _name: string = 'upnpnat'; + protected override _name: string = 'upnpnat'; /** * upnp nat dialog @@ -85,7 +85,7 @@ export class UpnpNat extends BasePage { title: 'UpnpNat save success.' }); } - } catch ({message}) { + } catch (message) { this._toast.fire({ icon: 'error', title: message @@ -97,7 +97,7 @@ export class UpnpNat extends BasePage { /** * loadContent */ - public async loadContent(): Promise { + public override async loadContent(): Promise { const content = this._wrapper.getContentWrapper().getContent(); const card = new Card(new ContentCol(content, ContentColSize.col12)); @@ -301,7 +301,7 @@ export class UpnpNat extends BasePage { title: 'Upnp-Nat delete success.' }); } - } catch ({message}) { + } catch (message) { this._toast.fire({ icon: 'error', title: message diff --git a/frontend/src/inc/Pages/UpnpNat/UpnpNatEditModal.ts b/frontend/src/inc/Pages/UpnpNat/UpnpNatEditModal.ts index d7772ed7..2d7e29ec 100644 --- a/frontend/src/inc/Pages/UpnpNat/UpnpNatEditModal.ts +++ b/frontend/src/inc/Pages/UpnpNat/UpnpNatEditModal.ts @@ -436,7 +436,7 @@ export class UpnpNatEditModal extends ModalDialog { /** * resetValues */ - public resetValues(): void { + public override resetValues(): void { this.setId(null); this.setGatewayAddress(''); this._inputPublicPort.setValue(''); diff --git a/frontend/src/inc/Pages/Users.ts b/frontend/src/inc/Pages/Users.ts index 6ee8d04b..77809e0d 100644 --- a/frontend/src/inc/Pages/Users.ts +++ b/frontend/src/inc/Pages/Users.ts @@ -14,7 +14,7 @@ export class Users extends BasePage { * name * @protected */ - protected _name: string = 'users'; + protected override _name: string = 'users'; /** * user dialog @@ -79,7 +79,7 @@ export class Users extends BasePage { title: 'User save success.' }); } - } catch ({message}) { + } catch (message) { this._toast.fire({ icon: 'error', title: message @@ -91,7 +91,7 @@ export class Users extends BasePage { /** * loadContent */ - public async loadContent(): Promise { + public override async loadContent(): Promise { const content = this._wrapper.getContentWrapper().getContent(); const card = new Card(new ContentCol(content, ContentColSize.col12)); @@ -183,7 +183,7 @@ export class Users extends BasePage { title: 'User delete success.' }); } - } catch ({message}) { + } catch (message) { this._toast.fire({ icon: 'error', title: message diff --git a/frontend/src/inc/Pages/Users/UsersEditModal.ts b/frontend/src/inc/Pages/Users/UsersEditModal.ts index f474d1b7..ca3450f7 100644 --- a/frontend/src/inc/Pages/Users/UsersEditModal.ts +++ b/frontend/src/inc/Pages/Users/UsersEditModal.ts @@ -186,7 +186,7 @@ export class UsersEditModal extends ModalDialog { /** * resetValues */ - public resetValues(): void { + public override resetValues(): void { this.setId(null); this.setUsername(''); this.setEMail(''); diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json index fcae21c9..e67f959f 100644 --- a/frontend/tsconfig.json +++ b/frontend/tsconfig.json @@ -1,17 +1,19 @@ { "compilerOptions": { - "noImplicitAny": true, - "target": "ES2017", - "module": "ES2015", - "moduleResolution": "Node", "allowSyntheticDefaultImports": true, "downlevelIteration": true, "esModuleInterop": true, "forceConsistentCasingInFileNames": true, + "module": "ES2015", + "moduleResolution": "Node", + "noErrorTruncation": true, "noFallthroughCasesInSwitch": true, + "noImplicitOverride": true, "noImplicitReturns": true, "noUnusedLocals": true, "noUnusedParameters": true, "outDir": "dist", + "strict": true, + "target": "ES2017" } } \ No newline at end of file