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
46
47
|
# jest-serializer
Module for serializing and deserializing object into memory and disk. By default, the `v8` implementations are used, but if not present, it defaults to `JSON` implementation. Both serializers have the advantage of being able to serialize `Map`, `Set`, `undefined`, `NaN`, etc, although the JSON one does it through a replacer/reviver.
## Install
```sh
$ yarn add jest-serializer
```
## API
Three kinds of API groups are exposed:
### In-memory serialization: `serialize` and `deserialize`
This set of functions take or return a `Buffer`. All the process happens in memory. This is useful when willing to transfer over HTTP, TCP or via UNIX pipes.
```javascript
import {deserialize, serialize} from 'jest-serializer';
const myObject = {
foo: 'bar',
baz: [0, true, '2', [], {}],
};
const buffer = serialize(myObject);
const myCopyObject = deserialize(buffer);
```
### Synchronous persistent filesystem: `readFileSync` and `writeFileSync`
This set of functions allow to send to disk a serialization result and retrieve it back, in a synchronous way. It mimics the `fs` API so it looks familiar.
```javascript
import {readFileSync, writeFileSync} from 'jest-serializer';
const myObject = {
foo: 'bar',
baz: [0, true, '2', [], {}],
};
const myFile = '/tmp/obj';
writeFileSync(myFile, myObject);
const myCopyObject = readFileSync(myFile);
```
|