0.0.2 • Published 6 years ago

babel-plugin-monadic-do v0.0.2

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

Hijacks do expressions with bitwise left shift (<<) to implement the for/yield syntax we all know and :heart: from scala.

If you don't like using the tasiest syntax sugar available, then stay away!

However, if you like feeling alive and the taste of the kool-aid they're handing out in fp land, then look no further!

You can turn:

getFoo("/api/foo").chain(foo => {
  return getBar("/api/bar").chain(bar => {
    const lol = bar.name;
    return getBaz("/api/baz/" + lol).map(baz => {
      return foo + bar + baz;
    });
  });
});

into:

do {
  foo << getFoo("/api/foo")
  bar << getBar("/api/bar")
  const lol = bar.name;
  baz << getBaz("/api/baz/" + lol)

  foo + bar + baz;
}

Limitations: 1. Top expression must be a 'bind' expression, i.e. x << y 2. Last line must be a plain expression (not a bind expression) 3. Coworkers will loathe you when you try to explain monads to them.