Skip to content

Commit 6463a8e

Browse files
committed
Improve types.
1 parent c5cf508 commit 6463a8e

2 files changed

Lines changed: 16 additions & 12 deletions

File tree

modules/module-mongodb-storage/src/storage/implementation/v3/models.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,13 +176,19 @@ export function taggedBucketParameterDocumentToV3(document: TaggedBucketParamete
176176
return rest as BucketParameterDocumentV3;
177177
}
178178

179+
export interface ReplicaIdColumn {
180+
name: string;
181+
type_oid?: number;
182+
type?: string;
183+
}
184+
179185
export interface SourceTableDocumentV3 {
180186
_id: bson.ObjectId;
181187
connection_id: number;
182188
relation_id: number | string | undefined;
183189
schema_name: string;
184190
table_name: string;
185-
replica_id_columns: { name: string; type_oid?: number; type?: string }[];
191+
replica_id_columns: ReplicaIdColumn[];
186192
snapshot_done: boolean;
187193
snapshot_status: SourceTableDocumentSnapshotStatus | undefined;
188194
bucket_data_source_ids: BucketDefinitionId[];

modules/module-mongodb-storage/src/storage/implementation/v3/source-table-utils.ts

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@ import {
88
ParameterIndexId,
99
ParameterIndexLookupCreator
1010
} from '@powersync/service-sync-rules';
11+
import * as bson from 'bson';
1112
import { BucketDefinitionMapping } from '../BucketDefinitionMapping.js';
12-
import { SourceTableDocumentV3 } from './models.js';
13+
import { ReplicaIdColumn, SourceTableDocumentV3 } from './models.js';
1314

1415
export interface SourceTableIdentity {
1516
schema: string;
1617
name: string;
1718
objectId: number | string | undefined;
18-
replicaIdColumns: NonNullable<SourceTableDocumentV3['replica_id_columns']>;
19+
replicaIdColumns: ReplicaIdColumn[];
1920
}
2021

2122
export interface SourceTableMembershipIds {
@@ -50,13 +51,13 @@ export interface SourceTableRetentionPlanningContext {
5051

5152
export interface SourceTableRetentionPlan {
5253
coveredMembershipIds: SourceTableMembershipIdSets;
53-
retainedDocIds: SourceTableDocumentV3['_id'][];
54+
retainedDocIds: bson.ObjectId[];
5455
tables: storage.SourceTable[];
5556
narrowingUpdates: SourceTableMembershipUpdate[];
5657
}
5758

5859
export interface SourceTableMembershipUpdate {
59-
id: SourceTableDocumentV3['_id'];
60+
id: bson.ObjectId;
6061
memberships: SourceTableMembershipIds;
6162
}
6263

@@ -254,10 +255,7 @@ class SourceTableRetentionPlanner {
254255
}
255256
}
256257

257-
export function sameReplicaIdColumns(
258-
left: SourceTableDocumentV3['replica_id_columns'] | undefined,
259-
right: NonNullable<SourceTableDocumentV3['replica_id_columns']>
260-
) {
258+
export function sameReplicaIdColumns(left: ReplicaIdColumn[] | undefined, right: ReplicaIdColumn[]) {
261259
return (
262260
left != null &&
263261
left.length == right.length &&
@@ -293,10 +291,10 @@ export function overlappingSourceTableFilter(
293291
}
294292

295293
export function createNewSourceTable(options: {
296-
id: SourceTableDocumentV3['_id'];
294+
id: bson.ObjectId;
297295
connectionId: number;
298296
source: storage.SourceEntityDescriptor;
299-
replicaIdColumns: NonNullable<SourceTableDocumentV3['replica_id_columns']>;
297+
replicaIdColumns: ReplicaIdColumn[];
300298
memberships: SourceTableMembershipIds;
301299
syncRules: HydratedSyncConfig;
302300
mapping: BucketDefinitionMapping;
@@ -338,7 +336,7 @@ export function designateEventCarrier(tables: storage.SourceTable[], triggersEve
338336

339337
export function conflictingSourceTableDocs(
340338
candidateDocs: SourceTableDocumentV3[],
341-
retainedDocIds: SourceTableDocumentV3['_id'][],
339+
retainedDocIds: bson.ObjectId[],
342340
currentIdentity: SourceTableIdentity,
343341
options: { dropSameIdentity: boolean }
344342
) {

0 commit comments

Comments
 (0)