@@ -28,55 +28,33 @@ export default defineEventHandler(async (event) => {
2828 let keepGoing = true ;
2929
3030 while ( uniqueNodes . length < maxNodes && keepGoing && ! signal . aborted ) {
31- const prefix = `${ usePackagesBucket . base } :` ;
3231 const listResult = await r2Binding . list ( {
33- prefix,
32+ prefix : usePackagesBucket . base ,
3433 limit : 1000 ,
3534 cursor,
3635 } ) ;
3736 const { objects, truncated } = listResult ;
3837 cursor = truncated ? listResult . cursor : undefined ;
3938
40- const repoMap = new Map < string , { org : string ; repo : string } > ( ) ;
41-
42- for ( const obj of objects ) {
43- const parts = obj . key . split ( ":" ) ;
44- // bucket:package:org:repo:sha:packageName
45- if ( parts . length >= 4 ) {
46- const org = parts [ 2 ] ;
47- const repo = parts [ 3 ] ;
48-
49- if ( org . includes ( "/" ) || repo . includes ( "/" ) ) {
50- continue ;
51- }
52-
53- const key = `${ org } /${ repo } ` ;
54- if ( ! repoMap . has ( key ) ) {
55- repoMap . set ( key , { org, repo } ) ;
56- }
57- }
58- }
59-
60- const filteredRepos = Array . from ( repoMap . values ( ) ) . filter (
61- ( { org, repo } ) => {
62- const orgRepo = `${ org } /${ repo } ` . toLowerCase ( ) ;
63- return (
64- org . toLowerCase ( ) . includes ( searchText ) ||
65- repo . toLowerCase ( ) . includes ( searchText ) ||
66- orgRepo . includes ( searchText )
67- ) ;
68- } ,
69- ) ;
39+ const parsedObjects = objects . map ( ( obj ) => parseKey ( obj . key ) ) ;
40+ const filtered = parsedObjects . filter ( ( obj ) => {
41+ const orgRepo = `${ obj . org } /${ obj . repo } ` . toLowerCase ( ) ;
42+ return (
43+ obj . org . toLowerCase ( ) . includes ( searchText ) ||
44+ obj . repo . toLowerCase ( ) . includes ( searchText ) ||
45+ orgRepo . includes ( searchText )
46+ ) ;
47+ } ) ;
7048
71- for ( const { org , repo } of filteredRepos ) {
72- const key = `${ org } /${ repo } ` ;
49+ for ( const obj of filtered ) {
50+ const key = `${ obj . org } /${ obj . repo } ` ;
7351 if ( ! seen . has ( key ) ) {
7452 seen . add ( key ) ;
7553 uniqueNodes . push ( {
76- name : repo ,
54+ name : obj . repo ,
7755 owner : {
78- login : org ,
79- avatarUrl : `https://github.com/${ org } .png` ,
56+ login : obj . org ,
57+ avatarUrl : `https://github.com/${ obj . org } .png` ,
8058 } ,
8159 } ) ;
8260 if ( uniqueNodes . length >= maxNodes ) break ;
0 commit comments