Skip to content

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

License

Notifications You must be signed in to change notification settings

dailyrandomphoto/node-serialization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

72f9ba9 · Nov 23, 2020

History

13 Commits
Aug 4, 2020
Aug 4, 2020
Aug 4, 2020
Oct 31, 2019
Jul 31, 2020
Oct 31, 2019
Aug 4, 2020
Aug 4, 2020
Jul 31, 2020
Jul 31, 2020
Aug 4, 2020
Nov 23, 2020

Repository files navigation

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.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published