Socket
Socket
Sign inDemoInstall

fbranches

Package Overview
Dependencies
0
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    fbranches

Functional versions of if and switch in javascript


Version published
Maintainers
1
Created

Readme

Source

fbranches

A functional version of javascript's switch and if statements (beware of the f prefix).

if statement

if(k==k1) { return v1 }
else { return v2 }

becomes

import { fif } from 'fbranches'
fif(k1)
  .fthen(v1)
  .felse(v2)
  .exec(k)

or

import { fif } from 'fbranches'
fif()
  .fthen(v1)
  .felse(v2)
  .exec(k==k1)

or

import { fif } from 'fbranches'
fif(k==k1)
  .then(v1)
  .else(v2)
  .eval()

(beware: this command uses eval instead of exec).

switch statement

switch(k) {
  case k1:
  	return v1;
  case k2:
    return v2;
  default:
    return v3
}

becomes

import { fswitch } from 'fbranches'
fswitch()
  .fcase(k1, v1)
  .fcase(k2, v2)
  .fdefault(v2)
  .exec(k)

or

import { fswitch } from 'fbranches'
fswitch(k)
  .case(k1, v1)
  .case(k2, v2)
  .default(v2)
  .eval()

Beware: when the condition is specified in the fswitch() call, we use the eval function, not exec (see the section about the smart variants for more information about case and default).

The fswitch statement can also be used without head value (since version 1.4):

import { fswitch } from 'fbranches'
fswitch()
  .case(some_condition, v1)
  .case(some_other_condition, v2)
  .default(v3)
  .eval()

Function variants

All fthen, felse, fcase and fdefault have a variant, postfixed by _f, that accept a function instead of v. The arguments to the function may be passed in the exec function.

For example, with fif:

import { fif } from 'fbranches'
fif(k1)
  .fthen_f(f1)
  .felse(v2)
  .exec(k, a1, a2)

The exec function would call f1(a1, a2) if k==k1, or return v2 otherwise.

Smart variants

The fswitch function's return object also defines the functions case and default, that smartly dispatch between fcase_f and fcase if the second parameter is a function or not. Note that if you need to use fswitch to dispatch between function values, you must use fcase.

The same, the fif function's return object also defines the functions then and else.

Keywords

FAQs

Last updated on 01 Aug 2017

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