Socket
Socket
Sign inDemoInstall

@kosich/babel-plugin-partial-expressions-experiment

Package Overview
Dependencies
53
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @kosich/babel-plugin-partial-expressions-experiment

Partial expressions experimental babel plugin


Version published
Weekly downloads
0
Maintainers
1
Created
Weekly downloads
 

Readme

Source

Partial Expressions - Babel plugin

Try it in this babel playground.

Or install it via

npm i @kosich/babel-plugin-partial-expressions-experiment -D

And then add it to your babel.config.json as described here.

NOTE: put it before pipeline operator plugins, if you use those.

About

Partial expressions is a syntax sugar to simplify writing expression that are awating one additional variable.

Syntax:

  • _ is a placeholder for the value
  • ~ is used to mark partial expression root and is required whenever we use _ (except for RHS pipes)

Examples:

let bang = ~ _ + '!';
// equals to
let bang = x => x + '!';

As a partially applied function:

let bangLog = ~ console.log(_, '!');
// equals to
let bangLog = x => console.log(x, '!');

And as a context of application:

let toBase16 = ~ _.toString(16);
// equals to
let toBase16 = x => x.toString(16);

It is also compatible with the pipeline operator:

I tried to cover a special case for pipes, when _ is in RHS of a pipe. E.g:

let value = 42 |> _ + 1 |> console.log;
// equals to
let value = 42 |> (x => x + 1) |> console.log;

Similarly, we can do partial application:

42 |> console.log(_, '!');
// equals to
42 |> (x => console.log(x, '!'));

And as a context:

42 |> _.toString(16) |> _.toUpperCase();
// equals to
42 |> (x => x.toString(16)) |> (x => x.toUpperCase());

Rules

  1. Expression is considered partial if an unbound _ symbol is used in it.

  2. Expression boudaries are limited by following:

    2.1 ~ operator let a = ~ _ + '!' equals let a = x => x + '!'

    2.2 RHS in pipeline operator
    42 |> _ + 1 |> console.log equals 42 |> (x => x + 1) |> console.log

The End 🙂

Keywords

FAQs

Last updated on 14 May 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc