From d2d4a5a999746ae0f01a2ce89b844252346bab27 Mon Sep 17 00:00:00 2001 From: lutangar Date: Thu, 20 Jan 2022 12:07:15 +0100 Subject: Fix plugin settings manager definition This mainly fix the `onSettingsChange` argument typing. I'm not 100% sure the setting `value` can be a boolean though. But this is how it was typed before so I just made it consistent. Feel free to change - or suggest change - to the type names / location. --- server/lib/plugins/register-helpers.ts | 5 +++-- server/models/server/plugin.ts | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'server') diff --git a/server/lib/plugins/register-helpers.ts b/server/lib/plugins/register-helpers.ts index acca9309a..d1756040a 100644 --- a/server/lib/plugins/register-helpers.ts +++ b/server/lib/plugins/register-helpers.ts @@ -17,6 +17,7 @@ import { RegisterServerHookOptions, RegisterServerSettingOptions, serverHookObject, + SettingsChangeCallback, VideoPlaylistPrivacy, VideoPrivacy } from '@shared/models' @@ -46,7 +47,7 @@ export class RegisterHelpers { private idAndPassAuths: RegisterServerAuthPassOptions[] = [] private externalAuths: RegisterServerAuthExternalOptions[] = [] - private readonly onSettingsChangeCallbacks: ((settings: any) => Promise)[] = [] + private readonly onSettingsChangeCallbacks: SettingsChangeCallback[] = [] private readonly router: express.Router private readonly videoConstantManagerFactory: VideoConstantManagerFactory @@ -256,7 +257,7 @@ export class RegisterHelpers { setSetting: (name: string, value: string) => PluginModel.setSetting(this.plugin.name, this.plugin.type, name, value), - onSettingsChange: (cb: (settings: any) => Promise) => this.onSettingsChangeCallbacks.push(cb) + onSettingsChange: (cb: SettingsChangeCallback) => this.onSettingsChangeCallbacks.push(cb) } } diff --git a/server/models/server/plugin.ts b/server/models/server/plugin.ts index 84f7a14e4..05083e3f7 100644 --- a/server/models/server/plugin.ts +++ b/server/models/server/plugin.ts @@ -2,7 +2,7 @@ import { FindAndCountOptions, json, QueryTypes } from 'sequelize' import { AllowNull, Column, CreatedAt, DataType, DefaultScope, Is, Model, Table, UpdatedAt } from 'sequelize-typescript' import { MPlugin, MPluginFormattable } from '@server/types/models' import { AttributesOnly } from '@shared/typescript-utils' -import { PeerTubePlugin, PluginType, RegisterServerSettingOptions } from '../../../shared/models' +import { PeerTubePlugin, PluginType, RegisterServerSettingOptions, SettingEntries, SettingValue } from '../../../shared/models' import { isPluginDescriptionValid, isPluginHomepage, @@ -148,7 +148,7 @@ export class PluginModel extends Model>> { return PluginModel.findOne(query) .then(p => { - const result: { [settingName: string ]: string | boolean } = {} + const result: SettingEntries = {} for (const name of settingNames) { if (!p || !p.settings || p.settings[name] === undefined) { @@ -166,7 +166,7 @@ export class PluginModel extends Model>> { }) } - static setSetting (pluginName: string, pluginType: PluginType, settingName: string, settingValue: string) { + static setSetting (pluginName: string, pluginType: PluginType, settingName: string, settingValue: SettingValue) { const query = { where: { name: pluginName, @@ -273,7 +273,7 @@ export class PluginModel extends Model>> { } getPublicSettings (registeredSettings: RegisterServerSettingOptions[]) { - const result: { [ name: string ]: string } = {} + const result: SettingEntries = {} const settings = this.settings || {} for (const r of registeredSettings) { -- cgit v1.2.3