@@ -10,7 +10,7 @@ import * as brPackageManager from '@bedrock/package-manager';
1010import * as database from '@bedrock/mongodb' ;
1111import { getKeyOp , splitKeyId } from './helpers.js' ;
1212import assert from 'assert-plus' ;
13- import LRU from 'lru-cache' ;
13+ import { LRUCache as LRU } from 'lru-cache' ;
1414import { parseTemplate } from 'url-template' ;
1515
1616const { util : { BedrockError} } = bedrock ;
@@ -31,10 +31,23 @@ import './aeskw.js';
3131
3232bedrock . events . on ( 'bedrock.init' , async ( ) => {
3333 const cfg = bedrock . config [ 'ssm-mongodb' ] ;
34- KEY_RECORD_CACHE = new LRU ( {
35- max : cfg . keyRecordCache . maxSize ,
36- maxAge : cfg . keyRecordCache . maxAge
37- } ) ;
34+ let cacheConfig = cfg . keyRecordCache ;
35+
36+ // coerce `maxSize` w/o `sizeCalculation` to `max`
37+ if ( cacheConfig . maxSize !== undefined &&
38+ cacheConfig . sizeCalculation === undefined ) {
39+ cacheConfig = { ...cacheConfig , max : cacheConfig . maxSize } ;
40+ delete cacheConfig . maxSize ;
41+ }
42+
43+ // coerce `maxAge` to `ttl` in `cacheConfig`
44+ if ( cacheConfig . maxAge !== undefined ) {
45+ cacheConfig = { ...cacheConfig , ttl : cacheConfig . maxAge } ;
46+ delete cacheConfig . maxAge ;
47+ }
48+
49+ KEY_RECORD_CACHE = new LRU ( cacheConfig ) ;
50+
3851 return brPackageManager . register ( {
3952 alias : 'ssm-v1' ,
4053 packageName : '@bedrock/ssm-mongodb' ,
@@ -329,7 +342,7 @@ async function _getKeyRecord({id}) {
329342 try {
330343 record = await promise ;
331344 } catch ( e ) {
332- KEY_RECORD_CACHE . del ( id ) ;
345+ KEY_RECORD_CACHE . delete ( id ) ;
333346 throw e ;
334347 }
335348
0 commit comments