-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathScript.fsx
More file actions
45 lines (32 loc) · 1.03 KB
/
Script.fsx
File metadata and controls
45 lines (32 loc) · 1.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# load ".paket/load/netstandard2.1/Server/Fable.Remoting.Json.fsx"
open Fable.Remoting.Json
open Newtonsoft.Json
open System.IO
open System.Collections.Concurrent
open System.Text
type MyType =
| EndType of string
| MyType of MyType
let testType =
"test"
|> EndType
|> MyType
let private fableConverter = new FableJsonConverter() :> JsonConverter
let private settings = JsonSerializerSettings(DateParseHandling = DateParseHandling.None)
let private fableSerializer =
let serializer = JsonSerializer()
serializer.Converters.Add fableConverter
serializer
let private jsonEncoding = UTF8Encoding false
let jsonSerialize (o: 'a) (stream: Stream) =
use sw = new StreamWriter (stream, jsonEncoding, 1024, true)
use writer = new JsonTextWriter (sw, CloseOutput = false)
fableSerializer.Serialize (writer, o)
let serialize o =
use stream = new MemoryStream()
use reader = new StreamReader(stream)
jsonSerialize o stream
stream.Position <- 0L
reader.ReadToEnd()
testType
|> serialize