/hyperapp-middlewares

Frequently used hyperapp#2 enhancers

Primary LanguageJavaScriptMIT LicenseMIT

Hyperapp#2 Middlewares

Hyperapp#2 provides awesome middleware mechanics based on wrapping internal dispatch function, those allows creation of custom dispatch behavior and multiple useful helpers (middlewares). This package is a set of frequently used middlewares.

Install

This package is not published to npm registry yet, to install use github repository path as package name

npm install sergey-shpak/hyperapp-middlewares

List of middlewares

logger

Logs each dispatched action. Takes two arguments:

  • custom output function ('console.debug' by default)
  • and verbose option to log 'tuples' and 'effects'
import { app } from 'hyperapp'
import { logger } from '@hyperapp/middlewares'

app({
  // ... app initialization settings
  // log only when running in 'development' env
  middleware: process.env.NODE_ENV === 'development' && logger()
})

or with custom output and verbose option

import { app } from 'hyperapp'
import { logger } from '@hyperapp/middlewares'

// custom logger output
const output = (...logs) => {}

app({
  // ... app initialization settings
  middleware: logger(output, true)
})
immutable

Makes state object immutable, all state mutations fails. (When running in 'strict mode' environment, error is thrown on any state mutation, action triggered mutation is visible through error stack trace).

import { app } from 'hyperapp'
import { immutable } from '@hyperapp/middlewares'

app({
  // ... app initialization settings
  middleware: immutable
})
compose

Creates middlewares composition

import { app } from 'hyperapp'
import { logger, immutable, compose } from '@hyperapp/middlewares'

app({
  // ... app initialization settings
  // compose(middleware, .., middlewareN)
  middleware: compose(immutable, logger()) 
})

License

@hyperapp/middlewares is MIT licensed. See LICENSE.