Helper.js 1.74 KB
/**
 * Handlebars helpers
 * bikai kai.bi@yoho.cn
 * 2016-05-10
 */
'use strict';
const querystring = require('query-string');
const _ = require('lodash');


/**
 * 七牛图片路径处理
 * @param  {[string]} url
 * @param  {[string]} width
 * @param  {[string]} height
 * @param  {[string]} mode
 * @param {int} quality
 * @return {[string]}
 */
export function image(url, width, height, mode, quality) {
    mode = _.isNumber(mode) ? mode : 2;
    url = url || '';
    url = url.replace(/{width}/g, width).replace(/{height}/g, height).replace(/{mode}/g, mode);
    if (url.indexOf('imageView2') > 0) {
        quality = quality || 90;
        url += '/q/' + quality;
    }
    return url;
};

/**
 * 跳转APP链接格式化
 * @param  {[string]} uri
 * @param  {[string]} action
 * @param  {[object]} params 跳转参数
 * @param  {[string]} source 表示当前的跳转路径用哪个App打开,默认yohobuy
 * @return {[string]}
 */
// export appUrlFormat = (uri, action, params, source) => {
//     let obj = {
//         action: action
//     };

//     source = source || 'yohobuy';
//     if (params) {
//         obj.params = params;
//     }

//     return `${uri}?openby:${source}=${JSON.stringify(obj)}`;
// };

/**
 * 站内地址格式化
 * @param  {[string]} uri 路径
 * @param  {[object]} qs 查询字符串
 * @param  {[string]} module 模块
 * @return {[string]}
 */
export function urlFormat(uri, qs, module, subDomain) {
    let url;

    module = module || 'default';
    if (subDomain[module]) {
        url = subDomain[module];
    } else {
        url = `//${module}${subDomain.host}`; // 规则没匹配到就把模块当作子域名
    }

    url += uri;
    if (qs) {
        url += `?${querystring.stringify(qs)}`;
    }

    return url;
};