The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/apps/meteor/app/federation/server/lib/callbacks.ts

35 lines
968 B

import { callbacks } from '../../../../lib/callbacks';
import type { Hook } from '../../../../lib/callbacks';
import { settings } from '../../../settings/server';
type CallbackDefinition = {
hook: Hook;
callback: (...args: any[]) => any;
id: string;
};
const callbackDefinitions: CallbackDefinition[] = [];
function enableCallback(definition: CallbackDefinition): void {
callbacks.add(definition.hook, definition.callback, callbacks.priority.LOW, definition.id);
}
export function registerCallback(callbackDefinition: CallbackDefinition) {
callbackDefinitions.push(callbackDefinition);
if (settings.get<boolean>('FEDERATION_Enabled')) {
enableCallback(callbackDefinition);
}
}
export function enableCallbacks(): void {
for (const definition of callbackDefinitions) {
enableCallback(definition);
}
}
export function disableCallbacks(): void {
for (const definition of callbackDefinitions) {
callbacks.remove(definition.hook, definition.id);
}
}