Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

iox

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

iox

An exploration of the Haskell IO patterns, in pure Javascript.

  • 0.0.3
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

iox

An exploration of the Haskell IO patterns, in pure Javascript.

What?

Instead of passing dependencies to your functions, instead arrange for them return:

  • A description of what IO operation they would like carried out.
  • What to do after the IO operation has completed.

For example:

function lowerCaseInput() {
    return { io: 'read-file', file: '/etc/hosts', then: (str) => str.toLowerCase() }
}

So how do you run this? Check out the full example at examples/lowercase-file.js

Why?

Functions that perform input & output operations are usually quite hard to test. (As opposed to pure functions)

  • You might use mocking techniques - painful.
  • You might use dependency injection (to inject mocks and genuine implementations)

Dependency injection can be problematic because you have to pass your dependencies all the way through your function call hierarchy. With iox, your functions compose easier because you're never passing down dependencies.

Influences

The examples

The io1.js - ioN.js files show how to perform the following imperative pseudocode using the IO pattern:

while the queue has messages to read:
    read the message
    write the message to a file
    log that we wrote the message to a file

This is typical of any backend system that reacts to events from a queuing system such as SNS, RabbitMQ, etc.

FAQs

Package last updated on 16 Oct 2017

Did you know?

Socket

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc