@@ -6,10 +6,9 @@ import {
66 WORKOS_COOKIE_NAME ,
77} from './env-variables.js' ;
88
9- interface SessionStorageConfig {
10- storage ?: SessionStorage ;
11- cookieName ?: string ;
12- }
9+ type SessionStorageConfig = { storage ?: never ; cookieName ?: string } | { storage : SessionStorage ; cookieName : string } ;
10+
11+ const DEFAULT_COOKIE_NAME = WORKOS_COOKIE_NAME || 'wos-session' ;
1312
1413export const errors = {
1514 configureSessionStorage :
@@ -25,11 +24,10 @@ export class SessionStorageManager {
2524 /**
2625 * The default cookie name used for storing the session id.
2726 */
28- static readonly DEFAULT_COOKIE_NAME = 'wos-session' ;
2927
3028 private storage : SessionStorage | null = null ;
3129 private configPromise : Promise < void > | null = null ;
32- private cookieName : string = SessionStorageManager . DEFAULT_COOKIE_NAME ;
30+ private cookieName : string = DEFAULT_COOKIE_NAME ;
3331
3432 async configure ( config : SessionStorageConfig = { } ) {
3533 if ( ! this . configPromise ) {
@@ -58,15 +56,15 @@ export class SessionStorageManager {
5856 return { ...storage , cookieName } ;
5957 }
6058
61- private createSessionStorage ( { storage, cookieName } : SessionStorageConfig = { } ) : SessionStorage {
62- if ( storage ) {
63- return storage ;
64- }
65-
59+ private createSessionStorage ( { storage, cookieName } : SessionStorageConfig ) : SessionStorage {
6660 if ( cookieName ) {
6761 this . cookieName = cookieName ;
6862 }
6963
64+ if ( storage ) {
65+ return storage ;
66+ }
67+
7068 const cookieOptions = {
7169 ...this . getDefaultCookieOptions ( ) ,
7270 ...( cookieName ? { name : cookieName } : { } ) ,
@@ -81,7 +79,7 @@ export class SessionStorageManager {
8179 const redirectUrl = new URL ( WORKOS_REDIRECT_URI ) ;
8280 const isSecureProtocol = redirectUrl . protocol === 'https:' ;
8381 return {
84- name : WORKOS_COOKIE_NAME || SessionStorageManager . DEFAULT_COOKIE_NAME ,
82+ name : this . cookieName ,
8583 path : '/' ,
8684 httpOnly : true ,
8785 secure : isSecureProtocol ,
0 commit comments