Binato/server/Util.ts

40 lines
1 KiB
TypeScript
Raw Normal View History

2022-11-16 15:25:46 +00:00
// Taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
function escapeRegExp(string:string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}
export function replaceAll(inputString:string, toReplace:string, toReplaceWith:string) {
return inputString.replace(`/:${escapeRegExp(toReplace)}:/g`, toReplaceWith);
2022-11-17 00:29:07 +00:00
}
import { randomBytes } from "crypto";
export function generateSession() : Promise<string> {
return new Promise<string>((resolve, reject) => {
randomBytes(12, (err, buf) => {
if (err) {
return reject(err);
}
resolve(buf.toString("hex"));
});
});
}
export function generateSessionSync() : string {
return randomBytes(12).toString("hex");
2022-11-19 15:06:03 +00:00
}
export function hexlify(data:Buffer) : string {
let out:string = "";
for (let i = 0; i < data.length; i++) {
const hex = data[i].toString(16);
if (hex.length === 1) {
out += `0${hex.toUpperCase()},`;
} else {
out += `${hex.toUpperCase()},`;
}
}
return out.slice(0, out.length - 1);
2022-11-16 15:25:46 +00:00
}