Skip to content

Commit 2302713

Browse files
committed
Tree version.
1 parent 20af513 commit 2302713

File tree

3 files changed

+26
-21
lines changed

3 files changed

+26
-21
lines changed

packages/shared/sdk-client/src/LDClientImpl.ts

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -565,19 +565,20 @@ export default class LDClientImpl implements LDClient {
565565
}
566566

567567
successDetail.prerequisites?.forEach((prereqKey) => {
568-
const prereqFlag = this.flagManager.get(prereqKey);
569-
if (prereqFlag) {
570-
this.eventProcessor?.sendEvent(
571-
eventFactory.evalEventClient(
572-
prereqKey,
573-
prereqFlag.flag.value,
574-
undefined,
575-
prereqFlag.flag,
576-
evalContext,
577-
prereqFlag.flag.reason,
578-
),
579-
);
580-
}
568+
this.variation(prereqKey, undefined);
569+
// const prereqFlag = this.flagManager.get(prereqKey);
570+
// if (prereqFlag) {
571+
// this.eventProcessor?.sendEvent(
572+
// eventFactory.evalEventClient(
573+
// prereqKey,
574+
// prereqFlag.flag.value,
575+
// undefined,
576+
// prereqFlag.flag,
577+
// evalContext,
578+
// prereqFlag.flag.reason,
579+
// ),
580+
// );
581+
// }
581582
});
582583
this.eventProcessor?.sendEvent(
583584
eventFactory.evalEventClient(

packages/shared/sdk-server/__tests__/evaluation/Evaluator.prerequisite.test.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ describe('given a flag payload with prerequisites', () => {
151151

152152
expect(res.detail.reason.kind).toEqual('FALLTHROUGH');
153153

154-
expect(res.detail.prerequisites).toEqual(['is-prereq', 'has-prereq-depth-1']);
154+
expect(res.detail.prerequisites).toEqual(['has-prereq-depth-1']);
155155
});
156156

157157
it('can track prerequisites for a flag with multiple prereqs with and without additional prereqs', async () => {
@@ -164,9 +164,6 @@ describe('given a flag payload with prerequisites', () => {
164164
expect(res.detail.reason.kind).toEqual('FALLTHROUGH');
165165

166166
expect(res.detail.prerequisites).toEqual([
167-
'is-prereq',
168-
'has-prereq-depth-1',
169-
'is-prereq',
170167
'has-prereq-depth-1',
171168
'has-prereq-depth-2',
172169
'is-prereq',
@@ -184,6 +181,6 @@ describe('given a flag payload with prerequisites', () => {
184181
expect(res.detail.reason.kind).toEqual('PREREQUISITE_FAILED');
185182
expect(res.detail.reason.prerequisiteKey).toEqual('has-prereq-depth-1');
186183

187-
expect(res.detail.prerequisites).toEqual(['is-prereq', 'has-prereq-depth-1']);
184+
expect(res.detail.prerequisites).toEqual(['has-prereq-depth-1']);
188185
});
189186
});

packages/shared/sdk-server/src/evaluation/Evaluator.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ export default class Evaluator {
146146
res.events = state.events;
147147
cb(res);
148148
},
149+
true,
149150
eventFactory,
150151
);
151152
}
@@ -166,6 +167,7 @@ export default class Evaluator {
166167
state: EvalState,
167168
visitedFlags: string[],
168169
cb: (res: EvalResult) => void,
170+
topLevel: boolean,
169171
eventFactory?: EventFactory,
170172
): void {
171173
if (!flag.on) {
@@ -201,6 +203,7 @@ export default class Evaluator {
201203
cb(this.variationForContext(flag.fallthrough, context, flag, Reasons.Fallthrough));
202204
});
203205
},
206+
topLevel,
204207
eventFactory,
205208
);
206209
}
@@ -221,6 +224,7 @@ export default class Evaluator {
221224
state: EvalState,
222225
visitedFlags: string[],
223226
cb: (res: EvalResult | undefined) => void,
227+
topLevel: boolean,
224228
eventFactory?: EventFactory,
225229
): void {
226230
let prereqResult: EvalResult | undefined;
@@ -260,10 +264,12 @@ export default class Evaluator {
260264
(res) => {
261265
// eslint-disable-next-line no-param-reassign
262266
state.events ??= [];
263-
// eslint-disable-next-line no-param-reassign
264-
state.prerequisites ??= [];
267+
if (topLevel) {
268+
// eslint-disable-next-line no-param-reassign
269+
state.prerequisites ??= [];
265270

266-
state.prerequisites.push(prereqFlag.key);
271+
state.prerequisites.push(prereqFlag.key);
272+
}
267273
if (eventFactory) {
268274
state.events.push(
269275
eventFactory.evalEventServer(prereqFlag, context, res.detail, null, flag),
@@ -281,6 +287,7 @@ export default class Evaluator {
281287
}
282288
return iterCb(true);
283289
},
290+
false,
284291
eventFactory,
285292
);
286293
});

0 commit comments

Comments
 (0)