3.14.1 • Published 2 years ago

@aofl/router v3.14.1

Weekly downloads
300
License
MIT
Repository
github
Last release
2 years ago

@aofl/router

AOFL Router is a simple client side router. It supports the history API, dynamic paths and provides multiple middleware hooks. It makes no path rendering assumptions.

Api Documentation

Examples

Installation

$ npm i -S @aofl/router

Middleware hooks

NameArgumentsDescription
beforefnFunctionExecutes before a route has even been matched. Middleware here should be any prep work that needs to happen before a route begins to resolve. It will note be provided a matched route at this point.
beforeEachfnFunctionExecutes after all "before" middleware. At this point a matchedRoute will be available in the response object passed to the middleware callback. Redirects can occur here.
afterEachfnFunctionExecutes after all "beforeEach" middleware. Again a matchedRoute will be available in the response object passed to the middleware callback. The response body may also indicate a redirected route from a beforeEach middleware; this allows afterEach middleware to act on that information. No redirects however, are allowed at this point. So any changes to redirect.to will be ignored.
afterfnFunctionMiddleware here executes after the route has been updated in the browser. At least one middleware function is required here to call the `resolve

Middleware fn signature

fn(request, response, next)

request: {to: String, from: String} | Immutable original request object. Should never be modified.

response: {to: String, from: String, *matchedRoute: Object} | Begins as a clone of request. Can be modified in before and beforeEach middleware.

  • matchedRoute will be the matched object from the route config.
  • The response object should be used to store and pass information down the middleware chain.
  • Redirects are made by updating response.to in before or beforeEach middleware.

next: The next method must be called with the response object. Else the middleware chain will break and the route update will not occur.

Sample middleware

import myRouter from 'my-router';

// Middleware to redirect any requests to the /private dir to /login
router.before(function(request, response, next) {
  if (/private/.test(request.to)) {
    response.to = '/login';
  }
  next(response);
})

Properties

none

Methods

NameArgumentsDescription
initconfig[Object]Initialize the router with the router configuration object
navigatepath[String], force[Boolean], popped[Boolean], meta[Object]performs path match and applies middleware

** See middleware hooks for middleware methods

3.14.1

2 years ago

3.14.0

2 years ago

4.0.0-alpha.45

3 years ago

4.0.0-alpha.44

3 years ago

4.0.0-alpha.17

3 years ago

4.0.0-alpha.16

3 years ago

4.0.0-alpha.15

3 years ago

4.0.0-alpha.19

3 years ago

4.0.0-alpha.18

3 years ago

4.0.0-alpha.39

3 years ago

4.0.0-alpha.38

3 years ago

4.0.0-alpha.37

3 years ago

4.0.0-alpha.36

3 years ago

4.0.0-alpha.31

3 years ago

4.0.0-alpha.30

3 years ago

4.0.0-alpha.35

3 years ago

4.0.0-alpha.34

3 years ago

4.0.0-alpha.33

3 years ago

4.0.0-alpha.32

3 years ago

4.0.0-alpha.28

3 years ago

4.0.0-alpha.27

3 years ago

4.0.0-alpha.26

3 years ago

4.0.0-alpha.25

3 years ago

4.0.0-alpha.29

3 years ago

4.0.0-alpha.20

3 years ago

4.0.0-alpha.24

3 years ago

4.0.0-alpha.23

3 years ago

4.0.0-alpha.22

3 years ago

4.0.0-alpha.21

3 years ago

4.0.0-alpha.42

3 years ago

4.0.0-alpha.41

3 years ago

4.0.0-alpha.40

3 years ago

4.0.0-alpha.43

3 years ago

4.0.0-alpha.13

3 years ago

3.13.1

3 years ago

3.13.0

3 years ago

4.0.0-alpha.11

3 years ago

4.0.0-alpha.9

3 years ago

4.0.0-alpha.10

3 years ago

3.12.1

3 years ago

3.12.0

3 years ago

3.9.0

4 years ago

3.10.0

4 years ago

3.8.1

4 years ago

3.9.0-alpha.0

4 years ago

3.8.0

4 years ago

3.6.1

4 years ago

3.6.0

4 years ago

3.6.0-alpha.1

4 years ago

3.6.0-alpha.0

4 years ago

3.5.0-beta.22

4 years ago

3.5.0

4 years ago

3.5.0-beta.20

4 years ago

3.5.0-beta.21

4 years ago

3.5.0-beta.19

4 years ago

3.5.0-beta.18

4 years ago

3.5.0-beta.15

4 years ago

3.5.0-beta.14

4 years ago

3.5.0-beta.17

4 years ago

3.5.0-beta.16

4 years ago

3.5.0-beta.11

4 years ago

3.5.0-beta.13

4 years ago

3.5.0-beta.12

4 years ago

3.5.0-beta.10

4 years ago

3.5.0-beta.8

4 years ago

3.5.0-beta.9

4 years ago

3.5.0-beta.7

4 years ago

3.5.0-beta.5

4 years ago

3.5.0-beta.6

4 years ago

3.5.0-beta.3

4 years ago

3.5.0-beta.4

4 years ago

3.5.0-beta.2

4 years ago

3.5.0-beta.1

4 years ago

3.4.0-alpha.0

4 years ago

3.4.0-alpha.1

4 years ago

3.4.0

4 years ago

3.3.0

4 years ago

3.2.2-alpha.3

4 years ago

3.2.2-alpha.2

4 years ago

3.2.1

4 years ago

3.2.0

4 years ago

3.1.0

4 years ago

3.0.0

4 years ago

3.0.0-beta.50

4 years ago

3.0.0-beta.49

4 years ago

3.0.0-beta.48

4 years ago

3.0.0-beta.47

4 years ago

3.0.0-beta.46

4 years ago

3.0.0-beta.42

4 years ago

3.0.0-beta.41

4 years ago

3.0.0-beta.40

4 years ago

3.0.0-alpha.12

5 years ago

3.0.0-beta.38

5 years ago

3.0.0-beta.37

5 years ago

3.0.0-beta.36

5 years ago

3.0.0-beta.35

5 years ago

3.0.0-beta.34

5 years ago

3.0.0-beta.32

5 years ago

3.0.0-beta.30

5 years ago

3.0.0-beta.28

5 years ago

3.0.0-beta.27

5 years ago

3.0.0-beta.26

5 years ago

3.0.0-beta.25

5 years ago

3.0.0-beta.24

5 years ago

3.0.0-beta.23

5 years ago

3.0.0-beta.22

5 years ago

3.0.0-beta.17

5 years ago

3.0.0-beta.16

5 years ago

3.0.0-beta.15

5 years ago

3.0.0-beta.14

5 years ago

3.0.0-beta.13

5 years ago

3.0.0-beta.12

5 years ago

3.0.0-beta.11

5 years ago

3.0.0-beta.9

5 years ago

3.0.0-beta.8

5 years ago

3.0.0-beta.6

5 years ago

3.0.0-beta.5

5 years ago

3.0.0-alpha.11

5 years ago

3.0.0-alpha.5

5 years ago

3.0.0-alpha.0

5 years ago

3.0.0-0

5 years ago

2.1.0-alpha.9

5 years ago

2.1.0-alpha.6

5 years ago

2.1.0-alpha.5

5 years ago

2.1.0-alpha.4

5 years ago

2.0.0

5 years ago

2.0.0-alpha.17

5 years ago

2.0.0-alpha.16

5 years ago

2.0.0-alpha.5

5 years ago

2.0.0-alpha.1

5 years ago

1.5.0-alpha.0

5 years ago

1.4.1

5 years ago

1.4.0

5 years ago

1.3.0

5 years ago

1.2.3

5 years ago

1.2.1

5 years ago

1.2.0

5 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.0

6 years ago

1.0.0-beta.28

6 years ago

1.0.0-beta.27.1

6 years ago

1.0.0-beta.27

6 years ago

1.0.0-beta.26

6 years ago

1.0.0-beta.25

6 years ago

1.0.0-beta.24

6 years ago

1.0.0-beta.23

6 years ago

1.0.0-beta.22

6 years ago

1.0.0-beta.21

6 years ago

1.0.0-beta.20

6 years ago