UNPKG

@znode/sign

Version:
34 lines (33 loc) 956 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sign = void 0; const hmac_1 = require("@zodash/hmac"); const qs = require("@zcorky/query-string"); function sign(data, secret) { const query = omitUndefined(data.query); const queryText = stringify(query, qs.stringify); const body = omitUndefined(data.body); const bodyText = stringify(body, qs.stringify); const text = [queryText, bodyText].join(''); // hmac sha512 return hmac_1.hmacSHA256(text, secret); } exports.sign = sign; function omitUndefined(data) { if (!data) return {}; return Object.keys(data).reduce((all, key) => { if (typeof data[key] !== 'undefined') { all[key] = data[key]; } return all; }, {}); } function stringify(v, stringifyFn) { if (!v) return ''; if (typeof v === 'string') return v; return stringifyFn(v); } exports.default = sign;