All files / src/libs url.js

90% Statements 18/20
62.5% Branches 10/16
60% Functions 3/5
90% Lines 18/20

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61              1x                       1x 1x 1x 1x   1x                 1x 1x 1x 1x   1x                 2x 2x   2x 2x     2x 1x     2x    
/**
 * @description JS url processing
 * @author heyli
 * @date 2016.07.30
 */
import global from './gb';
 
let util = {
    _getHash: () => global.location.hash,
    _getSearch: () => global.location.search
};
export default util;
 
/**
 * get hash param
 * @param  {String} key [key]
 * @return {String}     [value]
 */
export function getHash(key) {
    let m = '';
    let location = global.location;
    Eif (location) {
        m = util._getHash().match(new RegExp('(#|&)' + key + '=([^&#]*)(#|&|$)'));
    }
    return !m ? '' : decodeURIComponent(m[2]);
}
 
/**
 * get query param
 * @param  {String} key [key]
 * @return {String}     [value]
 */
export function getQuery(key) {
    let m = '';
    let location = global.location;
    Eif (location) {
        m = util._getSearch().match(new RegExp('(\\?|&)' + key + '=([^&]*)(#|&|$)'));
    }
    return !m ? '' : decodeURIComponent(m[2]);
}
 
/**
 * get query or hash param
 * @param  {String} key [key]
 * @return {String}     [value]
 */
export function getUrlParam(key) {
    let m = '';
    let location = global.location;
 
    Eif (location) {
        m = util._getSearch().match(new RegExp('(\\?|#|&)' + key + '=([^&]*)(#|&|$)'));
    }
 
    if (!m && location) {
        m = util._getHash().match(new RegExp('(#|&)' + key + '=([^&#]*)(#|&|$)'));
    }
 
    return !m ? '' : decodeURIComponent(m[2]);
}