Skip to content

Commit dc345d1

Browse files
authored
Refactors (#22)
1 parent f51ca38 commit dc345d1

File tree

9 files changed

+69
-83
lines changed

9 files changed

+69
-83
lines changed

src/SqlStreamStore.FSharp.Postgres/Create.fs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
namespace SqlStreamStore.FSharp.Postgres
22

3-
open Prelude.ErrorHandling
3+
open Prelude
44
open SqlStreamStore
55

66
type PostgresConfig =
@@ -25,9 +25,6 @@ type PostgresConfig =
2525

2626
module Create =
2727

28-
/// Represents an in-memory implementation of a stream store. Use for testing or high/speed + volatile scenarios.
29-
let inMemoryStore : unit -> InMemoryStreamStore = fun _ -> new InMemoryStreamStore()
30-
3128
let postgresStore (config: PostgresConfig) (schema: string option) : PostgresStreamStore =
3229

3330
let storeSettings =

src/SqlStreamStore.FSharp.Postgres/SqlStreamStore.FSharp.Postgres.fsproj

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,16 @@
1212
</PropertyGroup>
1313

1414
<ItemGroup>
15-
<Compile Include="Create.fs"/>
15+
<Compile Include="Create.fs" />
1616
</ItemGroup>
1717

1818
<ItemGroup>
19-
<PackageReference Update="FSharp.Core" Version="6.0.*"/>
20-
<PackageReference Include="FSharp.Core" Version="6.0.*"/>
21-
<PackageReference Include="SqlStreamStore.Postgres" Version="1.2.0-beta.8"/>
19+
<PackageReference Include="FSharp.Prelude" Version="6.0.0-beta-3" />
20+
<PackageReference Include="SqlStreamStore.Postgres" Version="1.2.0-beta.8" />
2221
</ItemGroup>
2322

2423
<ItemGroup>
25-
<ProjectReference Include="..\SqlStreamStore.FSharp\SqlStreamStore.FSharp.fsproj"/>
24+
<ProjectReference Include="..\SqlStreamStore.FSharp\SqlStreamStore.FSharp.fsproj" />
2625
</ItemGroup>
2726

2827
</Project>

src/SqlStreamStore.FSharp/Append.fs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
namespace SqlStreamStore.FSharp
22

3-
open Prelude.ErrorHandling
3+
open Prelude
44
open System.Threading
55
open SqlStreamStore
66

@@ -13,7 +13,7 @@ module Append =
1313
let streamMessages'
1414
(messages: NewStreamMessage list)
1515
(appendOptions: AppendOption list)
16-
(Stream stream: Stream)
16+
(stream: Stream)
1717
: AsyncResult<Streams.AppendResult, exn> =
1818

1919
let mutable expectedVersion = Streams.ExpectedVersion.Any

src/SqlStreamStore.FSharp/Connect.fs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,12 @@ namespace SqlStreamStore.FSharp
22

33
open SqlStreamStore
44

5-
type private StreamInternal =
6-
{
7-
store: IStreamStore
8-
streamId: string
9-
}
10-
11-
type Stream = private Stream of StreamInternal
5+
type Stream =
6+
private
7+
{
8+
store: IStreamStore
9+
streamId: string
10+
}
1211

1312
module Connect =
14-
let toStream streamId store =
15-
Stream { streamId = streamId; store = store }
13+
let toStream streamId store = { streamId = streamId; store = store }

src/SqlStreamStore.FSharp/Extensions.fs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
namespace SqlStreamStore.FSharp
22

33
open System.Threading
4-
open Prelude.ErrorHandling
4+
open Prelude
55
open SqlStreamStore
66
open SqlStreamStore.Streams
7-
open System
87

98
[<AutoOpen>]
109
module SqlStreamExtensions =
@@ -172,13 +171,13 @@ module SqlStreamExtensions =
172171

173172
let maxAge' =
174173
match maxAge with
175-
| None -> Nullable()
176-
| Some age -> Nullable age
174+
| None -> System.Nullable()
175+
| Some age -> System.Nullable age
177176

178177
let maxCount' =
179178
match maxCount with
180-
| None -> Nullable()
181-
| Some count -> Nullable count
179+
| None -> System.Nullable()
180+
| Some count -> System.Nullable count
182181

183182
let metadataJson' = defaultArg metadataJson null
184183

src/SqlStreamStore.FSharp/Get.fs

Lines changed: 35 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,67 @@
11
namespace SqlStreamStore.FSharp
22

3-
open Prelude.ErrorHandling
3+
open Prelude
44
open SqlStreamStore.Streams
55

66
module Get =
77

8-
// A function to help wit type inference in this module
9-
let private curriedMap: (ReadStreamPage -> 'a) -> AsyncResult<ReadStreamPage, exn> -> AsyncResult<'a, exn> =
10-
AsyncResult.map
8+
let messages: AsyncResult<ReadStreamPage, exn> -> AsyncResult<StreamMessage list, exn> =
9+
AsyncResult.map (fun page -> page.Messages |> Array.toList)
1110

12-
let messages =
13-
curriedMap (fun page -> page.Messages |> Array.toList)
14-
15-
let messagesData =
11+
let messagesData: AsyncResult<ReadStreamPage, exn> -> AsyncResult<string list, exn> =
1612
messages
17-
>> AsyncResult.bind (AsyncResult.mapM (fun msg -> msg.GetJsonData()))
13+
>> AsyncResult.bind (AsyncResult.traverse (fun msg -> msg.GetJsonData()))
1814

19-
let messagesDataAs<'data> =
15+
let messagesDataAs<'data> : AsyncResult<ReadStreamPage, exn> -> AsyncResult<'data list, exn> =
2016
messages
21-
>> AsyncResult.bind (AsyncResult.mapM (fun msg -> msg.GetJsonDataAs<'data>()))
17+
>> AsyncResult.bind (AsyncResult.traverse (fun msg -> msg.GetJsonDataAs<'data>()))
2218

23-
let status = curriedMap (fun page -> page.Status)
19+
let status: AsyncResult<ReadStreamPage, exn> -> AsyncResult<PageReadStatus, exn> =
20+
AsyncResult.map (fun page -> page.Status)
2421

25-
let isEnd = curriedMap (fun page -> page.IsEnd)
22+
let isEnd: AsyncResult<ReadStreamPage, exn> -> AsyncResult<bool, exn> = AsyncResult.map (fun page -> page.IsEnd)
2623

27-
let readDirection =
28-
curriedMap (fun page -> page.ReadDirection)
24+
let readDirection: AsyncResult<ReadStreamPage, exn> -> AsyncResult<ReadDirection, exn> =
25+
AsyncResult.map (fun page -> page.ReadDirection)
2926

30-
let streamId = curriedMap (fun page -> page.StreamId)
27+
let streamId: AsyncResult<ReadStreamPage, exn> -> AsyncResult<string, exn> =
28+
AsyncResult.map (fun page -> page.StreamId)
3129

32-
let fromStreamVersion =
33-
curriedMap (fun page -> page.FromStreamVersion)
30+
let fromStreamVersion: AsyncResult<ReadStreamPage, exn> -> AsyncResult<int, exn> =
31+
AsyncResult.map (fun page -> page.FromStreamVersion)
3432

35-
let lastStreamPosition =
36-
curriedMap (fun page -> page.LastStreamPosition)
33+
let lastStreamPosition: AsyncResult<ReadStreamPage, exn> -> AsyncResult<int64, exn> =
34+
AsyncResult.map (fun page -> page.LastStreamPosition)
3735

38-
let nextStreamVersion =
39-
curriedMap (fun page -> page.NextStreamVersion)
36+
let nextStreamVersion: AsyncResult<ReadStreamPage, exn> -> AsyncResult<int, exn> =
37+
AsyncResult.map (fun page -> page.NextStreamVersion)
4038

41-
let nextStreamPage =
39+
let nextStreamPage: AsyncResult<ReadStreamPage, exn> -> AsyncResult<ReadStreamPage, exn> =
4240
AsyncResult.bind (fun (page: ReadStreamPage) -> page.ReadNext |> AsyncResult.ofTask)
4341

4442
module GetAll =
4543

46-
// A function to help wit type inference in this module
47-
let private curriedMap: (ReadAllPage -> 'a) -> AsyncResult<ReadAllPage, exn> -> AsyncResult<'a, exn> =
48-
AsyncResult.map
49-
50-
let messages =
51-
curriedMap (fun page -> page.Messages |> Array.toList)
44+
let messages: AsyncResult<ReadAllPage, exn> -> AsyncResult<StreamMessage list, exn> =
45+
AsyncResult.map (fun page -> page.Messages |> Array.toList)
5246

53-
let messagesData =
47+
let messagesData: AsyncResult<ReadAllPage, exn> -> AsyncResult<string list, exn> =
5448
messages
55-
>> AsyncResult.bind (AsyncResult.mapM (fun msg -> msg.GetJsonData()))
49+
>> AsyncResult.bind (AsyncResult.traverse (fun msg -> msg.GetJsonData()))
5650

57-
let messagesDataAs<'data> =
51+
let messagesDataAs<'data> : AsyncResult<ReadAllPage, exn> -> AsyncResult<'data list, exn> =
5852
messages
59-
>> AsyncResult.bind (AsyncResult.mapM (fun msg -> msg.GetJsonDataAs<'data>()))
53+
>> AsyncResult.bind (AsyncResult.traverse (fun msg -> msg.GetJsonDataAs<'data>()))
6054

61-
let direction = curriedMap (fun page -> page.Direction)
55+
let direction: AsyncResult<ReadAllPage, exn> -> AsyncResult<ReadDirection, exn> =
56+
AsyncResult.map (fun page -> page.Direction)
6257

63-
let fromPosition =
64-
curriedMap (fun page -> page.FromPosition)
58+
let fromPosition: AsyncResult<ReadAllPage, exn> -> AsyncResult<int64, exn> =
59+
AsyncResult.map (fun page -> page.FromPosition)
6560

66-
let isEnd = curriedMap (fun page -> page.IsEnd)
61+
let isEnd: AsyncResult<ReadAllPage, exn> -> AsyncResult<bool, exn> = AsyncResult.map (fun page -> page.IsEnd)
6762

68-
let nextPosition =
69-
curriedMap (fun page -> page.NextPosition)
63+
let nextPosition: AsyncResult<ReadAllPage, exn> -> AsyncResult<int64, exn> =
64+
AsyncResult.map (fun page -> page.NextPosition)
7065

71-
let nextAllStreamPage =
66+
let nextAllStreamPage: AsyncResult<ReadAllPage, exn> -> AsyncResult<ReadAllPage, exn> =
7267
AsyncResult.bind (fun (page: ReadAllPage) -> page.ReadNext |> AsyncResult.ofTask)

src/SqlStreamStore.FSharp/Read.fs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
namespace SqlStreamStore.FSharp
22

3-
open Prelude.ErrorHandling
3+
open Prelude
44
open System.Threading
55
open SqlStreamStore
66
open SqlStreamStore.Streams
@@ -33,7 +33,7 @@ type ReadAllOption =
3333

3434
module Read =
3535

36-
let partial' (readOptions: ReadPartialOption list) (Stream stream: Stream) : AsyncResult<ReadStreamPage, exn> =
36+
let partial' (readOptions: ReadPartialOption list) (stream: Stream) : AsyncResult<ReadStreamPage, exn> =
3737

3838
let mutable cancellationToken = Unchecked.defaultof<CancellationToken>
3939
let mutable fromVersionInclusive: int option = None

src/SqlStreamStore.FSharp/SqlStreamStore.FSharp.fsproj

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,20 @@
1414
</PropertyGroup>
1515

1616
<ItemGroup>
17-
<Compile Include="Extensions.fs"/>
18-
<Compile Include="NewStreamMessage.fs"/>
19-
<Compile Include="Connect.fs"/>
20-
<Compile Include="Read.fs"/>
21-
<Compile Include="Get.fs"/>
22-
<Compile Include="Subscribe.fs"/>
23-
<Compile Include="Append.fs"/>
24-
<Compile Include="Create.fs"/>
17+
<Compile Include="Extensions.fs" />
18+
<Compile Include="NewStreamMessage.fs" />
19+
<Compile Include="Connect.fs" />
20+
<Compile Include="Read.fs" />
21+
<Compile Include="Get.fs" />
22+
<Compile Include="Subscribe.fs" />
23+
<Compile Include="Append.fs" />
24+
<Compile Include="Create.fs" />
2525
</ItemGroup>
2626

2727
<ItemGroup>
28-
<PackageReference Update="FSharp.Core" Version="6.0.*"/>
29-
<PackageReference Include="FSharp.Core" Version="6.0.*"/>
30-
<PackageReference Include="FSharp.Prelude" Version="5.0.*"/>
31-
<PackageReference Include="Npgsql" Version="5.0.*"/>
32-
<PackageReference Include="SqlStreamStore" Version="1.2.0-beta.8"/>
28+
<PackageReference Include="FSharp.Prelude" Version="6.0.0-beta-3" />
29+
<PackageReference Include="Npgsql" Version="5.0.*" />
30+
<PackageReference Include="SqlStreamStore" Version="1.2.0-beta.8" />
3331
</ItemGroup>
3432

3533
</Project>

src/SqlStreamStore.FSharp/Subscribe.fs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
namespace SqlStreamStore.FSharp
22

3-
open Prelude.ErrorHandling
3+
open Prelude
44
open SqlStreamStore
55
open SqlStreamStore.Streams
66
open SqlStreamStore.Subscriptions
@@ -27,7 +27,7 @@ module Subscribe =
2727
(continueAfterVersion: int)
2828
(streamMessageReceived: IStreamSubscription -> StreamMessage -> CancellationToken -> AsyncResult<_, _>)
2929
(streamSubOptions: StreamSubOption list)
30-
(Stream stream: Stream)
30+
(stream: Stream)
3131
: IStreamSubscription =
3232

3333
let mutable hasCaughtUp = null

0 commit comments

Comments
 (0)