@flags-sdk/posthog
Version:
PostHog adapter for the Flags SDK
35 lines (30 loc) • 1.19 kB
text/typescript
import { PostHog } from 'posthog-node';
import { Adapter, ProviderData } from 'flags';
type JsonType = string | number | boolean | null | {
[key: string]: JsonType;
} | Array<JsonType>;
interface PostHogEntities {
distinctId: string;
}
type PostHogAdapter = {
isFeatureEnabled: (options?: {
sendFeatureFlagEvents?: boolean;
}) => Adapter<boolean, PostHogEntities>;
featureFlagValue: (options?: {
sendFeatureFlagEvents?: boolean;
}) => Adapter<string | boolean, PostHogEntities>;
featureFlagPayload: <T>(getValue: (payload: JsonType) => T, options?: {
sendFeatureFlagEvents?: boolean;
}) => Adapter<T, PostHogEntities>;
};
declare function getProviderData(options: {
personalApiKey: string;
projectId: string;
appHost?: string;
}): Promise<ProviderData>;
declare function createPostHogAdapter({ postHogKey, postHogOptions, }: {
postHogKey: ConstructorParameters<typeof PostHog>[0];
postHogOptions: ConstructorParameters<typeof PostHog>[1];
}): PostHogAdapter;
declare const postHogAdapter: PostHogAdapter;
export { type JsonType, type PostHogEntities, createPostHogAdapter, getProviderData, postHogAdapter };