a small relational database with user-editable schema for manual data entry
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
yopa/yopa-web/resources/src/utils.js

48 lines
977 B

import lodash_isEmpty from "lodash-es/isEmpty";
export function uniqueId() {
return 'f'
+ Math.random().toString(16).replace('.', '')
+ (+new Date()).toString(16);
}
export function keyBy(array, keyfunc) {
let result = {};
for(let item of array) {
if (typeof keyfunc == 'string') {
result[item[keyfunc]] = item;
} else {
result[keyfunc(item)] = item;
}
}
return result;
}
export function objCopy(object) {
return JSON.parse(JSON.stringify(object));
}
export function castId(id) {
//return id.toString();
return +id;
}
// like _.isEmpty, but less stupid
export function isEmpty(object) {
if (typeof object == 'number') {
return false;
}
if (object === true) {
return false;
}
if (typeof object == 'string') {
return object.length === 0;
}
return lodash_isEmpty(object)
}
export function qs(s) { return document.querySelector(s); }
export function qss(s) { return document.querySelectorAll(s); }