Skip to content

a 'babel-macros' version of 'babel-plugin-idx'

License

Notifications You must be signed in to change notification settings

andreibreeze/idx.macro

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

idx.macro

This is a babel-macros version of the babel plugin idx.

idx is a utility function for traversing properties on objects and arrays.

If an intermediate property is either null or undefined, it is instead returned. The purpose of this function is to simplify extracting properties from a chain of maybe-typed properties.

Usage

With babel-macros and this package installed, you can use it to like idx.

import idx from 'idx.macro';
const fiends_of_friends = idx(props, _ => _.user.friends[0].friends);

The above snippet will be compiled to:

const fiends_of_friends =
  props.user == null ? props.user :
  props.user.friends == null ? props.user.friends :
  props.user.friends[0] == null ? props.user.friends[0] :
  props.user.friends[0].friends

Soon?

Please please please https://github.com/tc39/proposal-optional-chaining

License

idx is MIT licensed. I copied it from the facebook idx license. I have no idea if I am doing this right (what is the PATENTS file?!), so please let me know if you know anything about this.

If the facebook people want to have idx.macro on their idx repo, or want the idx.macro name, just sent me a message :)

About

a 'babel-macros' version of 'babel-plugin-idx'

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%