composable-normalize
v2.0.3
Published
Normalize URLs w/ functional programming
Downloads
12
Readme
composable-normalize
Experiment to normalize URLs w/ functional programming
Install
npm i --save-dev composable-normalize
Usage
import {normalize} from 'composable-normalize'
normalize('HTTP://www.Github.com/')
//=> 'http://www.github.com/'
normalize('http://www.github.com/../a/b/../c/./d')
// => 'http://www.github.com/a/b/c/d/'
normalize('http://www.github.com:80/bar')
// => 'http://www.github.com/bar/'
normalize('http://www.github.com/%7Eusername/')
// => 'http://www.github.com/~username/'
also as a bonus you can do functional composition right to left :fire:
import {normalize, compose} from 'composable-normalize'
compose(str => `${str}bar`, normalize)('HTTP://github.com////foo/')
// => 'http://github.com/foo/bar'
Current Features
- [x] Dedupe slashes
- [x] Dedupe dots
- [x] Decode
- [x] Lowercase scheme
- [x] Remove default http/https ports
- [x] Adds trailing slash
Todos
- [x] Add Tests
- [x] Publish to npm
- [ ] Add Options?