sinch-rtc
Version:
RTC JavaScript/Web SDK
48 lines • 1.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.StringHelper = void 0;
const CryptoJS = require("crypto-js");
const ulid_1 = require("ulid");
/**
* Helper functions and generators concerning strings
*/
class StringHelper {
/**
* Creates random string of given length
* @param b - bytes number
*/
static random(b = 16) {
return CryptoJS.lib.WordArray.random(b).toString();
}
/**
* Returns HEX encoded string
* @param s - string to encode
*/
static hexEncode(s) {
let result = "";
let hex;
for (let i = 0; i < s.length; i++) {
hex = s.charCodeAt(i).toString(16);
result += `000${hex}`.slice(-4);
}
return result;
}
/**
* Generates random UUID
*/
static UUID() {
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
const r = (Math.random() * 16) | 0;
const v = c === "x" ? r : (r & 0x3) | 0x8;
return v.toString(16);
});
}
/**
* Generates random ULID
*/
static ULID(seedTime) {
return (0, ulid_1.ulid)(seedTime);
}
}
exports.StringHelper = StringHelper;
//# sourceMappingURL=String.helper.js.map