UniqueId.js 758 Bytes
/**
 * UniqueId
 * Created by lintry on 2018/8/14.
 */

const crypto_utils = require('kml-crypto-utils');

/**
 * 唯一键值生成器
 */
class UniqueId {
    constructor (join_char) {
        this.join_char = join_char || '-';
    }

    /**
     * 根据参数合成唯一ID
     * @param args
     * @returns {string}
     */
    hash (...args) {
        if (!args || !args.length) {
            throw new Error('参数不能为空');
        }

        let keys = [];
        args.forEach(arg => {
            if (Array.isArray(arg)) {
                keys.concat(arg.sort());
            } else {
                keys.push(arg);
            }
        });

        return crypto_utils.MD5(args.join(this.join_char));
    }
}

module.exports = UniqueId;