Skip to main content
Glama
lift.ts•1.11 kB
import { Observable } from '../Observable'; import { Subscriber } from '../Subscriber'; import { OperatorFunction } from '../types'; import { isFunction } from './isFunction'; /** * Used to determine if an object is an Observable with a lift function. */ export function hasLift(source: any): source is { lift: InstanceType<typeof Observable>['lift'] } { return isFunction(source?.lift); } /** * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way. * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription. */ export function operate<T, R>( init: (liftedSource: Observable<T>, subscriber: Subscriber<R>) => (() => void) | void ): OperatorFunction<T, R> { return (source: Observable<T>) => { if (hasLift(source)) { return source.lift(function (this: Subscriber<R>, liftedSource: Observable<T>) { try { return init(liftedSource, this); } catch (err) { this.error(err); } }); } throw new TypeError('Unable to lift unknown Observable type'); }; }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/samihalawa/brevo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server