hyperfun is a JavaScript library based on a unidirectional user interface architectures like Elm's Architecture (Model, Update and View)
npm install @hyperfun/routerhyperfun plugin to integrate a router in your hyperfun applications.
Middleware to initialize the router functionality
``
import { router } from '@hyperfun/router';
import { div, h1 } from '@hyperfun/dom';
const view = () => div('#app', [h1(['Bye, bey!'])]);
run({
view,
render,
state,
plugins: [router],
router: {
'/': {
title: () => 'Hello!',
view,
},
'/:slug': {
title: params => params.slug,
view,
},
},
});
`
Used on an event click of an anchor to navigate through the application.
`
import { to } from '@hyperfun/router';
import { a } from '@hyperfun/dom';
const link = (props/ { href, className = ''} /, children) =>
a({ ...props, onClick: to }, children);
`
A redirection to a path
`
import { redicrect } from '@hyperfun/router';
redirect('/');
`
Given a version number MAJOR.MINOR, increment the:
- MAJOR version when you make backwards-incompatible updates of any kind
- MINOR version when you make 100% backwards-compatible updates
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR format.

First off, thanks for taking the time to contribute!
Now, take a moment to be sure your contributions make sense to everyone else.
Found a problem? Want a new feature? First of all, see if your issue or idea has already been reported.
If it hasn't, just open a new clear and descriptive issue.
Pull requests are the greatest contributions, so be sure they are focused in scope and do avoid unrelated commits.
- Fork it!
- Clone your fork: git clone https://github.com/cd hyperfun
- Navigate to the newly cloned directory: git checkout -b my-new-feature
- Create a new branch for the new feature: npm install
- Install the tools necessary for development: npm run build
- Make your changes.
- to verify your change doesn't increase output size.npm test
- to make sure your change doesn't break anything.git commit -am 'Add some feature'
- Commit your changes: git push origin my-new-feature`
- Push to the branch:
- Submit a pull request with full remarks documenting your changes.