pathematics
Version:
Parse urls and with Express-like url segments
86 lines (60 loc) • 1.97 kB
Markdown
Parse urls and with Express-like url segments
```
npm install pathematics --save
```
Each segement in the source key of the map is injected into the destination value of the map. The map determins which key/value pair to use by comparing the url passed into the method with the map keys.
```js
var pathematics = require('pathematics');
var routesMap = {
'/some/:segemented/route': '/new/route/:segmented'
};
var url = pathematics(routesMap, '/some/custom/route');
console.log(url); // OUTPUTS: /new/route/custom
```
You can also partialize the function to reuse the object map
```js
var pathematics = require('pathematics');
var routesMap = {
'/some/:segemented/route': '/new/route/:segmented'
};
var paths = pathematics(routesMap);
var url = paths('/some/custom/route');
console.log(url); // OUTPUTS: /new/route/custom
```
Parseing route segements with custom meta data is also available. If the value if the key/value pair in the object map is an object, it expects the parameter of `url` to define the target path with segements.
```js
var pathematics = require('pathematics');
var routesMap = {
'/some/:segemented/route': {
url: '/new/route/:segmented',
metaData: 'something'
}
};
var data = pathematics.withMeta(routesMap, '/some/custom/route');
console.log(data);
/*
OUTPUTS:
{
url: '/new/route/custom',
meta: {
url: '/new/route/:segmented',
metaData: 'something'
}
}
*/
```
Generates the parsed url with segments if the url is provided or returns a parsing funciton if no url is provided initially.
* `objectMap` - and object with key values pairs that define routes with segments to match against
* `url` - the url to compare and parse with the `objectMap`
Allows you to pass optional meta data around with route segements with the object map.
```
npm install
npm test
```