feat: add peerDependencies

This commit is contained in:
2025-07-07 13:11:16 +02:00
parent 2093dd7097
commit dd1570d52e
36 changed files with 481 additions and 274 deletions

View File

@@ -1,4 +1,4 @@
import z from "zod";
import z from "zod/v4";
import type { CollectionRegistrar } from "../types.ts";

View File

@@ -3,8 +3,4 @@ import { registrar as events } from "./events.ts";
import { registrar as relations } from "./relations.ts";
import { registrar as snapshots } from "./snapshots.ts";
export const registrars: CollectionRegistrar[] = [
events,
relations,
snapshots,
];
export const registrars: CollectionRegistrar[] = [events, relations, snapshots];

View File

@@ -1,4 +1,4 @@
import z from "zod";
import z from "zod/v4";
import type { CollectionRegistrar } from "../types.ts";

View File

@@ -1,4 +1,4 @@
import z from "zod";
import z from "zod/v4";
import type { CollectionRegistrar } from "../types.ts";

View File

@@ -70,7 +70,10 @@ export class MongoEventsProvider implements EventsProvider {
* @param options - Read options for modifying the result.
*/
async getByStreams(streams: string[], options: EventReadOptions = {}): Promise<EventRecord[]> {
return (await this.#withReadOptions(this.collection.find({ stream: { $in: streams }, ...this.#withFilters(options) }), options)
return (await this.#withReadOptions(
this.collection.find({ stream: { $in: streams }, ...this.#withFilters(options) }),
options,
)
.sort({ created: 1 })
.toArray()
.then(toParsedRecords(schema))) as EventRecord[];

View File

@@ -1,5 +1,5 @@
import type { Db, WithId } from "mongodb";
import type { z, ZodObject } from "zod";
import type { z, ZodObject } from "zod/v4";
/**
* Take a list of records and run it through the given zod parser. This
@@ -9,7 +9,9 @@ import type { z, ZodObject } from "zod";
*
* @param parser - Zod parser to run the documents through.
*/
export function toParsedRecords<TSchema extends ZodObject>(parser: TSchema): (documents: WithId<object>[]) => z.infer<TSchema>[] {
export function toParsedRecords<TSchema extends ZodObject>(
parser: TSchema,
): (documents: WithId<object>[]) => z.infer<TSchema>[] {
return parser.array().parse;
}
@@ -21,7 +23,9 @@ export function toParsedRecords<TSchema extends ZodObject>(parser: TSchema): (do
*
* @param parser - Zod parser to run the document through.
*/
export function toParsedRecord<TSchema extends ZodObject>(parser: TSchema): (document: WithId<object> | null) => z.infer<TSchema> | undefined {
export function toParsedRecord<TSchema extends ZodObject>(
parser: TSchema,
): (document: WithId<object> | null) => z.infer<TSchema> | undefined {
return function (document) {
if (document === null) {
return undefined;