forked from TwitRco/share-this
-
Notifications
You must be signed in to change notification settings - Fork 0
/
utils.js
32 lines (28 loc) · 874 Bytes
/
utils.js
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
export function camelize(string) {
return string.replace(/(?:^|-)([a-z])/g, (_, char) => char.toUpperCase());
}
// eslint-disable-next-line consistent-return
export function findByName(array, name) {
// I would have used
// for (const item of array) {
// but transpilers generate A LOT of code in this specific case.
for (let i = 0; i < array.length; i++) {
const item = array[i];
if (item.name === name) {
return item;
}
}
}
export function extend(dest, source) {
if (source && typeof source === "object") {
// eslint-disable-next-line guard-for-in
for (const prop in source) {
// eslint-disable-next-line no-param-reassign
dest[prop] = source[prop];
}
}
return dest;
}
export function isCallable(func) {
return typeof func === "function";
}