0.2.1 • Published 6 months ago

rescript-event-gateway v0.2.1

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

rescript-event-store

event-store-gateway abstract module for rescript

API

EventGateway.resi

module type Event = {
  type event

  let parseUnknown: unknown => option<event>
}

type eventRecord<'e> = {
  id: int,
  val: 'e,
  timestamp: float,
}

module type EventGateway = {
  type event

  let createTableIfNotExist: unit => result<unit, exn>
  let dropTableIfExist: unit => result<unit, exn>
  let getEvents: (int, option<int>, option<float>) => result<array<eventRecord<event>>, exn>
  let insertEvent: event => result<int, exn>
}

JsonRecordEventGateway.resi

open EventGateway

module type JsonRecordConf = {
  let fileName: string
}

module type MakeJsonRecordEventGateway = (Event: Event, JsonRecordConf: JsonRecordConf) =>
(EventGateway with type event = Event.event)

module MakeJsonRecordEventGateway: MakeJsonRecordEventGateway

Author

Anatoly Starodubtsev tostar74@mail.ru

License

MIT

0.2.1

6 months ago

0.1.1

7 months ago

0.0.1

7 months ago