bootstrap-vue
Version:
Quickly integrate Bootstrap 4 components with Vue.js
28 lines (24 loc) • 677 B
JavaScript
import { isArray } from "./array";
import { assign } from "./object";
import identity from "./identity";
/**
* @param {[]|{}} props
* @param {Function} transformFn
*/
export default function copyProps(props, transformFn = identity) {
if (isArray(props)) {
return props.map(transformFn);
}
// Props as an object.
const copied = {};
for (const prop in props) {
if (props.hasOwnProperty(prop)) {
if (typeof prop === "object") {
copied[transformFn(prop)] = assign({}, props[prop]);
} else {
copied[transformFn(prop)] = props[prop];
}
}
}
return copied;
}