# hash-router

> A frontend router for the hash change event

Latest version **0.4.0** (published 2014-05-03) · 0 weekly downloads

## Install

```sh
npm install hash-router
pnpm add hash-router
yarn add hash-router
bun add hash-router
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.4.0 |
| Published | 2014-05-03 |
| First published | 2013-06-17 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 3 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 11 |
| Author | Raynos |
| Maintainers | raynos |

## Links

- npm: https://www.npmjs.com/package/hash-router
- Repository: https://github.com/Raynos/hash-router
- Issues: https://github.com/Raynos/hash-router/issues
- npm.io page: https://npm.io/package/hash-router

## Dependencies (3)

- [xtend](https://npm.io/package/xtend.md) ~2.0.6
- [global](https://npm.io/package/global.md) ^4.2.1
- [routes](https://npm.io/package/routes.md) ~0.2.0

## Recent versions

- 0.4.0 (latest) — 2014-05-03
- 0.3.4 — 2013-09-30
- 0.3.3 — 2013-07-18
- 0.3.2 — 2013-07-09
- 0.3.1 — 2013-07-09
- 0.2.1 — 2013-07-08
- 0.1.2 — 2013-07-03
- 0.1.1 — 2013-07-03
- 0.1.0 — 2013-06-17

## README

# hash-router

<!-- [![browser support][5]][6] -->

<!-- [![build status][1]][2] [![Coverage Status][9]][10] [![davis dependency status][3]][4] [![gemnasium Dependency Status][11]][12] [![NPM version][7]][8] -->

A frontend router for the hash change event

## Example

```js
var HashRouter = require("hash-router")

var router = HashRouter()
router.addRoute("#/", renderHome)
router.addRoute("#/login", showLoginDialog)

router.on("hash", function (hash, event) {
  console.log("hash changed!", hash)
})

window.addEventListener("hashchange", router)
router() // start the router
```

### Docs

```ocaml
type RouteHandler := (hash: String, opts: {
    params: Object,
    splats: Array<String>,
    newUrl: String,
    oldUrl: String
}) => void

hash-router := (opts?: {
    setRoute?: (String) => void,
    getRoute?: () => String
}) => EventEmitter & {
    (HashChangeEvent?) => void,
    go: (String) => void,
    get: () => String,
    addRoute: (pattern: String | RegExp, handler: RouteHandler) => void
}
```

## Installation

`npm install hash-router`

## Contributors

 - Raynos

## MIT Licenced

  [1]: https://secure.travis-ci.org/Raynos/hash-router.png
  [2]: https://travis-ci.org/Raynos/hash-router
  [3]: https://david-dm.org/Raynos/hash-router.png
  [4]: https://david-dm.org/Raynos/hash-router
  [5]: https://ci.testling.com/Raynos/hash-router.png
  [6]: https://ci.testling.com/Raynos/hash-router
  [7]: https://badge.fury.io/js/hash-router.png
  [8]: https://badge.fury.io/js/hash-router
  [9]: https://coveralls.io/repos/Raynos/hash-router/badge.png
  [10]: https://coveralls.io/r/Raynos/hash-router
  [11]: https://gemnasium.com/Raynos/hash-router.png
  [12]: https://gemnasium.com/Raynos/hash-router

---
_Source: https://npm.io/package/hash-router · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
