Skip to content

Commit a88df0d

Browse files
committed
wip: type alias
1 parent a7df01f commit a88df0d

File tree

20 files changed

+61
-39
lines changed

20 files changed

+61
-39
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export { CustomPublishCollection } from './customPublishCollection'
22
export { setUpOptimizedObserverArray } from './optimizedObserverArray'
3-
export { TriggerUpdate } from './optimizedObserverBase'
3+
export { TriggerUpdate, SetupObserversResult } from './optimizedObserverBase'
44
export { setUpCollectionOptimizedObserver } from './optimizedObserverCollection'
55
export { meteorCustomPublish, CustomPublish, CustomPublishChanges } from './publish'

meteor/server/lib/customPublication/optimizedObserverArray.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import { Meteor } from 'meteor/meteor'
22
import { ReadonlyDeep } from 'type-fest'
33
import { clone, ProtectedString } from '../tempLib'
4-
import { TriggerUpdate, setUpOptimizedObserverInner } from './optimizedObserverBase'
4+
import { SetupObserversResult, TriggerUpdate, setUpOptimizedObserverInner } from './optimizedObserverBase'
55
import { CustomPublish, CustomPublishChanges } from './publish'
66
import { diffObject } from './lib'
7-
import { LiveQueryHandle } from '../lib'
87

