Skip to content

airplane-mode/air-traffic-control

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Shane Gibbons
Jan 24, 2019
58ec57a · Jan 24, 2019
Jan 20, 2018
Jan 24, 2019
Jan 24, 2019
Jan 20, 2018
Jan 26, 2018
Jan 20, 2018
Dec 30, 2017
Jan 14, 2018
Jan 20, 2018
Jan 15, 2018
Jan 15, 2018
Dec 30, 2017
Jan 20, 2018
Jan 21, 2018
Jan 24, 2019
Jan 20, 2018

Repository files navigation

Air Traffic Control

License Build Status npm

Dead simple redux routing, the way it should work. Originally created by @airshanemode and @jfyles with help from the Crossroads routing library for use in Airplane Mode.

Table of Contents

How it works

Air Traffic Control maps route changes in your app to action creators in redux.

Philosophy

Route changes are actions, just like mouse clicks. They should be handled in a consistent way, and they should certainly be kept out of your views.

Installation

$ npm install --save air-traffic-control

Usage

const Router = require('air-traffic-control').Router;

// import your action creators
const ACTION_CREATORS = require('./actions').ACTION_CREATORS;

// import your redux store
const store = require('./store');

// initialize the router
// if you want local links to be automatically fed into the router,
// pass the interceptLinks: true option.
// This means you can write local links with <a href="/foo"> and they'll just work.
const router = new Router(store, { interceptLinks: true }); // TODO: interceptLinks true as default?

// register any routes you want
router.route('/home', () => ACTION_CREATORS.goHome());

// route params are provided as arguments to your handler, they go in {these}
router.route('/search/{query}', (query) => ACTION_CREATORS.search(query));

// if you want more control, you can use regexes in your routes
// matched groups are passed to your handler in order
// this one matches: /trip/chicago-to-vegas/username/2017/09/01/{id}
router.route(/^\/trip\/(?:[-a-zA-Z0-9()']+\/){5}([-a-zA-Z0-9_]+)$/, (id) => ACTION_CREATORS.trip(id));

// you'll probably want a default / 404 handler
router.route(':rest:*', () => ACTION_CREATORS.notFound());

// once you're all set and you want to start routing, call:
router.start();

License

You can check out the full license here

This project is licensed under the terms of the MIT license.

About

Air Traffic Control maps route changes in your app to action creators in redux.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published