1.0.0 • Published 5 years ago

trob v1.0.0

Weekly downloads
4
License
MIT
Repository
github
Last release
5 years ago

Safe Function Transform (aka. trob)

Build Status dependencies Status devDependencies Status License: MIT

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 trob

Example

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