Skip to content

Commit 9dc85b9

Browse files
committed
add some type safety
1 parent e21e527 commit 9dc85b9

2 files changed

Lines changed: 13 additions & 6 deletions

File tree

apps/api/src/instrument-records/export-worker.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { DEFAULT_GROUP_NAME } from '@opendatacapture/schemas/core';
55
import type { InstrumentRecordsExport } from '@opendatacapture/schemas/instrument-records';
66
import { removeSubjectIdScope } from '@opendatacapture/subject-utils';
77

8-
import type { ChunkCompleteData, InitData, ParentMessage, RecordType } from './thread-types';
8+
import type { ChunkCompleteData, InitData, ParentMessage, RecordType, WorkerMessage } from './thread-types';
99

1010
type ExpandDataType =
1111
| {
@@ -117,9 +117,9 @@ function handleChunkComplete(_data: ChunkCompleteData) {
117117

118118
try {
119119
const results = _data.map(processRecord);
120-
parentPort?.postMessage({ data: results.flat(), success: true });
120+
parentPort?.postMessage({ data: results.flat(), success: true } satisfies WorkerMessage);
121121
} catch (error) {
122-
parentPort?.postMessage({ error: (error as Error).message, success: false });
122+
parentPort?.postMessage({ error: (error as Error).message, success: false } satisfies WorkerMessage);
123123
}
124124
}
125125

apps/api/src/instrument-records/instrument-records.service.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,14 @@ import { SubjectsService } from '@/subjects/subjects.service';
3131

3232
import { InstrumentMeasuresService } from './instrument-measures.service';
3333

34-
import type { InitData, InitialMessage, RecordType, WorkerMessage } from './thread-types';
34+
import type {
35+
ChunkCompleteMessage,
36+
InitData,
37+
InitialMessage,
38+
InitMessage,
39+
RecordType,
40+
WorkerMessage
41+
} from './thread-types';
3542

3643
@Injectable()
3744
export class InstrumentRecordsService {
@@ -158,11 +165,11 @@ export class InstrumentRecordsService {
158165
const workerPromises = chunks.map((chunk) => {
159166
return new Promise<InstrumentRecordsExport>((resolve, reject) => {
160167
const worker = new Worker(join(import.meta.dirname, 'export-worker.ts'));
161-
worker.postMessage({ data: availableInstrumentArray, type: 'INIT' });
168+
worker.postMessage({ data: availableInstrumentArray, type: 'INIT' } satisfies InitMessage);
162169

163170
worker.on('message', (message: InitialMessage) => {
164171
if (message.success) {
165-
worker.postMessage({ data: chunk, type: 'CHUNK_COMPLETE' });
172+
worker.postMessage({ data: chunk, type: 'CHUNK_COMPLETE' } satisfies ChunkCompleteMessage);
166173
worker.on('message', (message: WorkerMessage) => {
167174
if (message.success) {
168175
resolve(message.data);

0 commit comments

Comments
 (0)