21 lines
564 B
TypeScript
21 lines
564 B
TypeScript
import { analytics } from '@konobangu/analytics/server';
|
|
import { getSessionFromHeaders } from '@konobangu/auth/server';
|
|
import { unstable_flag as flag } from '@vercel/flags/next';
|
|
|
|
export const createFlag = (key: string) =>
|
|
flag({
|
|
key,
|
|
defaultValue: false,
|
|
async decide() {
|
|
const { userId } = await getSessionFromHeaders();
|
|
|
|
if (!userId) {
|
|
return this.defaultValue as boolean;
|
|
}
|
|
|
|
const isEnabled = await analytics.isFeatureEnabled(key, userId);
|
|
|
|
return isEnabled ?? (this.defaultValue as boolean);
|
|
},
|
|
});
|