Skip to content

Commit 17c1354

Browse files
committed
fix(node-server-sdk-redis): changes for codefresh
1 parent 00a57b5 commit 17c1354

File tree

3 files changed

+23
-5
lines changed

3 files changed

+23
-5
lines changed

packages/store/node-server-sdk-redis/src/RedisCore.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export default class RedisCore implements interfaces.PersistentDataStore {
2929
constructor(
3030
private readonly state: RedisClientState,
3131
private readonly logger?: LDLogger,
32+
private readonly localFeatureStore?: any,
3233
) {
3334
this.initedKey = this.state.prefixedKey('$inited');
3435
}
@@ -107,8 +108,21 @@ export default class RedisCore implements interfaces.PersistentDataStore {
107108
): void {
108109
if (!this.state.isConnected() && !this.state.isInitialConnection()) {
109110
this.logger?.warn('Attempted to fetch all keys while Redis connection is down');
110-
callback(undefined);
111-
return;
111+
this.localFeatureStore().then(
112+
(items: any) => {
113+
let localResults = {};
114+
if (kind.namespace === 'features') {
115+
localResults = items.features;
116+
} else {
117+
localResults = items.segments;
118+
}
119+
callback(localResults as any);
120+
},
121+
(err: any) => {
122+
console.log(err);
123+
callback(undefined);
124+
},
125+
);
112126
}
113127

114128
this.state.getClient().hgetall(this.state.prefixedKey(kind.namespace), (err, values) => {

packages/store/node-server-sdk-redis/src/RedisFeatureStore.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@ export default class RedisFeatureStore implements LDFeatureStore {
2323
constructor(
2424
options?: LDRedisOptions,
2525
private readonly logger?: LDLogger,
26+
localFeatureStore?: any,
2627
) {
2728
this.wrapper = new PersistentDataStoreWrapper(
28-
new RedisCore(new RedisClientState(options, logger), logger),
29+
new RedisCore(new RedisClientState(options, logger), logger, localFeatureStore),
2930
TtlFromOptions(options),
3031
);
3132
}

packages/store/node-server-sdk-redis/src/RedisFeatureStoreFactory.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@ import RedisFeatureStore from './RedisFeatureStore';
2323
* @returns
2424
* A factory function suitable for use in the SDK configuration (LDOptions).
2525
*/
26-
export default function RedisFeatureStoreFactory(options?: LDRedisOptions) {
26+
export default function RedisFeatureStoreFactory(
27+
options?: LDRedisOptions,
28+
localFeatureStore?: any,
29+
) {
2730
return (config: LDClientContext) =>
28-
new RedisFeatureStore(options, config.basicConfiguration.logger);
31+
new RedisFeatureStore(options, config.basicConfiguration.logger, localFeatureStore);
2932
}

0 commit comments

Comments
 (0)