import { LoadDictElement } from 'di-why/build/src/DiContainer'; import { CookieManager } from './CookieManager'; import { CookieConfig } from '../types/auth.types'; export const cookieManagerLDEGen = (config?: Partial): LoadDictElement => ({ factory: ({ appConfig }) => { return new CookieManager({ domain: config?.domain || appConfig.rpCookieDomain || appConfig.cookieDomain, sessionName: config?.sessionName || appConfig.sessionCookieName || 'sid', refreshName: config?.refreshName || appConfig.refreshCookieName || 'rid', secureCookie: config?.secureCookie !== undefined ? config.secureCookie : true, sameSite: config?.sameSite || 'lax', httpOnly: config?.httpOnly !== undefined ? config.httpOnly : true, sessionTTL: config?.sessionTTL || appConfig.sessionTTL || 7200, refreshTTL: config?.refreshTTL || appConfig.refreshTTL || 604800 }); }, locateDeps: { appConfig: 'appConfig' } });