@trackunit/shared-utils 0.0.36-alpha-bc5b0fcd90.0 → 0.0.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.cjs.js CHANGED
@@ -573,6 +573,17 @@ const deleteUndefinedKeys = (obj) => {
573
573
  * @returns The object if not empty, otherwise undefined.
574
574
  */
575
575
  const objNotEmpty = (obj) => obj && Object.keys(obj).length > 0 ? obj : undefined;
576
+ /**
577
+ * Picks the given keys from an object, typesafe.
578
+ */
579
+ const pick = (obj, ...keys) => {
580
+ return keys.reduce((acc, key) => {
581
+ acc[key] = obj[key];
582
+ return acc;
583
+ },
584
+ // eslint-disable-next-line local-rules/no-typescript-assertion
585
+ {});
586
+ };
576
587
 
577
588
  /**
578
589
  * @param path the path to manipulate
@@ -1013,6 +1024,7 @@ exports.nonNullable = nonNullable;
1013
1024
  exports.numberCompare = numberCompare;
1014
1025
  exports.numberCompareUnknownAfterHighest = numberCompareUnknownAfterHighest;
1015
1026
  exports.objNotEmpty = objNotEmpty;
1027
+ exports.pick = pick;
1016
1028
  exports.removeLeftPadding = removeLeftPadding;
1017
1029
  exports.resizeBlob = resizeBlob;
1018
1030
  exports.resizeImage = resizeImage;
package/index.esm.js CHANGED
@@ -569,6 +569,17 @@ const deleteUndefinedKeys = (obj) => {
569
569
  * @returns The object if not empty, otherwise undefined.
570
570
  */
571
571
  const objNotEmpty = (obj) => obj && Object.keys(obj).length > 0 ? obj : undefined;
572
+ /**
573
+ * Picks the given keys from an object, typesafe.
574
+ */
575
+ const pick = (obj, ...keys) => {
576
+ return keys.reduce((acc, key) => {
577
+ acc[key] = obj[key];
578
+ return acc;
579
+ },
580
+ // eslint-disable-next-line local-rules/no-typescript-assertion
581
+ {});
582
+ };
572
583
 
573
584
  /**
574
585
  * @param path the path to manipulate
@@ -970,4 +981,4 @@ const titleCase = (s) => {
970
981
  */
971
982
  const removeLeftPadding = (id) => Number(id === null || id === void 0 ? void 0 : id.replace(/-/g, "").replace(/^0+/, ""));
972
983
 
973
- export { DateTimeFormat, HoursAndMinutesFormat, align, arrayLengthCompare, arrayNotEmpty, booleanCompare, capitalize, convertBlobToBase64, convertMetersToYards, convertYardsToMeters, dateCompare, deleteUndefinedKeys, difference, doNothing, ensureArray, enumFromValue, enumFromValueTypesafe, enumOrUndefinedFromValue, exhaustiveCheck, filterByMultiple, formatAddress, formatCoordinates, fuzzySearch, getDifferenceBetweenDates, getEndOfDay, getISOStringFromDate, getMultipleCoordinatesFromGeoJsonObject, getPointCoordinateFromGeoJsonObject, getResizedDimensions, getStartOfDay, groupBy, groupTinyDataToOthers, hourIntervals, intersection, isStringArrayEqual, isUUID, isValidImage, nonNullable, numberCompare, numberCompareUnknownAfterHighest, objNotEmpty, removeLeftPadding, resizeBlob, resizeImage, size, stringCompare, stringCompareFromKey, stringNaturalCompare, titleCase, toID, toIDs, toUUID, toggle, trimIds, trimPath, truthy, typeSafeToLowercase, unionArraysByKey };
984
+ export { DateTimeFormat, HoursAndMinutesFormat, align, arrayLengthCompare, arrayNotEmpty, booleanCompare, capitalize, convertBlobToBase64, convertMetersToYards, convertYardsToMeters, dateCompare, deleteUndefinedKeys, difference, doNothing, ensureArray, enumFromValue, enumFromValueTypesafe, enumOrUndefinedFromValue, exhaustiveCheck, filterByMultiple, formatAddress, formatCoordinates, fuzzySearch, getDifferenceBetweenDates, getEndOfDay, getISOStringFromDate, getMultipleCoordinatesFromGeoJsonObject, getPointCoordinateFromGeoJsonObject, getResizedDimensions, getStartOfDay, groupBy, groupTinyDataToOthers, hourIntervals, intersection, isStringArrayEqual, isUUID, isValidImage, nonNullable, numberCompare, numberCompareUnknownAfterHighest, objNotEmpty, pick, removeLeftPadding, resizeBlob, resizeImage, size, stringCompare, stringCompareFromKey, stringNaturalCompare, titleCase, toID, toIDs, toUUID, toggle, trimIds, trimPath, truthy, typeSafeToLowercase, unionArraysByKey };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trackunit/shared-utils",
3
- "version": "0.0.36-alpha-bc5b0fcd90.0",
3
+ "version": "0.0.36",
4
4
  "repository": "https://github.com/Trackunit/manager",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "engines": {
@@ -13,3 +13,7 @@ export declare const deleteUndefinedKeys: <T extends Record<string, unknown>>(ob
13
13
  * @returns The object if not empty, otherwise undefined.
14
14
  */
15
15
  export declare const objNotEmpty: <T extends object>(obj?: T | undefined) => T | undefined;
16
+ /**
17
+ * Picks the given keys from an object, typesafe.
18
+ */
19
+ export declare const pick: <T, K extends keyof T>(obj: T, ...keys: K[]) => Pick<T, K>;