| 12345678910111213141516171819202122232425262728293031323334353637 |
- import {InvalidArgumentError} from '../errors/index.js';
- /**
- * Select object keys.
- *
- * @param obj
- * @param keys
- * @return {object}
- */
- export function selectObjectKeys(obj, keys) {
- if (!obj || typeof obj !== 'object')
- throw new InvalidArgumentError(
- 'A first argument of selectObjectKeys ' +
- 'should be an Object, but %v given.',
- obj,
- );
- if (!Array.isArray(keys))
- throw new InvalidArgumentError(
- 'A second argument of selectObjectKeys ' +
- 'should be an Array of String, but %v given.',
- keys,
- );
- keys.forEach(key => {
- if (typeof key !== 'string')
- throw new InvalidArgumentError(
- 'A second argument of selectObjectKeys ' +
- 'should be an Array of String, but %v given.',
- key,
- );
- });
- const result = {};
- const allKeys = Object.keys(obj);
- allKeys.forEach(key => {
- if (keys.includes(key)) result[key] = obj[key];
- });
- return result;
- }
|