File tree Expand file tree Collapse file tree 2 files changed +11
-0
lines changed
packages/root/src/middleware Expand file tree Collapse file tree 2 files changed +11
-0
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ ' @blinkk/root ' : patch
3
+ ---
4
+
5
+ fix: only update session cookie when changed
Original file line number Diff line number Diff line change @@ -26,6 +26,9 @@ export function sessionMiddleware(options?: SessionMiddlewareOptions) {
26
26
req . session = session ;
27
27
res . session = session ;
28
28
res . saveSession = ( saveSessionOptions ?: SaveSessionOptions ) => {
29
+ if ( ! session . hasChanges ) {
30
+ return ;
31
+ }
29
32
// "secure" cookies require https, so disable "secure" when in development.
30
33
const secureCookie = Boolean ( process . env . NODE_ENV !== 'development' ) ;
31
34
const cookieValue = session . toString ( ) ;
@@ -54,6 +57,7 @@ export function sessionMiddleware(options?: SessionMiddlewareOptions) {
54
57
55
58
export class Session {
56
59
private data : Record < string , string > = { } ;
60
+ hasChanges = false ;
57
61
58
62
constructor ( data ?: Record < string , string > ) {
59
63
this . data = data || { } ;
@@ -82,10 +86,12 @@ export class Session {
82
86
83
87
setItem ( key : string , value : string ) {
84
88
this . data [ key ] = value ;
89
+ this . hasChanges = true ;
85
90
}
86
91
87
92
removeItem ( key : string ) {
88
93
delete this . data [ key ] ;
94
+ this . hasChanges = true ;
89
95
}
90
96
91
97
toString ( ) : string {
You can’t perform that action at this time.
0 commit comments