UNPKG

@peter.naydenov/route-emitter

Version:

Changes in URL are converted in events according routes definition list

72 lines (54 loc) 2.57 kB
# Route-emitter (@peter.naydenov/route-emitter) Tool for building a **micro-frontend(MFE)**. Library `route-emitter` is based on [**react-router**](https://reactrouter.com/en/main) but is not a **'react' platform** dependent. Route change will trigger an event and will execute a callback function if it is defined. ```js let router = routeEmitter ([ { path: '/about/:name', event: 'info' } , { path: 'contact/:name', event: 'showContactInformation' } ]) router.on ( 'info', props => { // Callback definition. Executes on path: '/about/:name' console.log ( `Info about ${props.name}`) }) router.on ( 'showContactInformation' , props => { // Callback definition. executes on path: 'contact/:name' console.log ( `Here is the contact information of ${props.name}` ) }) router.navigate ( '/about/Peter' ) // console --> Info about Peter router.navigate ( '/contact/Ivan' ) // console --> Here is the contact information of Ivan ``` ## Instalation Install for node.js projects by writing in your terminal: ``` npm install @peter.naydenov/route-emitter ``` Once it has been installed, it can be used by writing this line in JavaScript project: ```js const routeEmitter = require ( '@peter.naydenov/route-emitter' ) ``` or ```js import routeEmitter from '@peter.naydenov/route-emitter' ``` ## Route-emitter Methods ```js // Router Methods on : 'Register a callback function for event' , once : 'Register a single execution callback for event' , off : 'Removes event from subscribtion' , stop : 'Ignore event for a while' , start : 'Reactivate ignored event' , debug : 'Returns a console message on each triggered event' , setRoutes : 'Will overwrite existing and will add the new paths to the routing table' , addRoutes : 'Add a new routes to existing routes. Already defined paths whould be ignored' , updateRoutes : 'Change only existing paths. Will not add routes with new path' , removeRoutes : 'Exclude routes with specific paths' , getActiveRoutes : 'Returns a list of active route paths' , navigate : 'Change location. Works as react-router navigate' , repeat : 'Emit the last route again' , getCurrent : 'Returns last route object' , destroy : 'Destroy the router' ``` ## Credits '@peter.naydenov/route-emitter' was created and supported by Peter Naydenov. ## License '@peter.naydenov/router-emitter' is released under the MIT License.