Dafit
Transform data to fit your structures.


Installation
$ npm install --save dafit
Usage
Dafit enables you to create a dynamic schema you want your data to fit.
import { Resolver } from 'dafit';
const defaultValue = null;
const resolveUser = new Resolver({
id: defaultValue,
firstname: user => user.first_name,
lastname: user => user.last_name,
fullName: user => `${user.first_name} ${user.last_name.toUpperCase()}`
friends: user => getFriends(user.id),
permissions: (user, context) => {
if (contact.withPermissions) return getPermissions(user)
return []
},
})
const user = {
id: 1,
first_name: 'John',
last_name: 'Cena',
age: 39
}
const result = resolveUser(user, { withPermissions: true });
You can also use a synchronuous resolver for some use case to avoid using Promises
import { SyncResolver } from 'dafit';
const defaultValue = null;
const resolveUser = new SyncResolver({
id: defaultValue,
firstname: user => user.first_name,
lastname: user => user.last_name,
fullName: user => `${user.first_name} ${user.last_name.toUpperCase()}`,
aPromise: () => new Promise((resolve) => resolve('Hello World!')),
})
const user = {
id: 1,
first_name: 'John',
last_name: 'Cena',
age: 39
}
const result = resolveUser(user, { withPermission: true });
Change Log