36 lines
948 B
JavaScript
36 lines
948 B
JavaScript
|
const crypto = require('crypto');
|
||
|
|
||
|
exports.strtr = (str, replacements) => str.toString().replace(
|
||
|
/{([^}]+)}/g, (match, key) => replacements[key] || match
|
||
|
);
|
||
|
|
||
|
const trim = function(str, chars, flags) {
|
||
|
if(chars === undefined)
|
||
|
chars = " \n\r\t\v\0";
|
||
|
|
||
|
let start = 0,
|
||
|
end = str.length;
|
||
|
|
||
|
if(flags & 0x01)
|
||
|
while(start < end && chars.indexOf(str[start]) >= 0)
|
||
|
++start;
|
||
|
|
||
|
if(flags & 0x02)
|
||
|
while(end > start && chars.indexOf(str[end - 1]) >= 0)
|
||
|
--end;
|
||
|
|
||
|
return (start > 0 || end < str.length)
|
||
|
? str.substring(start, end)
|
||
|
: str;
|
||
|
};
|
||
|
|
||
|
exports.trimStart = (str, chars) => trim(str, chars, 0x01);
|
||
|
exports.trimEnd = (str, chars) => trim(str, chars, 0x02);
|
||
|
exports.trim = (str, chars) => trim(str, chars, 0x03);
|
||
|
|
||
|
exports.shortHash = function(text) {
|
||
|
const hash = crypto.createHash('sha256');
|
||
|
hash.update(text);
|
||
|
return hash.digest('hex').substring(0, 8);
|
||
|
};
|