README.md
1 # jest-serializer 2 3 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. 4 5 ## Install 6 7 ```sh 8 $ yarn add jest-serializer 9 ``` 10 11 ## API 12 13 Three kinds of API groups are exposed: 14 15 ### In-memory serialization: `serialize` and `deserialize` 16 17 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. 18 19 ```javascript 20 import {deserialize, serialize} from 'jest-serializer'; 21 22 const myObject = { 23 foo: 'bar', 24 baz: [0, true, '2', [], {}], 25 }; 26 27 const buffer = serialize(myObject); 28 const myCopyObject = deserialize(buffer); 29 ``` 30 31 ### Synchronous persistent filesystem: `readFileSync` and `writeFileSync` 32 33 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. 34 35 ```javascript 36 import {readFileSync, writeFileSync} from 'jest-serializer'; 37 38 const myObject = { 39 foo: 'bar', 40 baz: [0, true, '2', [], {}], 41 }; 42 43 const myFile = '/tmp/obj'; 44 45 writeFileSync(myFile, myObject); 46 const myCopyObject = readFileSync(myFile); 47 ```