valiseri
v0.1.0
Published
A simple and lightweight library for serializing and deserializing data with ES classes and decorators(Stage.3).
Downloads
2
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
@serializable
decorator:
@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
dump
function:
const data = dump(person);
- Deserialize the data using the
load
function:
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: true
That'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.