Skip to content

Commit d0019e1

Browse files
authored
FFM-9574 Upgrade lru-cache to version 7.18.0 (#88)
* FFM-9574 RC for customer PR * FFM-9574 RC for customer PR * FFM-9574 Upgrade lru-cache to 7.0.0 * FFM-9574 Use as * syntax for LRU * FFM-9574 Use latest minor version 7 of lib. Re-add deleted example code * FFM-9574 Package-lock of example code * FFM-9574 1.3.4 release prep
1 parent 5e95033 commit d0019e1

File tree

9 files changed

+6770
-91
lines changed

9 files changed

+6770
-91
lines changed

examples/getting_started/package-lock.json

Lines changed: 6706 additions & 41 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package-lock.json

Lines changed: 40 additions & 33 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@harnessio/ff-nodejs-server-sdk",
3-
"version": "1.3.3",
3+
"version": "1.3.4",
44
"description": "Feature flags SDK for NodeJS environments",
55
"main": "dist/cjs/index.js",
66
"module": "dist/esm/index.mjs",
@@ -61,13 +61,12 @@
6161
"url": "https://github.com/harness/ff-nodejs-server-sdk"
6262
},
6363
"dependencies": {
64-
"@types/lru-cache": "^7.10.10",
6564
"axios": "^0.22.0",
6665
"axios-retry": "^3.2.0",
6766
"jwt-decode": "^3.1.2",
6867
"keyv": "^4.0.3",
6968
"keyv-file": "^0.2.0",
70-
"lru-cache": "^6.0.0",
69+
"lru-cache": "^7.18.0",
7170
"murmurhash": "^2.0.0",
7271
"tslib": "~2.3.0"
7372
},

src/cache.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@ export class SimpleCache implements KeyValueStore {
1111
return this.cache[key];
1212
}
1313

14-
del(key: string): void {
14+
delete(key: string): void {
1515
delete this.cache[key];
1616
}
1717

18-
keys(): string[] {
19-
return Object.keys(this.cache);
18+
*keys(): Generator<string, void, void> {
19+
for (const key of Object.keys(this.cache)) {
20+
yield key;
21+
}
2022
}
2123
}

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import Client, { Event } from './client';
2-
import LRU from 'lru-cache';
2+
import * as LRU from 'lru-cache';
33
import { Options, Target } from './types';
44
import { Logger } from './log';
55
import { AsyncKeyValueStore, KeyValueStore } from './types';

src/repository.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export class StorageRepository implements Repository {
4545
const flagKey = this.formatFlagKey(identifier);
4646
if (this.store) {
4747
await this.store.set(flagKey, fc);
48-
this.cache.del(flagKey);
48+
this.cache.delete(flagKey);
4949
} else {
5050
this.cache.set(flagKey, fc);
5151
}
@@ -61,7 +61,7 @@ export class StorageRepository implements Repository {
6161
const segmentKey = this.formatSegmentKey(identifier);
6262
if (this.store) {
6363
await this.store.set(segmentKey, segment);
64-
this.cache.del(segmentKey);
64+
this.cache.delete(segmentKey);
6565
} else {
6666
this.cache.set(segmentKey, segment);
6767
}
@@ -75,7 +75,7 @@ export class StorageRepository implements Repository {
7575
if (this.store) {
7676
await this.store.del(flagKey);
7777
}
78-
this.cache.del(flagKey);
78+
this.cache.delete(flagKey);
7979
if (this.eventBus) {
8080
this.eventBus.emit(RepositoryEvent.FLAG_DELETED, identifier);
8181
}
@@ -86,7 +86,7 @@ export class StorageRepository implements Repository {
8686
if (this.store) {
8787
await this.store.del(segmentKey);
8888
}
89-
this.cache.del(segmentKey);
89+
this.cache.delete(segmentKey);
9090
if (this.eventBus) {
9191
this.eventBus.emit(RepositoryEvent.SEGMENT_DELETED, identifier);
9292
}
@@ -172,4 +172,6 @@ export class StorageRepository implements Repository {
172172
private formatSegmentKey(key: string): string {
173173
return `segments/${key}`;
174174
}
175+
176+
175177
}

src/store.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,11 @@ export class FileStore implements AsyncKeyValueStore {
2525
return this.keyv.delete(key);
2626
}
2727

28-
keys(): Promise<string[]> {
29-
return Promise.resolve(this.keyvFile.keys());
28+
keys(): Promise<Generator<string, void, void>> {
29+
return Promise.resolve((function* (keys: string[]) {
30+
for (const key of keys) {
31+
yield key;
32+
}
33+
})(this.keyvFile.keys()));
3034
}
3135
}

src/types.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,15 @@ export interface Query {
6565
export interface KeyValueStore {
6666
set(key: string, value: unknown): void;
6767
get(key: string): unknown;
68-
del(key: string): void;
69-
keys(): string[];
68+
delete(key: string): void;
69+
keys(): Generator<string, void, void>;
7070
}
7171

7272
export interface AsyncKeyValueStore {
7373
set(key: string, value: unknown): Promise<true>;
7474
get<T>(key: string): Promise<T>;
7575
del(key: string): Promise<boolean>;
76-
keys(): Promise<string[]>;
76+
keys(): Promise<Generator<string, void, void>>;
7777
}
7878

7979
export interface Target {

src/version.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export const VERSION = '1.3.3';
1+
export const VERSION = "1.3.4";

0 commit comments

Comments
 (0)