reenabled @typescript-eslint/no-dynamic-delete

This commit is contained in:
Eugene Pankov
2021-01-02 20:31:26 +01:00
parent 3365b143d8
commit 15073cbc81
4 changed files with 19 additions and 20 deletions

View File

@@ -102,7 +102,6 @@ rules:
- allowConstantLoopConditions: true - allowConstantLoopConditions: true
'@typescript-eslint/no-untyped-public-signature': off # bugs out on constructors '@typescript-eslint/no-untyped-public-signature': off # bugs out on constructors
'@typescript-eslint/restrict-template-expressions': off '@typescript-eslint/restrict-template-expressions': off
'@typescript-eslint/no-dynamic-delete': off
'@typescript-eslint/prefer-readonly-parameter-types': off '@typescript-eslint/prefer-readonly-parameter-types': off
'@typescript-eslint/no-unsafe-member-access': off '@typescript-eslint/no-unsafe-member-access': off
'@typescript-eslint/no-unsafe-call': off '@typescript-eslint/no-unsafe-call': off

View File

@@ -22,10 +22,10 @@
button.btn.btn-primary.ml-2( button.btn.btn-primary.ml-2(
*ngIf='knownUpgrades[plugin.name]', *ngIf='knownUpgrades[plugin.name]',
(click)='upgradePlugin(plugin)', (click)='upgradePlugin(plugin)',
[disabled]='busy[plugin.name] != undefined' [disabled]='busy.has(plugin.name)'
) )
i.fas.fa-fw.fa-arrow-up(*ngIf='busy[plugin.name] != BusyState.Installing') i.fas.fa-fw.fa-arrow-up(*ngIf='busy.get(plugin.name) != BusyState.Installing')
i.fas.fa-fw.fa-circle-notch.fa-spin(*ngIf='busy[plugin.name] == BusyState.Installing') i.fas.fa-fw.fa-circle-notch.fa-spin(*ngIf='busy.get(plugin.name) == BusyState.Installing')
span Upgrade ({{knownUpgrades[plugin.name].version}}) span Upgrade ({{knownUpgrades[plugin.name].version}})
button.btn.btn-link.text-primary.ml-2( button.btn.btn-link.text-primary.ml-2(
@@ -43,10 +43,10 @@
button.btn.btn-link.text-danger.ml-2( button.btn.btn-link.text-danger.ml-2(
(click)='uninstallPlugin(plugin)', (click)='uninstallPlugin(plugin)',
*ngIf='!plugin.isBuiltin', *ngIf='!plugin.isBuiltin',
[disabled]='busy[plugin.name] != undefined' [disabled]='busy.has(plugin.name)'
) )
i.fas.fa-fw.fa-trash(*ngIf='busy[plugin.name] != BusyState.Uninstalling') i.fas.fa-fw.fa-trash(*ngIf='busy.get(plugin.name) != BusyState.Uninstalling')
i.fas.fa-fw.fa-circle-notch.fa-spin(*ngIf='busy[plugin.name] == BusyState.Uninstalling') i.fas.fa-fw.fa-circle-notch.fa-spin(*ngIf='busy.get(plugin.name) == BusyState.Uninstalling')
div div
h3.mt-4 Available h3.mt-4 Available
@@ -69,10 +69,10 @@ div
.list-group-item.d-flex.align-items-center(*ngIf='!isAlreadyInstalled(plugin)') .list-group-item.d-flex.align-items-center(*ngIf='!isAlreadyInstalled(plugin)')
button.btn.btn-primary.mr-3( button.btn.btn-primary.mr-3(
(click)='installPlugin(plugin)', (click)='installPlugin(plugin)',
[disabled]='busy[plugin.name] != undefined' [disabled]='busy.has(plugin.name)'
) )
i.fas.fa-fw.fa-download(*ngIf='busy[plugin.name] != BusyState.Installing') i.fas.fa-fw.fa-download(*ngIf='busy.get(plugin.name) != BusyState.Installing')
i.fas.fa-fw.fa-circle-notch.fa-spin(*ngIf='busy[plugin.name] == BusyState.Installing') i.fas.fa-fw.fa-circle-notch.fa-spin(*ngIf='busy.get(plugin.name) == BusyState.Installing')
div((click)='showPluginInfo(plugin)') div((click)='showPluginInfo(plugin)')
div div

View File

@@ -20,7 +20,7 @@ export class PluginsSettingsTabComponent {
@Input() availablePluginsQuery$ = new BehaviorSubject<string>('') @Input() availablePluginsQuery$ = new BehaviorSubject<string>('')
@Input() availablePluginsReady = false @Input() availablePluginsReady = false
@Input() knownUpgrades: Record<string, PluginInfo|null> = {} @Input() knownUpgrades: Record<string, PluginInfo|null> = {}
@Input() busy: Record<string, BusyState> = {} @Input() busy = new Map<string, BusyState>()
@Input() erroredPlugin: string @Input() erroredPlugin: string
@Input() errorMessage: string @Input() errorMessage: string
@@ -67,29 +67,29 @@ export class PluginsSettingsTabComponent {
} }
async installPlugin (plugin: PluginInfo): Promise<void> { async installPlugin (plugin: PluginInfo): Promise<void> {
this.busy[plugin.name] = BusyState.Installing this.busy.set(plugin.name, BusyState.Installing)
try { try {
await this.pluginManager.installPlugin(plugin) await this.pluginManager.installPlugin(plugin)
delete this.busy[plugin.name] this.busy.delete(plugin.name)
this.config.requestRestart() this.config.requestRestart()
} catch (err) { } catch (err) {
this.erroredPlugin = plugin.name this.erroredPlugin = plugin.name
this.errorMessage = err this.errorMessage = err
delete this.busy[plugin.name] this.busy.delete(plugin.name)
throw err throw err
} }
} }
async uninstallPlugin (plugin: PluginInfo): Promise<void> { async uninstallPlugin (plugin: PluginInfo): Promise<void> {
this.busy[plugin.name] = BusyState.Uninstalling this.busy.set(plugin.name, BusyState.Uninstalling)
try { try {
await this.pluginManager.uninstallPlugin(plugin) await this.pluginManager.uninstallPlugin(plugin)
delete this.busy[plugin.name] this.busy.delete(plugin.name)
this.config.requestRestart() this.config.requestRestart()
} catch (err) { } catch (err) {
this.erroredPlugin = plugin.name this.erroredPlugin = plugin.name
this.errorMessage = err this.errorMessage = err
delete this.busy[plugin.name] this.busy.delete(plugin.name)
throw err throw err
} }
} }

View File

@@ -331,7 +331,7 @@ export class Session extends BaseSession {
/** @hidden */ /** @hidden */
@Injectable({ providedIn: 'root' }) @Injectable({ providedIn: 'root' })
export class SessionsService { export class SessionsService {
sessions: Record<string, BaseSession> = {} sessions = new Map<string, BaseSession>()
logger: Logger logger: Logger
private lastID = 0 private lastID = 0
@@ -347,9 +347,9 @@ export class SessionsService {
options.name = `session-${this.lastID}` options.name = `session-${this.lastID}`
session.start(options) session.start(options)
session.destroyed$.pipe(first()).subscribe(() => { session.destroyed$.pipe(first()).subscribe(() => {
delete this.sessions[session.name] this.sessions.delete(session.name)
}) })
this.sessions[session.name] = session this.sessions.set(session.name, session)
return session return session
} }
} }