98
/**
109
* This is an optimization to enable multiple listeners that observes (and manipulates) the same data, to only use one observer and manipulator,
@@ -29,7 +28,7 @@ export async function setUpOptimizedObserverArray<
2928
args: ReadonlyDeep<Args>,
3029
/** Trigger an update by mutating the context of manipulateData */
3130
triggerUpdate: TriggerUpdate<UpdateProps>
32-
) => Promise<Array<Promise<LiveQueryHandle> | LiveQueryHandle>>,
31+
) => Promise<SetupObserversResult>,
3332
manipulateData: (
3433
args: ReadonlyDeep<Args>,
3534
state: Partial<State>,

meteor/server/lib/customPublication/optimizedObserverBase.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ const optimizedObservers: Record<string, OptimizedObserverWrapper<any, unknown,
4242

4343
export type TriggerUpdate<UpdateProps extends Record<string, any>> = (updateProps: Partial<UpdateProps>) => void
4444

45+
export type SetupObserversResult = Array<Promise<LiveQueryHandle> | LiveQueryHandle>
46+
4547
/**
4648
* This should not be used directly, and should be used through one of the setUpOptimizedObserverArray or setUpCollectionOptimizedObserver wrappers
4749
*
@@ -66,7 +68,7 @@ export async function setUpOptimizedObserverInner<
6668
args: ReadonlyDeep<Args>,
6769
/** Trigger an update by mutating the context of manipulateData */
6870
triggerUpdate: TriggerUpdate<UpdateProps>
69-
) => Promise<Array<Promise<LiveQueryHandle> | LiveQueryHandle>>,
71+
) => Promise<SetupObserversResult>,
7072
manipulateData: (
7173
args: ReadonlyDeep<Args>,
7274
state: Partial<State>,
@@ -187,7 +189,7 @@ async function createOptimizedObserverWorker<
187189
args: ReadonlyDeep<Args>,
188190
/** Trigger an update by mutating the context of manipulateData */
189191
triggerUpdate: TriggerUpdate<UpdateProps>
190-
) => Promise<Array<Promise<LiveQueryHandle> | LiveQueryHandle>>,
192+
) => Promise<SetupObserversResult>,
191193
manipulateData: (
192194
args: ReadonlyDeep<Args>,
193195
state: Partial<State>,

meteor/server/lib/customPublication/optimizedObserverCollection.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import { ReadonlyDeep } from 'type-fest'
22
import { ProtectedString } from '../tempLib'
3-
import { LiveQueryHandle } from '../lib'
43
import { CustomPublishCollection } from './customPublishCollection'
5-
import { TriggerUpdate, setUpOptimizedObserverInner } from './optimizedObserverBase'
4+
import { SetupObserversResult, TriggerUpdate, setUpOptimizedObserverInner } from './optimizedObserverBase'
65
import { CustomPublish } from './publish'
76

87
/**
@@ -28,7 +27,7 @@ export async function setUpCollectionOptimizedObserver<
2827
args: ReadonlyDeep<Args>,
2928
/** Trigger an update by mutating the context of manipulateData */
3029
triggerUpdate: TriggerUpdate<UpdateProps>
31-
) => Promise<Array<Promise<LiveQueryHandle> | LiveQueryHandle>>,
30+
) => Promise<SetupObserversResult>,
3231
manipulateData: (
3332
args: ReadonlyDeep<Args>,
3433
state: Partial<State>,

meteor/server/publications/blueprintUpgradeStatus/publication.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ import {
77
CustomPublishCollection,
88
meteorCustomPublish,
99
setUpCollectionOptimizedObserver,
10+
SetupObserversResult,
1011
TriggerUpdate,
1112
} from '../../lib/customPublication'
1213
import { logger } from '../../logging'
1314
import { resolveCredentials } from '../../security/lib/credentials'
1415
import { NoSecurityReadAccess } from '../../security/noSecurity'
15-
import { LiveQueryHandle } from '../../lib/lib'
1616
import { ContentCache, createReactiveContentCache, ShowStyleBaseFields, StudioFields } from './reactiveContentCache'
1717
import { UpgradesContentObserver } from './upgradesContentObserver'
1818
import { BlueprintMapEntry, checkDocUpgradeStatus } from './checkStatus'
@@ -41,7 +41,7 @@ interface BlueprintUpgradeStatusUpdateProps {
4141
async function setupBlueprintUpgradeStatusPublicationObservers(
4242
_args: ReadonlyDeep<BlueprintUpgradeStatusArgs>,
4343
triggerUpdate: TriggerUpdate<BlueprintUpgradeStatusUpdateProps>
44-
): Promise<LiveQueryHandle[]> {
44+
): Promise<SetupObserversResult> {
4545
// TODO - can this be done cheaper?
4646
const cache = createReactiveContentCache()
4747

meteor/server/publications/deviceTriggersPreview.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { ReadonlyDeep } from 'type-fest'
77
import { CustomCollectionName, MeteorPubSub } from '@sofie-automation/meteor-lib/dist/api/pubsub'
88
import { DeviceTriggerArguments, UIDeviceTriggerPreview } from '@sofie-automation/meteor-lib/dist/api/MountedTriggers'
99
import { getCurrentTime } from '../lib/lib'
10-
import { setUpOptimizedObserverArray, TriggerUpdate } from '../lib/customPublication'
10+
import { SetupObserversResult, setUpOptimizedObserverArray, TriggerUpdate } from '../lib/customPublication'
1111
import { CustomPublish, meteorCustomPublish } from '../lib/customPublication/publish'
1212
import { StudioReadAccess } from '../security/studio'
1313
import { PeripheralDevices } from '../collections'
@@ -73,7 +73,7 @@ function prepareTriggerBufferForStudio(studioId: string) {
7373
async function setupDeviceTriggersPreviewsObservers(
7474
args: ReadonlyDeep<DeviceTriggersPreviewArgs>,
7575
triggerUpdate: TriggerUpdate<DeviceTriggersUpdateProps>
76-
): Promise<Meteor.LiveQueryHandle[]> {
76+
): Promise<SetupObserversResult> {
7777
const studioId = unprotectString(args.studioId)
7878
const lastTriggersStudio = prepareTriggerBufferForStudio(studioId)
7979

meteor/server/publications/packageManager/expectedPackages/publication.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
meteorCustomPublish,
77
setUpCollectionOptimizedObserver,
88
CustomPublishCollection,
9+
SetupObserversResult,
910
} from '../../../lib/customPublication'
1011
import { literal, omit, protectString } from '../../../lib/tempLib'
1112
import { logger } from '../../../logging'
@@ -72,7 +73,7 @@ const studioFieldSpecifier = literal<MongoFieldSpecifierOnesStrict<Pick<DBStudio
7273
async function setupExpectedPackagesPublicationObservers(
7374
args: ReadonlyDeep<ExpectedPackagesPublicationArgs>,
7475
triggerUpdate: TriggerUpdate<ExpectedPackagesPublicationUpdateProps>
75-
): Promise<Array<Promise<Meteor.LiveQueryHandle> | Meteor.LiveQueryHandle>> {
76+
): Promise<SetupObserversResult> {
7677
const contentCache = createReactiveContentCache()
7778

7879
// Push update

meteor/server/publications/packageManager/packageContainers.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,12 @@ import { check } from 'meteor/check'
88
import { Meteor } from 'meteor/meteor'
99
import { ReadonlyDeep } from 'type-fest'
1010
import { PeripheralDevices, Studios } from '../../collections'
11-
import { meteorCustomPublish, setUpOptimizedObserverArray, TriggerUpdate } from '../../lib/customPublication'
11+
import {
12+
meteorCustomPublish,
13+
SetupObserversResult,
14+
setUpOptimizedObserverArray,
15+
TriggerUpdate,
16+
} from '../../lib/customPublication'
1217
import { logger } from '../../logging'
1318
import { PeripheralDeviceReadAccess } from '../../security/peripheralDevice'
1419
import {
@@ -35,7 +40,7 @@ type PackageManagerPackageContainersState = Record<string, never>
3540
async function setupExpectedPackagesPublicationObservers(
3641
args: ReadonlyDeep<PackageManagerPackageContainersArgs>,
3742
triggerUpdate: TriggerUpdate<PackageManagerPackageContainersUpdateProps>
38-
): Promise<Array<Promise<Meteor.LiveQueryHandle> | Meteor.LiveQueryHandle>> {
43+
): Promise<SetupObserversResult> {
3944
// Set up observers:
4045
return [
4146
Studios.observeChanges(

meteor/server/publications/packageManager/playoutContext.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,12 @@ import { check } from 'meteor/check'
88
import { Meteor } from 'meteor/meteor'
99
import { ReadonlyDeep } from 'type-fest'
1010
import { PeripheralDevices, RundownPlaylists, Rundowns } from '../../collections'
11-
import { meteorCustomPublish, setUpOptimizedObserverArray, TriggerUpdate } from '../../lib/customPublication'
11+
import {
12+
meteorCustomPublish,
13+
SetupObserversResult,
14+
setUpOptimizedObserverArray,
15+
TriggerUpdate,
16+
} from '../../lib/customPublication'
1217
import { logger } from '../../logging'
1318
import { PeripheralDeviceReadAccess } from '../../security/peripheralDevice'
1419
import {
@@ -36,7 +41,7 @@ type PackageManagerPlayoutContextState = Record<string, never>
3641
async function setupExpectedPackagesPublicationObservers(
3742
args: ReadonlyDeep<PackageManagerPlayoutContextArgs>,
3843
triggerUpdate: TriggerUpdate<PackageManagerPlayoutContextUpdateProps>
39-
): Promise<Array<Promise<Meteor.LiveQueryHandle> | Meteor.LiveQueryHandle>> {
44+
): Promise<SetupObserversResult> {
4045
// Set up observers:
4146
return [
4247
RundownPlaylists.observeChanges(

meteor/server/publications/partInstancesUI/publication.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
import { check } from 'meteor/check'
88
import {
99
CustomPublishCollection,
10+
SetupObserversResult,
1011
TriggerUpdate,
1112
meteorCustomPublish,
1213
setUpCollectionOptimizedObserver,
@@ -17,7 +18,6 @@ import { resolveCredentials } from '../../security/lib/credentials'
1718
import { NoSecurityReadAccess } from '../../security/noSecurity'
1819
import { ContentCache, PartInstanceOmitedFields, createReactiveContentCache } from './reactiveContentCache'
1920
import { ReadonlyDeep } from 'type-fest'
20-
import { LiveQueryHandle } from '../../lib/lib'
2121
import { RundownPlaylists } from '../../collections'
2222
import { literal } from '@sofie-automation/corelib/dist/lib'
2323
import { DBRundownPlaylist } from '@sofie-automation/corelib/dist/dataModel/RundownPlaylist'
@@ -65,7 +65,7 @@ const rundownPlaylistFieldSpecifier = literal<
6565
async function setupUIPartInstancesPublicationObservers(
6666
args: ReadonlyDeep<UIPartInstancesArgs>,
6767
triggerUpdate: TriggerUpdate<UIPartInstancesUpdateProps>
68-
): Promise<LiveQueryHandle[]> {
68+
): Promise<SetupObserversResult> {
6969
const playlist = (await RundownPlaylists.findOneAsync(
7070
{ activationId: args.playlistActivationId },
7171
{

0 commit comments

Comments
 (0)