mirror of
https://github.com/Equicord/Equicord.git
synced 2025-06-19 03:17:02 -04:00
Merge remote-tracking branch 'upstream/dev' into dev
This commit is contained in:
commit
835b2c1121
11 changed files with 28 additions and 29 deletions
|
@ -203,15 +203,16 @@ export type SettingsChecks<D extends SettingsDefinition> = {
|
|||
(IsDisabled<DefinedSettings<D>> & IsValid<PluginSettingType<D[K]>, DefinedSettings<D>>);
|
||||
};
|
||||
|
||||
export type PluginSettingDef = (PluginSettingCommon & PluginSettingCustomDef & Pick<PluginSettingCommon, "onChange">) | ((
|
||||
| PluginSettingStringDef
|
||||
| PluginSettingNumberDef
|
||||
| PluginSettingBooleanDef
|
||||
| PluginSettingSelectDef
|
||||
| PluginSettingSliderDef
|
||||
| PluginSettingComponentDef
|
||||
| PluginSettingBigIntDef
|
||||
) & PluginSettingCommon);
|
||||
export type PluginSettingDef =
|
||||
(PluginSettingCustomDef & Pick<PluginSettingCommon, "onChange">) |
|
||||
(PluginSettingComponentDef & Omit<PluginSettingCommon, "description" | "placeholder">) | ((
|
||||
| PluginSettingStringDef
|
||||
| PluginSettingNumberDef
|
||||
| PluginSettingBooleanDef
|
||||
| PluginSettingSelectDef
|
||||
| PluginSettingSliderDef
|
||||
| PluginSettingBigIntDef
|
||||
) & PluginSettingCommon);
|
||||
|
||||
export interface PluginSettingCommon {
|
||||
description: string;
|
||||
|
@ -231,12 +232,14 @@ export interface PluginSettingCommon {
|
|||
*/
|
||||
target?: "WEB" | "DESKTOP" | "BOTH";
|
||||
}
|
||||
|
||||
interface IsDisabled<D = unknown> {
|
||||
/**
|
||||
* Checks if this setting should be disabled
|
||||
*/
|
||||
disabled?(this: D): boolean;
|
||||
}
|
||||
|
||||
interface IsValid<T, D = unknown> {
|
||||
/**
|
||||
* Prevents the user from saving settings if this is false or a string
|
||||
|
@ -325,7 +328,7 @@ type PluginSettingType<O extends PluginSettingDef> = O extends PluginSettingStri
|
|||
O extends PluginSettingBooleanDef ? boolean :
|
||||
O extends PluginSettingSelectDef ? O["options"][number]["value"] :
|
||||
O extends PluginSettingSliderDef ? number :
|
||||
O extends PluginSettingComponentDef ? any :
|
||||
O extends PluginSettingComponentDef ? O extends { default: infer Default; } ? Default : any :
|
||||
O extends PluginSettingCustomDef ? O extends { default: infer Default; } ? Default : any :
|
||||
never;
|
||||
|
||||
|
@ -387,7 +390,7 @@ export type PluginOptionNumber = (PluginSettingNumberDef | PluginSettingBigIntDe
|
|||
export type PluginOptionBoolean = PluginSettingBooleanDef & PluginSettingCommon & IsDisabled & IsValid<boolean>;
|
||||
export type PluginOptionSelect = PluginSettingSelectDef & PluginSettingCommon & IsDisabled & IsValid<PluginSettingSelectOption>;
|
||||
export type PluginOptionSlider = PluginSettingSliderDef & PluginSettingCommon & IsDisabled & IsValid<number>;
|
||||
export type PluginOptionComponent = PluginSettingComponentDef & PluginSettingCommon;
|
||||
export type PluginOptionComponent = PluginSettingComponentDef & Omit<PluginSettingCommon, "description" | "placeholder">;
|
||||
export type PluginOptionCustom = PluginSettingCustomDef & Pick<PluginSettingCommon, "onChange">;
|
||||
|
||||
export type PluginNative<PluginExports extends Record<string, (event: Electron.IpcMainInvokeEvent, ...args: any[]) => any>> = {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue