react-bootstrap-typeahead
Version:
React typeahead with Bootstrap styling
37 lines (35 loc) • 966 B
JavaScript
var idCounter = 0;
export function head(arr) {
return Array.isArray(arr) && arr.length ? arr[0] : undefined;
}
export function isFunction(value) {
return typeof value === 'function';
}
export function isString(value) {
return typeof value === 'string';
}
export function noop() {}
export function pick(obj, keys) {
var result = {};
keys.forEach(function (k) {
if (Object.prototype.hasOwnProperty.call(obj, k)) {
result[k] = obj[k];
}
});
return result;
}
export function uniqueId(prefix) {
idCounter += 1;
return (prefix == null ? '' : String(prefix)) + idCounter;
} // Export for testing purposes.
export function valuesPolyfill(obj) {
return Object.keys(obj).reduce(function (accum, key) {
if (Object.prototype.propertyIsEnumerable.call(obj, key)) {
accum.push(obj[key]);
}
return accum;
}, []);
}
export function values(obj) {
return isFunction(Object.values) ? Object.values(obj) : valuesPolyfill(obj);
}