« Vicis 🧮 🦕 »
Presentation and transformation layer for data output in RESTful APIs.
•• Vicis Documentation •• JavaScript Repository •• Deno Repository ••
This is Deno analogue to these libraries: 🐘 Fractal for PHP, 💎 Roar for Ruby, 🍢 Marshmallow for Python.
💬 Tl;dr
Code:
import { Vicis } from "vicis";
const configuration = {
cast: { _id: Vicis.INTEGER, registered: Vicis.FLAG },
defaults: { confirmed: false },
exclude: [/(?:password)/gi, /^(?:_)(?:_)?/],
omit: ["createdAt", "updatedAt", "deletedAt"],
rename: { _id: "id", email: "login" },
replace: { url: null }
};
const model = {
_id: "54759309034942804",
email: "johnwick@gmail.com",
userPassword: "36e80092ff7f1ed72903cda9409b9d2c",
registered: "1",
url: "example.com",
createdAt: "2020-01-01 01:23:45",
__v: 1
};
const serializer = new Vicis(configuration);
serializer.data(model);
console.log(serializer.getData());
Output:
{
"confirmed": false,
"id": 54759309034942804,
"login": "johnwick@gmail.com",
"registered": true,
"url": null
}