@@ -33,7 +33,7 @@ export class KeyvSqlite extends EventEmitter implements KeyvStoreAdapter {
3333 updateCatches : ( args : [ string , unknown ] [ ] , ttl ?: number ) => void ;
3434 emptyCaches : ( ) => void ;
3535 findCaches : ( namespace : string | undefined , limit : number , offset : number , expiredAt : number ) => CacheObject [ ] ;
36- findKeys : ( pattern : string | undefined , limit : number , offset : number , expiredAt : number ) => CacheObject [ ] ;
36+ findKeys : ( pattern : string | undefined , expiredAt : number ) => CacheObject [ ] ;
3737
3838 constructor ( options ?: KeyvSqliteOptions ) {
3939 super ( ) ;
@@ -73,8 +73,8 @@ CREATE INDEX IF NOT EXISTS idx_expired_caches ON ${tableName}(expiredAt);
7373 const finderStatement = this . sqlite . prepare < [ string , number , number , number ] , CacheObject > (
7474 `SELECT * FROM ${ tableName } WHERE cacheKey LIKE ? AND (expiredAt = -1 OR expiredAt > ?) LIMIT ? OFFSET ?` ,
7575 ) ;
76- const findKeysStatement = this . sqlite . prepare < [ string , number , number , number ] , CacheObject > (
77- `SELECT cacheKey FROM ${ tableName } WHERE cacheKey LIKE ? AND (expiredAt = -1 OR expiredAt > ?) LIMIT ? OFFSET ? ` ,
76+ const findKeysStatement = this . sqlite . prepare < [ string , number ] , CacheObject > (
77+ `SELECT cacheKey FROM ${ tableName } WHERE cacheKey LIKE ? AND (expiredAt = -1 OR expiredAt > ?)` ,
7878 ) ;
7979 const purgeStatement = this . sqlite . prepare ( `DELETE FROM ${ tableName } WHERE expiredAt != -1 AND expiredAt < ?` ) ;
8080 const emptyStatement = this . sqlite . prepare ( `DELETE FROM ${ tableName } WHERE cacheKey LIKE ?` ) ;
@@ -145,10 +145,10 @@ CREATE INDEX IF NOT EXISTS idx_expired_caches ON ${tableName}(expiredAt);
145145 . filter ( ( data ) => data !== undefined ) ;
146146 } ;
147147
148- this . findKeys = ( pattern , limit , offset , expiredAt ) => {
148+ this . findKeys = ( pattern , expiredAt ) => {
149149 const _pattern = pattern ?. replaceAll ( "*" , "%" ) ?? ""
150150 return findKeysStatement
151- . all ( _pattern ? `%${ pattern } %` : '%' , expiredAt , limit , offset )
151+ . all ( _pattern ? `%${ pattern } %` : '%' , expiredAt )
152152 . filter ( ( data ) => data !== undefined ) ;
153153 } ;
154154 }
@@ -225,29 +225,8 @@ CREATE INDEX IF NOT EXISTS idx_expired_caches ON ${tableName}(expiredAt);
225225 yield * iterate ( 0 ) ;
226226 }
227227
228- async * keys ( pattern ?: string ) {
229- const limit = Number . parseInt ( this . opts . iterationLimit ! as string , 10 ) || 10 ;
230- const time = now ( ) ;
231- const find = this . findKeys ;
232-
233- // @ts -expect-error - iterate
234- const iterate = async function * ( offset : number ) {
235- const entries = find ( pattern , limit , offset , time ) ;
236-
237- if ( entries . length === 0 ) {
238- return ;
239- }
240-
241- for ( const entry of entries ) {
242- // biome-ignore lint: <explanation>
243- offset += 1 ;
244- yield entry . cacheKey ;
245- }
246-
247- yield * iterate ( offset ) ;
248- } ;
249-
250- yield * iterate ( 0 ) ;
228+ async keys ( pattern ?: string ) : Promise < string [ ] > {
229+ return this . findKeys ( pattern , now ( ) ) . map ( ( entry ) => entry . cacheKey ) ;
251230 }
252231
253232 async disconnect ( ) {
0 commit comments