|
1 |
| -import type { |
2 |
| - IEventStore, |
3 |
| - IFeatureToggleDeltaQuery, |
4 |
| - IFeatureToggleQuery, |
5 |
| - IFlagResolver, |
6 |
| - ISegmentReadModel, |
7 |
| - IUnleashConfig, |
| 1 | +import { |
| 2 | + FEATURE_PROJECT_CHANGE, |
| 3 | + type IEventStore, |
| 4 | + type IFeatureToggleDeltaQuery, |
| 5 | + type IFeatureToggleQuery, |
| 6 | + type IFlagResolver, |
| 7 | + type ISegmentReadModel, |
| 8 | + type IUnleashConfig, |
8 | 9 | } from '../../../types';
|
9 | 10 | import type ConfigurationRevisionService from '../../feature-toggle/configuration-revision-service';
|
10 | 11 | import { UPDATE_REVISION } from '../../feature-toggle/configuration-revision-service';
|
@@ -238,6 +239,16 @@ export class ClientFeatureToggleDelta extends EventEmitter {
|
238 | 239 | latestRevision,
|
239 | 240 | );
|
240 | 241 |
|
| 242 | + const featuresMovedEvents = changeEvents |
| 243 | + .filter((event) => event.featureName) |
| 244 | + .filter((event) => event.type === FEATURE_PROJECT_CHANGE) |
| 245 | + .map((event) => ({ |
| 246 | + eventId: latestRevision, |
| 247 | + type: DELTA_EVENT_TYPES.FEATURE_REMOVED, |
| 248 | + featureName: event.featureName!, |
| 249 | + project: event.data.oldProject, |
| 250 | + })); |
| 251 | + |
241 | 252 | const featuresUpdated = [
|
242 | 253 | ...new Set(
|
243 | 254 | changeEvents
|
@@ -299,6 +310,7 @@ export class ClientFeatureToggleDelta extends EventEmitter {
|
299 | 310 | }),
|
300 | 311 | );
|
301 | 312 | this.delta[environment].addEvents([
|
| 313 | + ...featuresMovedEvents, |
302 | 314 | ...featuresUpdatedEvents,
|
303 | 315 | ...featuresRemovedEvents,
|
304 | 316 | ...segmentsUpdatedEvents,
|
|
0 commit comments