Files
formbricks/packages/lib/attribute/cache.ts

35 lines
992 B
TypeScript

import { revalidateTag } from "next/cache";
interface RevalidateProps {
id?: string;
environmentId?: string;
userId?: string;
personId?: string;
name: string;
}
export const attributeCache = {
tag: {
byEnvironmentIdAndUserId(environmentId: string, userId: string): string {
return `environments-${environmentId}-personByUserId-${userId}-attributes`;
},
byPersonId(personId: string): string {
return `person-${personId}-attributes`;
},
byNameAndPersonId(name: string, personId: string): string {
return `person-${personId}-attribute-${name}`;
},
},
revalidate({ environmentId, userId, personId, name }: RevalidateProps): void {
if (environmentId && userId) {
revalidateTag(this.tag.byEnvironmentIdAndUserId(environmentId, userId));
}
if (personId) {
revalidateTag(this.tag.byPersonId(personId));
}
if (personId && name) {
revalidateTag(this.tag.byNameAndPersonId(name, personId));
}
},
};