resource-monad
TypeScript icon, indicating that this package has built-in type declarations

1.0.6 • Public • Published

Resource-Monad

Resource Monad is a simple implementation of a monadic style to resource handling.

import resource from "resource-monad"

const log: (s: string) => resource.Resource<void> = (s: string) => {
  return resource.make(
    async () => {console.log("Starting " + s)},
    async () => { console.log("Shutdown " + s)}
  )
}

const display = log("1")
  .flatMap((_) => log("2"))
  .use(async (a: void) => { console.log("Using")})

display()
// Starting 1
// Starting 2
// Using
// Shutdown 2
// Shutdown 1

As you can see from the above. First resource are used, then using acts as an anchor point, and finally resources are cleaned up in the reverse order that they are required.

Readme

Keywords

Package Sidebar

Install

npm i resource-monad

Weekly Downloads

0

Version

1.0.6

License

MIT

Unpacked Size

9.35 kB

Total Files

6

Last publish

Collaborators

  • christopherdavenport