@krebitdao/reputation-passport
Version:
Krebit SDK for Verified Credentials
31 lines (30 loc) • 893 B
JavaScript
const encodeb64 = (uintarray) => {
const b64 = Buffer.from(uintarray).toString('base64');
return b64;
};
const blobToBase64 = async (blob) => {
const arrayBuffer = await blob.arrayBuffer();
const b64 = Buffer.from(arrayBuffer).toString('base64');
return b64;
};
const decodeb64 = (b64String) => {
return new Uint8Array(Buffer.from(b64String, 'base64'));
};
// utility to create an ordered array of the given input (of the form [[key:string, value:string], ...])
const objToSortedArray = (obj) => {
const keys = Object.keys(obj).sort();
return keys.reduce((out, key) => {
out.push([key, obj[key]]);
return out;
}, []);
};
const arrayToObject = (arr) => {
return arr.reduce((o, key) => ({ ...o, [key[0]]: key[1] }), {});
};
export const base64 = {
encodeb64,
blobToBase64,
decodeb64,
objToSortedArray,
arrayToObject
};