https://github.com/billykong/active-serializer
Rails active_model_serializer inspired nodejs object serializer
https://github.com/billykong/active-serializer
expressjs json nodejs-modules npm npm-package sequelize serializer
Last synced: 3 months ago
JSON representation
Rails active_model_serializer inspired nodejs object serializer
- Host: GitHub
- URL: https://github.com/billykong/active-serializer
- Owner: billykong
- License: mit
- Created: 2017-09-10T14:58:29.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2022-12-06T17:23:09.000Z (over 2 years ago)
- Last Synced: 2025-02-10T14:52:01.440Z (5 months ago)
- Topics: expressjs, json, nodejs-modules, npm, npm-package, sequelize, serializer
- Language: JavaScript
- Size: 122 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://travis-ci.org/billykong/active-serializer)
[](https://coveralls.io/github/billykong/active-serializer?branch=master)
[](https://img.shields.io/npm/v/active-serializer)
[](https://repl.it/github/billykong/active-serializer)# active-serializer
Rails active_model_serializer inspired nodejs object serializer## Installation
`npm install active-serializer --save`
## Usage
```
const serialize = require('active-serializer');const object = {
id: 'some_id',
name: 'some_name',
unwanted: 'will not be shown',
image_url: async (options) => { return await 'some_url' }
};const attributes = ['id', 'name', 'image_url'];
const options = {}const result = await serialize(object, attributes, options);
console.log(result);
```
Output should be:
```
{
id: 'some_id',
name: 'some_name',
image_url: 'some_url'
}
```### Nested Serialization
```
const nestedObject = {
id: 'some_id',
name: 'some_name',
unwanted: 'will not be shown',
image_url: async (options) => { return await 'some_url' },
object2: {
id: 'some_other_id',
attr1: 'some_attr',
attr2: 'will not be shown'
}
};
const object2Serializer = async (object2, options) => {
const attributes2 = ['id', 'attr1'];
return await serialize(object2, attributes2, options);
};const attributes1 = ['id', 'name', 'image_url', 'object2'];
const options = {
'serializers': { 'object2': object2Serializer }
}
const result = await serialize(nestedObject, attributes1, options);
console.log(result);
```
Output should be:
```
{
id: 'some_id',
name: 'some_name',
image_url: 'some_url',
object2: {
id: 'some_other_id',
attr1: 'some_attr'
}
}
```## Tests
`npm test`
## Contributing
Please feel free and report issues or create pull request :]