(experimentId: ExperimentId)
| 241 | } |
| 242 | |
| 243 | async refreshExperiment(experimentId: ExperimentId): Promise<void> { |
| 244 | await this.ensureInitialized(); |
| 245 | assert(experimentId in EXPERIMENTS, `Unknown experimentId: ${experimentId}`); |
| 246 | |
| 247 | if (!this.isExperimentSupported(experimentId) || !this.isRemoteEvaluationEnabled()) { |
| 248 | return; |
| 249 | } |
| 250 | |
| 251 | const existing = this.refreshInFlight.get(experimentId); |
| 252 | if (existing) { |
| 253 | return existing; |
| 254 | } |
| 255 | |
| 256 | const promise = this.refreshExperimentImpl(experimentId).finally(() => { |
| 257 | this.refreshInFlight.delete(experimentId); |
| 258 | }); |
| 259 | |
| 260 | this.refreshInFlight.set(experimentId, promise); |
| 261 | return promise; |
| 262 | } |
| 263 | |
| 264 | private async refreshExperimentImpl(experimentId: ExperimentId): Promise<void> { |
| 265 | const client = this.telemetryService.getPostHogClient(); |
no test coverage detected