Comments (5)
I think this approach could have a better place on a model
or a class
before using serialization.
from json-api-serializer.
No it's not possible actually.
Maybe we could had an option transform
that takes a function to transform each data before the serialization.
from json-api-serializer.
Thank you for reply.
That's an good option. What about something like this, is it bad approach?
serializers/user.js
{
...,
whitelist: ['name', 'profileImage'],
get profileImage(data, extraData) {
// compute something
}
}
Serializer chould check itself for whitelist attributes just after not finding it in the data or vice versa.
from json-api-serializer.
I think, the most generic approach would be to have some kind of Transformers
.. basically, a transformer is a class that transforms the input object (model) to another output structure.. This can be used to rename attributes (e.g., rename givenName
to firstName
) or add "computed attributes" (e.g, name : firstname + ' ' + lastname
)
In the PHP world (i know) there is a "state-of-the-art" package for this purpose, that's called fractal
( https://fractal.thephpleague.com/ ).
Maybe you can take a look at the Transformer
part?
I would really love to see such an approach in this package, because it is a highly versatile and flexible approach..
All the best
from json-api-serializer.
I think we should avoid introducing a new kind of domain-specific language (DSL) in this library. json-api-serializer
is only responsible to (de)serialize a data to JSON API compliant responses. If you want to transform your data, you should do it before using this library.
The only possible option we could add for this library, is a transform
option, that will act as a hook before (de)serializing attributes. So you will be able to use any kind of library you want to transform attributes.
from json-api-serializer.
Related Issues (20)
- ObjectID (mongodb) should be serialized with .toString() and not treated as an object HOT 2
- Support extracting error class names into the 'title' field of JSON API errors HOT 1
- Error when try to deserialise an included relationship with `alternativeKey` HOT 3
- ErrorMaximum call stack size exceeded if `included` has cross references
- Would you be interested in a conversion to Typescript? HOT 2
- Error instance serialization missing properties HOT 1
- ValidationError: beforeSerialize is not allowed HOT 2
- Incorrectly deserializing relationship when alternativeKey is set from default and relationship data is not in the included array HOT 2
- Case conversion breaks on non-alphanumeric strings
- Unintended object in attributes HOT 2
- Is there an option to remove undefined properties? HOT 1
- The result after serialize will not have `included` if the input doesn't have attributes HOT 5
- Error thrown when relationship is not registered HOT 5
- Having no attributes in the relation data does not add relation to included array
- Use a cache for converting to snake/camel/kebab case HOT 1
- bug: When installed in Angular project, it throws error since it is searching for `fs` HOT 3
- Relationships do not work with ES2015 classes
- bug: Duplicated models from includes are removed from response HOT 1
- Support serialization of only meta HOT 2
- Support for relationship data serialization? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from json-api-serializer.