0.0.3 • Published 5 years ago

simple-path-parser v0.0.3

Weekly downloads
5
License
MIT
Repository
github
Last release
5 years ago

Simple-Path-Parser

Simple lib for parse url

Installation

npm install simple-path-parser

Usage

const pathParser = require('simple-path-parser');
  • compile(template)
    • pattern : String
    • return: { template, pattern, keys: { name, type } }
    •   const pattern = pathParser.compile('/user/{name:string}/{id:number}/{post:any}');
        // parameters must be in format {Parameter name: Parameter type}
        // There're 3 types: string, number, any
        
        console.log(pattern);
        /*
        * { 
        * template: '/user/{name:string}/{id:number}/{post:any}', 
        * pattern: /^\/user\/(\w+)\/(\d+)\/(.+)\/?$/, 
        * keys: [ 
        *     { name: 'name', type: 'string' }, 
        *     { name: 'id', type: 'number' }, 
        *     { name: 'post', type: 'any' } 
        *   ] 
        * }
        * */
  • compare(pattern, uri)
    • pattern: Object
    • return: false || true
    •    console.log(pathParser.compare(pattern, '/user/Nikita/123/My-post123/'));
         // true
      
         console.log(pathParser.compare(pattern, '/user/Nikita/123/'));
         // false
      
         console.log(pathParser.compare(pattern, '/user/Nikita/String/My-post123/'));
         // false, because second parameter must be number
  • insert(pattern, parameters)
    • pattern: Object
    • return: url
    •    console.log(pathParser.insert(pattern, {name: "John", id: 321, post: "MyPost-123"}));
         // /user/John/321/MyPost-123
      
         console.log(pathParser.insert(pattern, {name: "John", id: 321, post: "My-Post"}));
         // /user/John/321/{post:any}, parameter "post" doesn't fill with value because 
         // it has type any, but in parameters it has type string
  • getParams(pattern, uri)
    • pattern: Object
    • return: null || parameters
    •    console.log(pathParser.getParams(pattern, '/user/Nikita/123/My-post123/'));
         // {name: "Nikita", id: "123", post: "My-post123"}
      
         console.log(pathParser.getParams(pattern, '/user/Nikita/123/'));
         // null
      
         console.log(pathParser.getParams(pattern, '/user/Nikita/String/My-post123/'));
         // null