From b4055e1c23eeefb0c8a85a77f312b2827d98f483 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 18 Jul 2019 14:28:37 +0200 Subject: Add server hooks --- server/lib/plugins/hooks.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 server/lib/plugins/hooks.ts (limited to 'server/lib/plugins/hooks.ts') diff --git a/server/lib/plugins/hooks.ts b/server/lib/plugins/hooks.ts new file mode 100644 index 000000000..7bb907e6a --- /dev/null +++ b/server/lib/plugins/hooks.ts @@ -0,0 +1,26 @@ +import { ServerActionHookName, ServerFilterHookName } from '../../../shared/models/plugins/server-hook.model' +import { PluginManager } from './plugin-manager' +import { logger } from '../../helpers/logger' +import * as Bluebird from 'bluebird' + +// Helpers to run hooks +const Hooks = { + wrapObject: (obj: T, hookName: U) => { + return PluginManager.Instance.runHook(hookName, obj) as Promise + }, + + wrapPromise: async (fun: Promise | Bluebird, hookName: U) => { + const result = await fun + + return PluginManager.Instance.runHook(hookName, result) + }, + + runAction: (hookName: U, params?: T) => { + PluginManager.Instance.runHook(hookName, params) + .catch(err => logger.error('Fatal hook error.', { err })) + } +} + +export { + Hooks +} -- cgit v1.2.3