@splidejs/vue-splide
Version:
The Splide component for Vue.
29 lines (25 loc) • 749 B
text/typescript
/**
* Iterates over the provided object by own enumerable keys with calling the iteratee function.
*
* @param object - An object to iterate over.
* @param iteratee - An iteratee function that takes the value and key as arguments.
*
* @return A provided object itself.
*/
export function forOwn<T extends object>(
object: T,
iteratee: ( value: T[ keyof T ], key: keyof T ) => boolean | void
): T {
if ( object ) {
const keys = Object.keys( object ) as Array<keyof T>;
for ( let i = 0; i < keys.length; i++ ) {
const key = keys[ i ];
if ( key !== '__proto__' ) {
if ( iteratee( object[ key ], key ) === false ) {
break;
}
}
}
}
return object;
}