node-serialization

1.0.1 • Public • Published

node-serialization

NPM Version LICENSE Build Status code style: prettier

A serialization library for node. Serialize/Deserialize a huge object to/from a file.

Using v8 Serialization API as default. You can provide custom serialization functions, like JSON(stringify/parse), json-stream-stringify, etc.

Usage

const { readFile, writeFile } = require("node-serialization");

Default serialize/deserialize method

Write a object to a file and read the file restore a object.

var path = "cache.data";
var data = {
  foo: "bar",
};
 
writeFile(path, data).then(() => console.log("saved"));
 
readFile(path).then((data) => console.log(data));

Custom serialize/deserialize method

Use a custom serialization method.

const { serialization } = require("node-serialization");
 
const serialize = function (object) {
  return JSON.stringify(object);
};
const deserialize = function (string) {
  return JSON.parse(string);
};
 
const { readFile: readJsonFile, writeFile: writeJsonFile } = serialization(
  serialize,
  deserialize
);
 
var path = "cache.json";
var data = {
  foo: "bar",
};
 
writeJsonFile(path, data).then(() => console.log("saved"));
 
readJsonFile(path).then((data) => console.log(data));

Convert Format

Deserialize a file then serialize into another file with different serialization.

const {
  convert,
  serializeJson,
  deserialize: deserializeV8,
} = require("node-serialization");
 
convert(
  "cache.data",
  deserializeV8,
  "cache.data.json",
  serializeJson
).catch((err) => console.error(err));

Methods

Async

  • readFile
  • writeFile
  • readJson
  • writeJson
  • convert

Sync

  • readFileSync
  • writeFileSync
  • readJsonSync
  • writeJsonSync
  • convertSync
  • serialize
  • deserialize
  • serializeJson
  • deserializeJson

If file parameter is a file path (type is string, not a buffer or a file descriptor), the writeXxx functions will write content to a temporary file while writing, and rename to the path of file parameter when success. So even if an exception(such as OOM) occurs, the file will not be a file with content loss.

License

Copyright (c) 2020 dailyrandomphoto. Licensed under the MIT license.

Package Sidebar

Install

npm i node-serialization

Weekly Downloads

16

Version

1.0.1

License

MIT

Unpacked Size

9.05 kB

Total Files

7

Last publish

Collaborators

  • dailyrandomphoto