UNPKG

@rocket.chat/apps-engine

Version:

The engine code for the Rocket.Chat Apps which manages, runs, translates, coordinates and all of that.

30 lines (21 loc) 991 B
import type { App } from '@rocket.chat/apps-engine/definition/App.ts'; import type { AppStatus as _AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus.ts'; import { AppObjectRegistry } from '../../AppObjectRegistry.ts'; import { require } from '../../lib/require.ts'; const { AppStatus } = require('@rocket.chat/apps-engine/definition/AppStatus.js') as { AppStatus: typeof _AppStatus; }; export default async function handleSetStatus(params: unknown): Promise<null> { if (!Array.isArray(params) || !Object.values(AppStatus).includes(params[0])) { throw new Error('Invalid params', { cause: 'invalid_param_type' }); } const [status] = params as [typeof AppStatus]; const app = AppObjectRegistry.get<App>('app'); if (!app || typeof app['setStatus'] !== 'function') { throw new Error('App must contain a setStatus function', { cause: 'invalid_app', }); } await app['setStatus'](status); return null; }