MCPcopy Create free account
hub / github.com/hydro-dev/Hydro / PreferenceSetting

Function PreferenceSetting

packages/hydrooj/src/model/setting.ts:137–156  ·  view source on GitHub ↗
(...settings: _Setting[] | Schema<any>[])

Source from the content-addressed store, hash-verified

135}
136
137export const PreferenceSetting = (...settings: _Setting[] | Schema<any>[]) => {
138 settings = settings.flatMap((s) => (s instanceof Schema ? schemaToSettings(s) : s) as _Setting[]);
139 for (const setting of settings) {
140 if (PREFERENCE_SETTINGS.find((s) => s.key === setting.key)) logger.warn(`Duplicate setting key: ${setting.key}`);
141 PREFERENCE_SETTINGS.push(setting);
142 SETTINGS.push(setting);
143 SETTINGS_BY_KEY[setting.key] = setting;
144 }
145 return () => {
146 for (const setting of settings) {
147 delete SETTINGS_BY_KEY[setting.key];
148 if (PREFERENCE_SETTINGS.includes(setting)) {
149 PREFERENCE_SETTINGS.splice(PREFERENCE_SETTINGS.indexOf(setting), 1);
150 }
151 if (SETTINGS.includes(setting)) {
152 SETTINGS.splice(SETTINGS.indexOf(setting), 1);
153 }
154 }
155 };
156};
157export const AccountSetting = (...settings: _Setting[] | Schema<any>[]) => {
158 settings = settings.flatMap((s) => (s instanceof Schema ? schemaToSettings(s) : s) as _Setting[]);
159 for (const setting of settings) {

Callers 1

setting.tsFile · 0.85

Calls 4

schemaToSettingsFunction · 0.85
findMethod · 0.80
warnMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected