MCPcopy Create free account
hub / github.com/TanStack/db / deserializeSyncRow

Function deserializeSyncRow

packages/powersync-db-collection/src/powersync.ts:258–274  ·  view source on GitHub ↗
(value: TableType)

Source from the content-addressed store, hash-verified

256 * Deserializes data from the incoming sync stream
257 */
258 const deserializeSyncRow = (value: TableType): OutputType => {
259 const validationSchema = deserializationSchema || schema
260 const validation = validationSchema[`~standard`].validate(value)
261 if (`value` in validation) {
262 return validation.value
263 } else if (`issues` in validation) {
264 const issueMessage = `Failed to validate incoming data for ${viewName}. Issues: ${validation.issues.map((issue) => `${issue.path} - ${issue.message}`)}`
265 database.logger.error(issueMessage)
266 onDeserializationError!(validation)
267 throw new Error(issueMessage)
268 } else {
269 const unknownErrorMessage = `Unknown deserialization error for ${viewName}`
270 database.logger.error(unknownErrorMessage)
271 onDeserializationError!({ issues: [{ message: unknownErrorMessage }] })
272 throw new Error(unknownErrorMessage)
273 }
274 }
275
276 // We can do basic runtime validations for columns if not explicit schema has been provided
277 const schema = inputSchema ?? (convertTableToSchema(table) as TSchema)

Callers 2

createDiffTriggerFunction · 0.85

Calls 1

mapMethod · 0.45

Tested by

no test coverage detected