source: main/trunk/model-interfaces-dev/atea/ocr/src/js/Util.js@ 35734

Last change on this file since 35734 was 35734, checked in by cstephen, 2 years ago

Add OCR interface

File size: 2.3 KB
Line 
1/**
2 * Logs to the console.
3 * @param {*} message The object to log.
4 * @param {undefined | 'debug' | 'warn' | 'error'} level The level to log at.
5 */
6export function log(message, level = undefined) {
7 if (process.env.NODE_ENV !== "production") {
8 if (level === "error") {
9 console.error(message);
10 }
11 else if (level === "warn") {
12 console.warn(message);
13 }
14 else if (level === "info") {
15 console.log(message);
16 }
17 else if (level === "debug") {
18 console.debug(message);
19 }
20 else {
21 console.debug(message);
22 }
23 }
24}
25
26export default class Util {
27 static lut = [];
28
29 /**
30 * When awaited, creates a delay for the given number of milliseconds.
31 * @param {Number} delayMilliseconds The number of milliseconds to delay for.
32 * @returns A promise that will resolve when the delay has finished.
33 */
34 static delay(delayMilliseconds) {
35 return new Promise(
36 resolve => {
37 setTimeout(
38 () => {
39 resolve(2);
40 },
41 delayMilliseconds
42 );
43 }
44 );
45 }
46
47 /**
48 * Fast UUID generator, RFC4122 version 4 compliant.
49 * @author Jeff Ward (jcward.com).
50 * @license MIT
51 * @link http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136
52 **/
53 static generateUuid() {
54 if (this.lut.length === 0) {
55 for (var i = 0; i < 256; i++) {
56 this.lut[i] = (i < 16 ? "0" : "") + (i).toString(16);
57 }
58 }
59
60 var d0 = Math.random() * 0xffffffff | 0;
61 var d1 = Math.random() * 0xffffffff | 0;
62 var d2 = Math.random() * 0xffffffff | 0;
63 var d3 = Math.random() * 0xffffffff | 0;
64
65 return this.lut[d0 & 0xff] + this.lut[d0 >> 8 & 0xff] + this.lut[d0 >> 16 & 0xff] + this.lut[d0 >> 24 & 0xff] + "-" +
66 this.lut[d1 & 0xff] + this.lut[d1 >> 8 & 0xff] + "-" + this.lut[d1 >> 16 & 0x0f | 0x40] + this.lut[d1 >> 24 & 0xff] + "-" +
67 this.lut[d2 & 0x3f | 0x80] + this.lut[d2 >> 8 & 0xff] + "-" + this.lut[d2 >> 16 & 0xff] + this.lut[d2 >> 24 & 0xff] +
68 this.lut[d3 & 0xff] + this.lut[d3 >> 8 & 0xff] + this.lut[d3 >> 16 & 0xff] + this.lut[d3 >> 24 & 0xff];
69 }
70}
Note: See TracBrowser for help on using the repository browser.