Skip to content

Commit 87f42ad

Browse files
committed
chore: fix lint / typings
1 parent b71bec5 commit 87f42ad

File tree

8 files changed

+21
-11
lines changed

8 files changed

+21
-11
lines changed

packages/corelib/src/lib.ts

+5
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { iterateDeeply, iterateDeeplyEnum, Time } from '@sofie-automation/bluepr
88
import { IStudioSettings } from './dataModel/Studio'
99
import { customAlphabet as createNanoid } from 'nanoid'
1010
import type { ITranslatableMessage } from './TranslatableMessage'
11+
import { ReadonlyObjectDeep } from 'type-fest/source/readonly-deep'
1112

1213
/**
1314
* Limited character set to use for id generation
@@ -63,6 +64,10 @@ export function clone<T>(o: ReadonlyDeep<T> | Readonly<T> | T): T {
6364
// Use this instead of fast-clone directly, as this retains the type
6465
return fastClone(o as any)
6566
}
67+
export function cloneObject<T extends object>(o: ReadonlyObjectDeep<T> | Readonly<T> | T): T {
68+
// Use this instead of fast-clone directly, as this retains the type
69+
return fastClone(o as any)
70+
}
6671

6772
/**
6873
* Deeply freeze an object

packages/job-worker/src/blueprints/context/lib.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
CoreUserEditingDefinitionForm,
1616
} from '@sofie-automation/corelib/dist/dataModel/UserEditingDefinitions'
1717
import { DBSegment } from '@sofie-automation/corelib/dist/dataModel/Segment'
18-
import { assertNever, clone, Complete, literal, omit } from '@sofie-automation/corelib/dist/lib'
18+
import { assertNever, clone, cloneObject, Complete, literal, omit } from '@sofie-automation/corelib/dist/lib'
1919
import { unprotectString, unprotectStringArray } from '@sofie-automation/corelib/dist/protectedString'
2020
import { ReadonlyDeep } from 'type-fest'
2121
import {
@@ -215,7 +215,7 @@ function convertPieceGenericToBlueprintsInner(piece: ReadonlyDeep<PieceGeneric>)
215215
expectedPackages: clone<ExpectedPackage.Any[] | undefined>(piece.expectedPackages),
216216
hasSideEffects: piece.hasSideEffects,
217217
content: {
218-
...clone(piece.content),
218+
...cloneObject(piece.content),
219219
timelineObjects: deserializePieceTimelineObjectsBlob(piece.timelineObjectsString),
220220
},
221221
abSessions: clone<PieceAbSessionInfo[] | undefined>(piece.abSessions),

packages/job-worker/src/ingest/expectedMediaItems.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ function generateExpectedMediaItems<T extends ExpectedMediaItemBase>(
4444
commonProps: Subtract<T, ExpectedMediaItemBase>,
4545
studioId: StudioId,
4646
label: string,
47-
content: Partial<SomeContent> | undefined,
47+
content: Partial<SomeContent | ReadonlyDeep<SomeContent>> | undefined,
4848
pieceType: string
4949
): T[] {
5050
const result: T[] = []

packages/webui/src/client/lib/ui/splitPreview.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
SplitsContentBoxProperties,
55
} from '@sofie-automation/blueprints-integration'
66
import { literal } from '../tempLib'
7+
import { ReadonlyDeep } from 'type-fest'
78

89
const DEFAULT_POSITIONS = [
910
{
@@ -33,7 +34,9 @@ export interface SplitSubItem {
3334
}
3435

3536
export function getSplitPreview(
36-
boxSourceConfiguration: (SplitsContentBoxContent & SplitsContentBoxProperties)[]
37+
boxSourceConfiguration:
38+
| (SplitsContentBoxContent & SplitsContentBoxProperties)[]
39+
| ReadonlyDeep<(SplitsContentBoxContent & SplitsContentBoxProperties)[]>
3740
): ReadonlyArray<Readonly<SplitSubItem>> {
3841
return boxSourceConfiguration.map((item, index) => {
3942
return literal<Readonly<SplitSubItem>>({

packages/webui/src/client/ui/PreviewPopUp/PreviewPopUp.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ export const PreviewPopUp = React.forwardRef<
8080
x,
8181
anchor?.getBoundingClientRect().y ?? 0
8282
)
83-
if (update) update()
83+
if (update) update().catch((e) => console.log(e))
8484
}
8585
document.addEventListener('mousemove', listener)
8686

packages/webui/src/client/ui/PreviewPopUp/PreviewPopUpContent.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ export function PreviewPopUpContent({ content, time }: PreviewPopUpContentProps)
4848
<div className="preview-popUp__table">
4949
<table>
5050
<tbody>
51-
{content.content.map(({ key, value }) => (
52-
<tr>
51+
{content.content.map(({ key, value }, i) => (
52+
<tr key={key + i}>
5353
<td className="preview-popup__label">{key}</td>
5454
<td className="preview-popup__value">{value}</td>
5555
</tr>
@@ -92,7 +92,7 @@ export function PreviewPopUpContent({ content, time }: PreviewPopUpContentProps)
9292
function getDurationText(
9393
t: TFunction,
9494
lifespan: PieceLifespan,
95-
timeAsRendered?: { in?: number; dur?: number },
95+
timeAsRendered?: { in?: number | null; dur?: number | null },
9696
enable?: ReadonlyObjectDeep<PieceInstancePiece>['enable']
9797
): string {
9898
if (!timeAsRendered?.dur && !enable?.duration) {

packages/webui/src/client/ui/PreviewPopUp/PreviewPopUpContext.tsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ export function convertSourceLayerItemToPreview(
151151
]) as PreviewContent[]
152152
} else if (sourceLayerType === SourceLayerType.GRAPHICS && 'previewPayload' in item.content) {
153153
const payload = JSONBlobParse<NoraPayload>(item.content.previewPayload)
154-
const tableProps = Object.entries(payload.content)
154+
const tableProps = Object.entries<unknown>(payload.content)
155155
.filter(([key, value]) => !(key.startsWith('_') || key.startsWith('@') || value === ''))
156156
.map(([key, value]) => ({ key, value }))
157157

@@ -412,7 +412,8 @@ export function PreviewPopUpContextProvider({ children }: React.PropsWithChildre
412412
startCoordinate={previewSession.startCoordinate}
413413
trackMouse={previewSession.trackMouse}
414414
>
415-
{previewContent && previewContent.map((content) => <PreviewPopUpContent time={t} content={content} />)}
415+
{previewContent &&
416+
previewContent.map((content, i) => <PreviewPopUpContent key={i} time={t} content={content} />)}
416417
</PreviewPopUp>
417418
)}
418419
</PreviewPopUpContext.Provider>

packages/webui/src/client/ui/PreviewPopUp/Previews/BoxLayoutPreview.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@ import classNames from 'classnames'
33
import { useMemo } from 'react'
44
import { RundownUtils } from '../../../lib/rundown'
55
import { getSplitPreview, SplitRole } from '../../../lib/ui/splitPreview'
6+
import { ReadonlyDeep } from 'type-fest'
67

78
interface BoxLayoutPreviewProps {
89
content: {
910
type: 'boxLayout'
10-
boxSourceConfiguration: (SplitsContentBoxContent & SplitsContentBoxProperties)[]
11+
boxSourceConfiguration: ReadonlyDeep<(SplitsContentBoxContent & SplitsContentBoxProperties)[]>
1112
showLabels?: boolean
1213
backgroundArt?: string
1314
}

0 commit comments

Comments
 (0)