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.
This package is not published to npm registry yet, to install use github repository path as package name
npm install sergey-shpak/hyperapp-middlewares
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)
})
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
})
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())
})
@hyperapp/middlewares is MIT licensed. See LICENSE.