Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | 1x 1x 1x 1x 2x 1x 1x 1x 1x 1x | import Identicon from "identicon.js";
/**
* @export
* @param {string} name
* @param {Object} obj
* @returns {*}
*/
export function nameFactory<T>(name: string, obj: T): T {
const temp: any = {};
Object.keys(obj).forEach(objName => {
temp[objName] = `${name}/${objName}`;
});
return temp;
}
export function loadScript(
srcObj: { src: string; integrity: string },
resolve: any = () => {},
reject: any = () => {}
) {
const js = document.createElement("script");
js.src = srcObj.src;
js.crossOrigin = "anonymous";
js.integrity = srcObj.integrity;
js.onload = resolve;
js.onerror = () => {
reject(new Error("Failed to load script " + srcObj.src));
};
document.head.appendChild(js);
}
/** Load html script tag
* @export
* @param {Array<{src: string, integrity: string}>} srcAry
* @returns
*/
export function loadScripts(srcAry: { src: string; integrity: string }[]) {
// Browser supports Promises
const promises: Promise<any>[] = [];
srcAry.forEach(srcObj => {
promises.push(
new Promise((resolve, reject) => {
loadScript(srcObj, resolve, reject);
})
);
});
return Promise.all(promises);
}
export function range(start = 0, end = 0, step = 1) {
if (start === end || step === 0) {
return [];
}
const diff = Math.abs(end - start);
const length = Math.ceil(diff / step);
return start > end
? Array.from({ length }, (_, key) => start - key * step)
: Array.from({ length }, (_, key) => start + key * step);
}
/**
*
* @param {string | number} name
* @param {number} size
*/
export function generateImageHolder(name: string, size = 50) {
const identicon = new Identicon(name, size).toString();
return `data:image/png;base64,${identicon}`;
}
|