revision 확인과 서버 event 기반 선택 갱신은 무가점으로 두고 PostgreSQL projection을 다시 만드는 초기·수동·복구 갱신만 1점을 기록한다. 인증 범위에 묶인 1회용 realtime 증표와 회귀 검증을 추가한다.
22 lines
830 B
TypeScript
22 lines
830 B
TypeScript
export const REALTIME_ACCESS_GRANT_CONTEXT_KEY = 'realtimeAccessGrant';
|
|
|
|
export const createRealtimeRequestOptions = (refreshGrant: string | null | undefined) =>
|
|
refreshGrant
|
|
? {
|
|
context: {
|
|
[REALTIME_ACCESS_GRANT_CONTEXT_KEY]: refreshGrant,
|
|
},
|
|
}
|
|
: undefined;
|
|
|
|
export const resolveBatchRealtimeAccessGrant = (
|
|
operations: ReadonlyArray<{ context: Record<string, unknown> }>
|
|
): string | undefined => {
|
|
if (operations.length === 0) return undefined;
|
|
const first = operations[0]?.context[REALTIME_ACCESS_GRANT_CONTEXT_KEY];
|
|
if (typeof first !== 'string' || first.length === 0) return undefined;
|
|
return operations.every((operation) => operation.context[REALTIME_ACCESS_GRANT_CONTEXT_KEY] === first)
|
|
? first
|
|
: undefined;
|
|
};
|