@@ -16,7 +16,7 @@ import { DEFAULT_CORE_TRIGGER_IDS } from './upgrades/defaultSystemActionTriggers
1616import { ICoreSystem } from '@sofie-automation/meteor-lib/dist/collections/CoreSystem'
1717import { ICoreSystemSettings } from '@sofie-automation/shared-lib/dist/core/model/CoreSystemSettings'
1818import { logger } from '../logging'
19- import { literal , unprotectString } from '../lib/tempLib'
19+ import { assertNever , literal , unprotectString } from '../lib/tempLib'
2020
2121// Release 52
2222
@@ -71,15 +71,27 @@ export const addSteps = addMigrationSteps('1.52.0', [
7171 const studios = await Studios . findFetchAsync ( { routeSetsWithOverrides : { $exists : true } } )
7272
7373 for ( const studio of studios ) {
74- const routeSetsDefaults = studio . routeSetsWithOverrides . defaults as any as Record <
75- string ,
76- StudioRouteSet
77- >
74+ // .abPlayers in the defaults:
75+ const routeSetsDefaults = studio . routeSetsWithOverrides . defaults
7876 for ( const key of Object . keys ( routeSetsDefaults ) ) {
7977 if ( ! routeSetsDefaults [ key ] . abPlayers ) {
8078 return 'AB players must be added to routeSetsWithOverrides'
8179 }
8280 }
81+ // .abPlayers in the overrides:
82+ for ( const override of studio . routeSetsWithOverrides . overrides ) {
83+ if ( override . op === 'set' ) {
84+ const value = override . value as StudioRouteSet
85+
86+ if ( ! value . abPlayers ) {
87+ return 'AB players must be added to routeSetsWithOverrides'
88+ }
89+ } else if ( override . op === 'delete' ) {
90+ // ignore this
91+ } else {
92+ assertNever ( override )
93+ }
94+ }
8395 }
8496
8597 return false
@@ -88,16 +100,29 @@ export const addSteps = addMigrationSteps('1.52.0', [
88100 const studios = await Studios . findFetchAsync ( { routeSetsWithOverrides : { $exists : true } } )
89101
90102 for ( const studio of studios ) {
91- const newRouteSetswithOverrides = studio . routeSetsWithOverrides
92- for ( const key of Object . keys ( newRouteSetswithOverrides . defaults ) ) {
93- if ( ! newRouteSetswithOverrides . defaults [ key ] . abPlayers ) {
94- newRouteSetswithOverrides . defaults [ key ] . abPlayers = [ ]
103+ const newRouteSetsWithOverrides = studio . routeSetsWithOverrides
104+
105+ // .abPlayers in the defaults:
106+ const routeSetsDefaults = newRouteSetsWithOverrides . defaults
107+ for ( const key of Object . keys ( routeSetsDefaults ) ) {
108+ if ( ! routeSetsDefaults [ key ] . abPlayers ) {
109+ routeSetsDefaults [ key ] . abPlayers = [ ]
110+ }
111+ }
112+ // .abPlayers in the overrides:
113+ for ( const override of newRouteSetsWithOverrides . overrides ) {
114+ if ( override . op === 'set' ) {
115+ const value = override . value as StudioRouteSet
116+
117+ if ( ! value . abPlayers ) {
118+ value . abPlayers = [ ]
119+ }
95120 }
96121 }
97122
98123 await Studios . updateAsync ( studio . _id , {
99124 $set : {
100- routeSetsWithOverrides : newRouteSetswithOverrides ,
125+ routeSetsWithOverrides : newRouteSetsWithOverrides ,
101126 } ,
102127 } )
103128 }
0 commit comments