1.0.0 • Published 7 years ago
trob v1.0.0
Safe Function Transform (aka. trob)
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.
Installation
Simply run the following to add trob into your project:
$ yarn add trob
# Or if you prefer NPM:
$ npm install trobExample
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.
License
MIT © OpenS SPRL, ALLOcloud
1.0.0
7 years ago