UNPKG

@clerk/shared

Version:

Internal package utils used by the Clerk SDKs

68 lines (66 loc) 2.35 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); //#region src/deriveState.ts /** * Derives authentication state based on the current rendering context (SSR or client-side). */ const deriveState = (clerkOperational, state, initialState) => { if (!clerkOperational && initialState) return deriveFromSsrInitialState(initialState); return deriveFromClientSideState(state); }; const deriveFromSsrInitialState = (initialState) => { const userId = initialState.userId; const user = initialState.user; const sessionId = initialState.sessionId; const sessionStatus = initialState.sessionStatus; const sessionClaims = initialState.sessionClaims; return { userId, user, sessionId, session: initialState.session, sessionStatus, sessionClaims, organization: initialState.organization, orgId: initialState.orgId, orgRole: initialState.orgRole, orgPermissions: initialState.orgPermissions, orgSlug: initialState.orgSlug, actor: initialState.actor, factorVerificationAge: initialState.factorVerificationAge }; }; const deriveFromClientSideState = (state) => { const userId = state.user ? state.user.id : state.user; const user = state.user; const sessionId = state.session ? state.session.id : state.session; const session = state.session; const sessionStatus = state.session?.status; const sessionClaims = state.session ? state.session.lastActiveToken?.jwt?.claims : null; const factorVerificationAge = state.session ? state.session.factorVerificationAge : null; const actor = session?.actor; const organization = state.organization; const orgId = state.organization ? state.organization.id : state.organization; const orgSlug = organization?.slug; const membership = organization ? user?.organizationMemberships?.find((om) => om.organization.id === orgId) : organization; const orgPermissions = membership ? membership.permissions : membership; return { userId, user, sessionId, session, sessionStatus, sessionClaims, organization, orgId, orgRole: membership ? membership.role : membership, orgSlug, orgPermissions, actor, factorVerificationAge }; }; //#endregion exports.deriveFromClientSideState = deriveFromClientSideState; exports.deriveFromSsrInitialState = deriveFromSsrInitialState; exports.deriveState = deriveState; //# sourceMappingURL=deriveState.js.map