UNPKG

@microsoft/teams.apps

Version:

<p> <a href="https://www.npmjs.com/package/@microsoft/teams.apps" target="_blank"> <img src="https://img.shields.io/npm/v/@microsoft/teams.apps/latest" /> </a> <a href="https://www.npmjs.com/package/@microsoft/teams.apps?activeTab=code

12 lines (11 loc) 679 B
import { IPlugin } from './plugin'; import { UnionToIntersection } from './union-to-intersection'; import type { App } from '../app'; import type { IRoutes } from '../routes'; /** * Extracts the events from a plugin if it extends PluginWithEvents */ export type PluginAdditionalContext<T> = UnionToIntersection<T extends IPlugin<infer Ctx, any> ? Ctx : {}> extends infer R ? R extends Record<string, any> ? R : {} : {}; type AppPlugin<TApp extends App> = TApp extends App<infer TPlugin> ? TPlugin : never; export type AppRoutingHandler<Name extends keyof IRoutes, TApp extends App<any>> = Exclude<IRoutes<PluginAdditionalContext<AppPlugin<TApp>>>[Name], undefined>; export {};