@@ -335,21 +335,28 @@ export abstract class PostHogCoreStateless {
335
335
personProperties : Record < string , string > = { } ,
336
336
groupProperties : Record < string , Record < string , string > > = { } ,
337
337
disableGeoip ?: boolean
338
- ) : Promise < boolean | string | undefined > {
338
+ ) : Promise < {
339
+ response : boolean | string | undefined
340
+ requestId : string | undefined
341
+ } > {
339
342
await this . _initPromise
340
343
341
- const featureFlags = await this . getFeatureFlagsStateless (
344
+ const decideResponse = await this . getFeatureFlagsStateless (
342
345
distinctId ,
343
346
groups ,
344
347
personProperties ,
345
348
groupProperties ,
346
349
disableGeoip ,
347
350
[ key ]
348
351
)
352
+ const featureFlags = decideResponse . flags
349
353
350
354
if ( ! featureFlags ) {
351
355
// If we haven't loaded flags yet, or errored out, we respond with undefined
352
- return undefined
356
+ return {
357
+ response : undefined ,
358
+ requestId : undefined ,
359
+ }
353
360
}
354
361
355
362
let response = featureFlags [ key ]
@@ -361,7 +368,10 @@ export abstract class PostHogCoreStateless {
361
368
}
362
369
363
370
// If we have flags we either return the value (true or string) or false
364
- return response
371
+ return {
372
+ response,
373
+ requestId : decideResponse . requestId ,
374
+ }
365
375
}
366
376
367
377
protected async getFeatureFlagPayloadStateless (
@@ -436,19 +446,21 @@ export abstract class PostHogCoreStateless {
436
446
groupProperties : Record < string , Record < string , string > > = { } ,
437
447
disableGeoip ?: boolean ,
438
448
flagKeysToEvaluate ?: string [ ]
439
- ) : Promise < PostHogDecideResponse [ 'featureFlags' ] | undefined > {
449
+ ) : Promise < {
450
+ flags : PostHogDecideResponse [ 'featureFlags' ] | undefined
451
+ payloads : PostHogDecideResponse [ 'featureFlagPayloads' ] | undefined
452
+ requestId : PostHogDecideResponse [ 'requestId' ] | undefined
453
+ } > {
440
454
await this . _initPromise
441
455
442
- return (
443
- await this . getFeatureFlagsAndPayloadsStateless (
444
- distinctId ,
445
- groups ,
446
- personProperties ,
447
- groupProperties ,
448
- disableGeoip ,
449
- flagKeysToEvaluate
450
- )
451
- ) . flags
456
+ return await this . getFeatureFlagsAndPayloadsStateless (
457
+ distinctId ,
458
+ groups ,
459
+ personProperties ,
460
+ groupProperties ,
461
+ disableGeoip ,
462
+ flagKeysToEvaluate
463
+ )
452
464
}
453
465
454
466
protected async getFeatureFlagsAndPayloadsStateless (
@@ -461,6 +473,7 @@ export abstract class PostHogCoreStateless {
461
473
) : Promise < {
462
474
flags : PostHogDecideResponse [ 'featureFlags' ] | undefined
463
475
payloads : PostHogDecideResponse [ 'featureFlagPayloads' ] | undefined
476
+ requestId : PostHogDecideResponse [ 'requestId' ] | undefined
464
477
} > {
465
478
await this . _initPromise
466
479
@@ -481,6 +494,7 @@ export abstract class PostHogCoreStateless {
481
494
return {
482
495
flags : undefined ,
483
496
payloads : undefined ,
497
+ requestId : decideResponse ?. requestId ,
484
498
}
485
499
}
486
500
@@ -496,6 +510,7 @@ export abstract class PostHogCoreStateless {
496
510
return {
497
511
flags,
498
512
payloads : parsedPayloads ,
513
+ requestId : decideResponse ?. requestId ,
499
514
}
500
515
}
501
516
0 commit comments