A small utility function to run a function on either an array of objects or an object without knowing the argument type before.
This is needed for us because we run almost the same logic on both our user
and users
GraphQL's resolvers and thus we can leverage code re-use easily without having to write the same trob
logic every time.
Simply run the following to add trob
into your project:
$ yarn add trob
# Or if you prefer NPM:
$ npm install trob
Imagine you have either an user object, or an array of user objects. Now you want to run the exactly same function on them because they share the same interface. For example, you'd like to update the user's name by adding its last name. Here's where trob
comes to the rescue.
// ES6
import trob from "trob";
// ES5
const trob = require("trob");
// CommonJS
const trob = require("trob").default;
// Fixtures
const user = { id: 1, firstName: "John" };
const users = [...user, { id: 2, firstName: "Dan" }];
// Transform function
const addLastName = u => ({ ...u, lastName: "Doe", fullName: `${u.name} Doe` });
// NOW LET'S TROB DO THE MAGIC.
const trobdUser = trob(user, addLastName);
const trobdUsers = trob(users, addLastName);
// Results: It rocks! :3
assert(trobdUser.lastName === "Doe");
assert(trobdUser.fullName === "John Doe");
assert(trobdUsers[1].lastName === "Doe");
assert(trobdUsers[1].fullName === "Dan Doe");
See the examples/
folder for more examples.
MIT © OpenS SPRL, ALLOcloud