In the past we’ve announced our various open source project releases. We wanted to take a moment to provide an introduction to the latest projects we’ve put out for the world to use, both extracted from various client projects.

Descriptions below are taken from each project’s Readme. Feel free to let us know what you think or otherwise contribute!

Updeep
updeep makes updating deeply nested objects/arrays painless by allowing you to declare the updates you would like to make and it will take care of the rest. It will recursively return the same instance if no changes have been made, making it ideal for using reference equality checks to detect changes (like PureRenderMixin).

Because of this, everything returned by updeep is frozen. updeep requires lodash, but works very well with lodash-fp or Ramda. As a matter of fact, many of the helpers functions are curried lodash functions with their parameters reversed (like lodash-fp).

AuthorizationAttrs
This is a light authorization library designed to permit searching by permission, rather than only checking permissions on instances of models.

AuthorizationAttrs functions by associating records with a destructured list of authorization attributes relevant to that model. When a user is evaluated in a permission, a list of record attributes which would allow the action are generated for that user. The permission evaluates to true if there is intersection between the user’s attributes for that permission and the record’s attributes. By preloading these approved attributes for each user and storing the records’s attributes, we gain the ability to easily search by permission in a database or search engine.

You can keep abreast of our open source projects on Github.

Main image from Flickr user azerpouak.