UNPKG

typedash

Version:

modern, type-safe collection of utility functions

65 lines (56 loc) 1.65 kB
'use strict'; // src/functions/isArray/isArray.ts var isArray = Array.isArray; // src/functions/castArrayIfDefined/castArrayIfDefined.ts function castArrayIfDefined(value) { if (value == null) { return value; } if (isArray(value)) { return value; } return [value]; } // src/functions/castArray/castArray.ts function castArray(value) { return castArrayIfDefined(value ?? []); } // src/functions/createTypeGuard/createTypeGuard.ts function createTypeGuard(values) { const setValues = new Set(values); return function predicate(v) { return setValues.has(v); }; } // src/functions/_internal/filterObject/createObjectPredicate.ts function createObjectPredicate(propertiesOrPredicate) { return typeof propertiesOrPredicate === "function" ? propertiesOrPredicate : createPropertiesPredicate(propertiesOrPredicate); } function createPropertiesPredicate(properties) { const isKnownProperty = createTypeGuard(castArray(properties)); return (_value, key) => isKnownProperty(key); } // src/functions/objectEntries/objectEntries.ts var objectEntries = Object.entries; // src/functions/_internal/filterObject/filterObject.ts function filterObject(object, predicate) { if (object == null) { return {}; } return Object.fromEntries( objectEntries(object).filter( ([key, value]) => predicate( value, key, object ) ) ); } // src/functions/pick/pick.ts function pick(object, propertiesOrPredicate) { return filterObject(object, createObjectPredicate(propertiesOrPredicate)); } exports.pick = pick; //# sourceMappingURL=out.js.map //# sourceMappingURL=index.cjs.map