@@ -15,7 +15,7 @@ export default eventHandler(async (event) => {
1515 } ) ;
1616 }
1717
18- const { readable, writable } = new TransformStream ( )
18+ const { readable, writable } = new TransformStream ( ) ;
1919
2020 event . waitUntil (
2121 ( async ( ) => {
@@ -28,21 +28,26 @@ export default eventHandler(async (event) => {
2828 await iterateAndDelete ( event , writable , signal , {
2929 prefix : usePackagesBucket . base ,
3030 limit : 100 ,
31- } )
31+ } ) ;
3232 await iterateAndDelete ( event , writable , signal , {
3333 prefix : useTemplatesBucket . base ,
3434 limit : 100 ,
35- } )
36- await writable . close ( )
37- } ) ( )
38- )
35+ } ) ;
36+ await writable . close ( ) ;
37+ } ) ( ) ,
38+ ) ;
3939
40- return readable
40+ return readable ;
4141} ) ;
4242
43- async function iterateAndDelete ( event : H3Event , writable : WritableStream , signal : AbortSignal , opts : R2ListOptions ) {
44- const writer = writable . getWriter ( )
45- await writer . ready
43+ async function iterateAndDelete (
44+ event : H3Event ,
45+ writable : WritableStream ,
46+ signal : AbortSignal ,
47+ opts : R2ListOptions ,
48+ ) {
49+ const writer = writable . getWriter ( ) ;
50+ await writer . ready ;
4651 const binding = useBinding ( event ) ;
4752
4853 let truncated = true ;
@@ -69,17 +74,21 @@ async function iterateAndDelete(event: H3Event, writable: WritableStream, signal
6974 sixMonthsAgo . setMonth ( sixMonthsAgo . getMonth ( ) - 6 ) ;
7075 if ( uploadedDate <= sixMonthsAgo ) {
7176 const downloadedAt = ( await downloadedAtBucket . getItem ( object . key ) ) ! ;
72- await writer . write ( new TextEncoder ( ) . encode ( JSON . stringify ( {
73- key : object . key ,
74- uploaded : new Date ( object . uploaded ) ,
75- downloadedAt : downloadedAt ? new Date ( downloadedAt ) : null ,
76- } ) + "\n" ) )
77+ await writer . write (
78+ new TextEncoder ( ) . encode (
79+ JSON . stringify ( {
80+ key : object . key ,
81+ uploaded : new Date ( object . uploaded ) ,
82+ downloadedAt : downloadedAt ? new Date ( downloadedAt ) : null ,
83+ } ) + "\n" ,
84+ ) ,
85+ ) ;
7786 // event.context.cloudflare.context.waitUntil(binding.delete(object.key));
7887 // event.context.cloudflare.context.waitUntil(
7988 // downloadedAtBucket.removeItem(object.key),
8089 // );
8190 }
82- const downloadedAt = ( await downloadedAtBucket . getItem ( object . key ) ) ;
91+ const downloadedAt = await downloadedAtBucket . getItem ( object . key ) ;
8392
8493 if ( ! downloadedAt ) {
8594 continue ;
@@ -90,15 +99,16 @@ async function iterateAndDelete(event: H3Event, writable: WritableStream, signal
9099 const oneMonthAgo = new Date ( today ) ;
91100 oneMonthAgo . setMonth ( oneMonthAgo . getMonth ( ) - 1 ) ;
92101 const uploadedDate2 = new Date ( uploaded ) ; // uploaded already parsed above
93- if (
94- downloadedAtDate <= oneMonthAgo &&
95- uploadedDate2 <= oneMonthAgo
96- ) {
97- await writer . write ( new TextEncoder ( ) . encode ( JSON . stringify ( {
98- key : object . key ,
99- uploaded : new Date ( object . uploaded ) ,
100- downloadedAt : new Date ( downloadedAt ) ,
101- } ) + "\n" ) )
102+ if ( downloadedAtDate <= oneMonthAgo && uploadedDate2 <= oneMonthAgo ) {
103+ await writer . write (
104+ new TextEncoder ( ) . encode (
105+ JSON . stringify ( {
106+ key : object . key ,
107+ uploaded : new Date ( object . uploaded ) ,
108+ downloadedAt : new Date ( downloadedAt ) ,
109+ } ) + "\n" ,
110+ ) ,
111+ ) ;
102112 // event.context.cloudflare.context.waitUntil(binding.delete(object.key));
103113 // event.context.cloudflare.context.waitUntil(
104114 // downloadedAtBucket.removeItem(object.key),
@@ -111,5 +121,5 @@ async function iterateAndDelete(event: H3Event, writable: WritableStream, signal
111121 cursor = next . cursor ;
112122 }
113123 }
114- writer . releaseLock ( )
124+ writer . releaseLock ( ) ;
115125}
0 commit comments