valiseri
v0.1.0
Published
A simple and lightweight library for serializing and deserializing data with ES classes and decorators(Stage.3).
Maintainers
Readme
valiseri
A simple and lightweight library for serializing and deserializing data with ES classes and decorators (Stage 3).
What is valiseri?
valiseri is a TypeScript library that provides a convenient way to serialize and deserialize data using ES classes and decorators. It allows you to easily convert complex object structures into a format that can be stored or transmitted, and then restore them back to their original form.
Usage
To use valiseri, follow these steps:
- Install valiseri as a dependency in your project:
npm install valiseri valibot- Import the necessary functions and decorators from valiseri, and optionally import validators from valibot:
import { serializable, load, dump } from 'valiseri';
import * as v from 'valibot';- Define your serializable data classes using the
@serializabledecorator:
@serializable
class Address {
@serializable.field(v.string())
accessor street: string;
@serializable.field(v.string())
accessor city: string;
@serializable.field(v.string())
accessor zipCode: string;
}
@serializable
class Person {
@serializable.field(v.string())
accessor name: string;
@serializable.field(v.number())
accessor age: number;
// Nested serializable object is also supported, it will be serialized and deserialized recursively.
@serializable.field(Address)
accessor address: Address;
}- Create an instance of your data class and set its properties:
const person = new Person();
person.name = "John Doe";
person.age = 30;
person.address = new Address();
person.address.street = "123 Main St";
person.address.city = "Anytown";
person.address.zipCode = "12345";- Serialize the instance using the
dumpfunction:
const data = dump(person);- Deserialize the data using the
loadfunction:
const loadedPerson = load(Person, data);- Use the deserialized object as needed:
console.log(loadedPerson.name); // Output: "John Doe"
console.log(loadedPerson.age); // Output: 30
console.log(loadedPerson.address.street); // Output: "123 Main St"
console.log(loadedPerson.address instanceof Address); // Output: trueThat's it! You have successfully used valiseri to serialize and deserialize data.
For more advanced usage and options, please refer to the documentation and valibot.
