UNPKG

@dossierhq/sqlite-core

Version:

A library used by concrete SQLite adapters for Dossier.

23 lines 1.37 kB
/// <reference types="./updateSpecification.d.ts" /> /* eslint-disable @typescript-eslint/no-unused-expressions */ import { ok, } from '@dossierhq/core'; import { buildSqliteSqlQuery, } from '@dossierhq/database-adapter'; import { queryOne } from '../QueryFunctions.js'; import { getTransactionTimestamp } from '../SqliteTransaction.js'; import { createUpdateSchemaEvent } from '../utils/EventUtils.js'; export async function schemaUpdateSpecification(database, context, session, schemaSpec, syncEvent) { const { version, ...schemaSpecWithoutVersion } = schemaSpec; const now = (syncEvent ? syncEvent.createdAt : getTransactionTimestamp(context.transaction)).toISOString(); const createVersionResult = await queryOne(database, context, buildSqliteSqlQuery(({ sql }) => { sql `INSERT INTO schema_versions (version, specification, updated_at)`; sql `VALUES (${version}, ${JSON.stringify(schemaSpecWithoutVersion)}, ${now}) RETURNING id`; })); if (createVersionResult.isError()) return createVersionResult; const { id: schemaVersionId } = createVersionResult.value; const createEventResult = await createUpdateSchemaEvent(database, context, session, schemaVersionId, syncEvent); if (createEventResult.isError()) return createEventResult; return ok(undefined); } //# sourceMappingURL=updateSpecification.js.map