forked from Sofie-Automation/sofie-core
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbucketContentCache.ts
More file actions
81 lines (73 loc) · 2.84 KB
/
bucketContentCache.ts
File metadata and controls
81 lines (73 loc) · 2.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import { ReactiveCacheCollection } from '../../lib/ReactiveCacheCollection'
import { DBShowStyleBase, SourceLayers } from '@sofie-automation/corelib/dist/dataModel/ShowStyleBase'
import { literal } from '@sofie-automation/corelib/dist/lib'
import { MongoFieldSpecifierOnesStrict } from '@sofie-automation/corelib/dist/mongo'
import { BucketAdLibAction } from '@sofie-automation/corelib/dist/dataModel/BucketAdLibAction'
import { BucketAdLib } from '@sofie-automation/corelib/dist/dataModel/BucketAdLibPiece'
import { BlueprintId, ShowStyleBaseId } from '@sofie-automation/corelib/dist/dataModel/Ids'
import { Blueprint } from '@sofie-automation/corelib/dist/dataModel/Blueprint'
export interface SourceLayersDoc {
_id: ShowStyleBaseId
blueprintId: BlueprintId
sourceLayers: SourceLayers
}
export type BucketAdLibFields =
| '_id'
| 'bucketId'
| 'studioId'
| 'showStyleBaseId'
| 'name'
| 'sourceLayerId'
| 'content'
| 'expectedPackages'
export const bucketAdlibFieldSpecifier = literal<MongoFieldSpecifierOnesStrict<Pick<BucketAdLib, BucketAdLibFields>>>({
_id: 1,
bucketId: 1,
studioId: 1,
showStyleBaseId: 1,
name: 1,
sourceLayerId: 1,
content: 1,
expectedPackages: 1,
})
export type BucketActionFields = '_id' | 'bucketId' | 'studioId' | 'showStyleBaseId' | 'display' | 'expectedPackages'
export const bucketActionFieldSpecifier = literal<
MongoFieldSpecifierOnesStrict<Pick<BucketAdLibAction, BucketActionFields>>
>({
_id: 1,
bucketId: 1,
studioId: 1,
showStyleBaseId: 1,
display: 1,
expectedPackages: 1,
})
export type ShowStyleBaseFields = '_id' | 'blueprintId' | 'sourceLayersWithOverrides'
export const showStyleBaseFieldSpecifier = literal<
MongoFieldSpecifierOnesStrict<Pick<DBShowStyleBase, ShowStyleBaseFields>>
>({
_id: 1,
blueprintId: 1,
sourceLayersWithOverrides: 1,
})
export type BlueprintFields = '_id' | 'packageStatusMessages'
export const blueprintFieldSpecifier = literal<MongoFieldSpecifierOnesStrict<Pick<Blueprint, BlueprintFields>>>({
_id: 1,
packageStatusMessages: 1,
})
export interface BucketContentCache {
BucketAdLibs: ReactiveCacheCollection<Pick<BucketAdLib, BucketAdLibFields>>
BucketAdLibActions: ReactiveCacheCollection<Pick<BucketAdLibAction, BucketActionFields>>
ShowStyleSourceLayers: ReactiveCacheCollection<SourceLayersDoc>
Blueprints: ReactiveCacheCollection<Pick<Blueprint, BlueprintFields>>
}
export function createReactiveContentCache(): BucketContentCache {
const cache: BucketContentCache = {
BucketAdLibs: new ReactiveCacheCollection<Pick<BucketAdLib, BucketAdLibFields>>('bucketAdlibs'),
BucketAdLibActions: new ReactiveCacheCollection<Pick<BucketAdLibAction, BucketActionFields>>(
'bucketAdlibActions'
),
ShowStyleSourceLayers: new ReactiveCacheCollection<SourceLayersDoc>('sourceLayers'),
Blueprints: new ReactiveCacheCollection<Pick<Blueprint, BlueprintFields>>('blueprints'),
}
return cache
}