mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-19 09:38:19 +08:00
core: fix bug (#551)
This commit is contained in:
1 parent
7d7b08ecf1
commit
335e8d6ee9
2 files changed
+28
-26
No files matched your search
@@ -293,7 +293,33 @@ SystemSetting(
|
||||
// eslint-disable-next-line import/no-mutable-exports
|
||||
export const langs: Record<string, LangConfig> = {};
|
||||
|
||||
declare module '../context' {
|
||||
interface Context {
|
||||
setting: SettingService;
|
||||
}
|
||||
}
|
||||
|
||||
const T = <F extends (...args: any[]) => any>(origFunc: F, disposeFunc?) =>
|
||||
function method(this: cordis.Service, ...args: Parameters<F>) {
|
||||
const res = origFunc(...args);
|
||||
this.caller?.on('dispose', () => (disposeFunc ? disposeFunc(res) : res()));
|
||||
};
|
||||
|
||||
export class SettingService extends Service {
|
||||
static readonly methods = ['PreferenceSetting', 'AccountSetting', 'DomainSetting', 'DomainUserSetting', 'SystemSetting'];
|
||||
PreferenceSetting = T(PreferenceSetting);
|
||||
AccountSetting = T(AccountSetting);
|
||||
DomainSetting = T(DomainSetting);
|
||||
DomainUserSetting = T(DomainUserSetting);
|
||||
SystemSetting = T(SystemSetting);
|
||||
constructor(ctx: Context) {
|
||||
super(ctx, 'setting', true);
|
||||
}
|
||||
}
|
||||
|
||||
export async function apply(ctx: Context) {
|
||||
Context.service('setting', SettingService);
|
||||
ctx.setting = new SettingService(ctx);
|
||||
logger.info('Ensuring settings');
|
||||
const system = global.Hydro.model.system;
|
||||
for (const setting of SYSTEM_SETTINGS) {
|
||||
@@ -320,31 +346,6 @@ export async function apply(ctx: Context) {
|
||||
});
|
||||
}
|
||||
|
||||
declare module '../context' {
|
||||
interface Context {
|
||||
setting: SettingService;
|
||||
}
|
||||
}
|
||||
|
||||
const T = <F extends (...args: any[]) => any>(origFunc: F, disposeFunc?) =>
|
||||
function method(this: cordis.Service, ...args: Parameters<F>) {
|
||||
const res = origFunc(...args);
|
||||
this.caller?.on('dispose', () => (disposeFunc ? disposeFunc(res) : res()));
|
||||
};
|
||||
|
||||
export class SettingService extends Service {
|
||||
static readonly methods = ['PreferenceSetting', 'AccountSetting', 'DomainSetting', 'DomainUserSetting', 'SystemSetting'];
|
||||
PreferenceSetting = T(PreferenceSetting);
|
||||
AccountSetting = T(AccountSetting);
|
||||
DomainSetting = T(DomainSetting);
|
||||
DomainUserSetting = T(DomainUserSetting);
|
||||
SystemSetting = T(SystemSetting);
|
||||
constructor(ctx: Context) {
|
||||
super(ctx, 'setting', true);
|
||||
}
|
||||
}
|
||||
Context.service('setting', SettingService);
|
||||
|
||||
global.Hydro.model.setting = {
|
||||
apply,
|
||||
SettingService,
|
||||
|
||||
Reference in new issue
Block a user