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.
48 lines
977 B
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); }
|
|
|