Feature: Basic Events, Models and Projections #2

Merged
piarrot merged 37 commits from feat-base-projections into main 2024-10-15 15:20:25 -03:00
3 changed files with 21 additions and 1 deletions
Showing only changes of commit c9a061419c - Show all commits

View File

@ -14,6 +14,9 @@ export function transformRow(model: Collection) {
} }
function valueFromSQL(field: FieldDefinition, value: any): any { function valueFromSQL(field: FieldDefinition, value: any): any {
if (value === null) {
return null;
}
const r = FieldSQLInsertMap[field[VariantTag]]; const r = FieldSQLInsertMap[field[VariantTag]];
return r(field as any, value); return r(field as any, value);
} }

View File

@ -25,6 +25,9 @@ const FieldSQLInsertMap: FieldSQLInsertMap = {
}; };
export function fieldValueToSQL(field: FieldDefinition, value: any) { export function fieldValueToSQL(field: FieldDefinition, value: any) {
if (value === null) {
return null;
}
const r = FieldSQLInsertMap[field[VariantTag]] as any; const r = FieldSQLInsertMap[field[VariantTag]] as any;
return r(field as any, value); return r(field as any, value);
} }

View File

@ -1,4 +1,4 @@
import { Run } from "@fabric/core"; import { PosixDate, Run } from "@fabric/core";
import { defineModel, Field, isLike, UUID } from "@fabric/domain"; import { defineModel, Field, isLike, UUID } from "@fabric/domain";
import { UUIDGeneratorMock } from "@fabric/domain/mocks"; import { UUIDGeneratorMock } from "@fabric/domain/mocks";
import { import {
@ -42,6 +42,7 @@ describe("State Store", () => {
name: "test", name: "test",
streamId: newUUID, streamId: newUUID,
streamVersion: 1n, streamVersion: 1n,
deletedAt: null,
}), }),
); );
}); });
@ -55,6 +56,7 @@ describe("State Store", () => {
id: newUUID, id: newUUID,
streamId: newUUID, streamId: newUUID,
streamVersion: 1n, streamVersion: 1n,
deletedAt: null,
}), }),
); );
@ -66,6 +68,7 @@ describe("State Store", () => {
streamId: UUID; streamId: UUID;
streamVersion: bigint; streamVersion: bigint;
name: string; name: string;
deletedAt: PosixDate | null;
}[] }[]
>(); >();
@ -75,6 +78,7 @@ describe("State Store", () => {
streamId: newUUID, streamId: newUUID,
streamVersion: 1n, streamVersion: 1n,
name: "test", name: "test",
deletedAt: null,
}, },
]); ]);
}); });
@ -89,6 +93,7 @@ describe("State Store", () => {
id: newUUID, id: newUUID,
streamId: newUUID, streamId: newUUID,
streamVersion: 1n, streamVersion: 1n,
deletedAt: null,
}), }),
() => () =>
store.insertInto("users", { store.insertInto("users", {
@ -96,6 +101,7 @@ describe("State Store", () => {
id: UUIDGeneratorMock.generate(), id: UUIDGeneratorMock.generate(),
streamId: UUIDGeneratorMock.generate(), streamId: UUIDGeneratorMock.generate(),
streamVersion: 1n, streamVersion: 1n,
deletedAt: null,
}), }),
() => () =>
store.insertInto("users", { store.insertInto("users", {
@ -103,6 +109,7 @@ describe("State Store", () => {
id: UUIDGeneratorMock.generate(), id: UUIDGeneratorMock.generate(),
streamId: UUIDGeneratorMock.generate(), streamId: UUIDGeneratorMock.generate(),
streamVersion: 1n, streamVersion: 1n,
deletedAt: null,
}), }),
); );
@ -121,6 +128,7 @@ describe("State Store", () => {
streamId: UUID; streamId: UUID;
streamVersion: bigint; streamVersion: bigint;
name: string; name: string;
deletedAt: PosixDate | null;
}[] }[]
>(); >();
@ -130,6 +138,7 @@ describe("State Store", () => {
streamId: newUUID, streamId: newUUID,
streamVersion: 1n, streamVersion: 1n,
name: "test", name: "test",
deletedAt: null,
}, },
]); ]);
}); });
@ -143,6 +152,7 @@ describe("State Store", () => {
id: newUUID, id: newUUID,
streamId: newUUID, streamId: newUUID,
streamVersion: 1n, streamVersion: 1n,
deletedAt: null,
}), }),
); );
@ -161,6 +171,7 @@ describe("State Store", () => {
streamId: newUUID, streamId: newUUID,
streamVersion: 1n, streamVersion: 1n,
name: "updated", name: "updated",
deletedAt: null,
}); });
}); });
@ -173,6 +184,7 @@ describe("State Store", () => {
id: newUUID, id: newUUID,
streamId: newUUID, streamId: newUUID,
streamVersion: 1n, streamVersion: 1n,
deletedAt: null,
}), }),
); );
@ -197,6 +209,7 @@ describe("State Store", () => {
name: "test", name: "test",
streamId: ownerUUID, streamId: ownerUUID,
streamVersion: 1n, streamVersion: 1n,
deletedAt: null,
}), }),
); );
@ -207,6 +220,7 @@ describe("State Store", () => {
owner: ownerUUID, owner: ownerUUID,
streamId: newUUID, streamId: newUUID,
streamVersion: 1n, streamVersion: 1n,
deletedAt: null,
}), }),
); );
}); });