@sparted/shared-library 1.0.20 → 1.0.22
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.js
CHANGED
|
@@ -21,6 +21,7 @@ var numberRange = require('./math/number-range.js');
|
|
|
21
21
|
var randomNumber = require('./math/random-number.js');
|
|
22
22
|
var median = require('./math/median.js');
|
|
23
23
|
var mergeDeep = require('./object/merge-deep.js');
|
|
24
|
+
var stripPropertiesFromObject = require('./object/strip-properties-from-object.js');
|
|
24
25
|
var parseBoolean = require('./parsing/parse-boolean.js');
|
|
25
26
|
var parseEnum = require('./parsing/parse-enum.js');
|
|
26
27
|
var parseNumber = require('./parsing/parse-number.js');
|
|
@@ -61,6 +62,7 @@ exports.isNumberInRange = numberRange.isNumberInRange;
|
|
|
61
62
|
exports.randomNumber = randomNumber.randomNumber;
|
|
62
63
|
exports.median = median.median;
|
|
63
64
|
exports.mergeDeep = mergeDeep.mergeDeep;
|
|
65
|
+
exports.stripPropertiesFromObject = stripPropertiesFromObject.stripPropertiesFromObject;
|
|
64
66
|
exports.parseBoolean = parseBoolean.parseBoolean;
|
|
65
67
|
exports.createEnumParser = parseEnum.createEnumParser;
|
|
66
68
|
exports.parseNumber = parseNumber.parseNumber;
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/object/index.d.ts
CHANGED
package/object/index.js
CHANGED
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var mergeDeep = require('./merge-deep.js');
|
|
6
|
+
var stripPropertiesFromObject = require('./strip-properties-from-object.js');
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
exports.mergeDeep = mergeDeep.mergeDeep;
|
|
11
|
+
exports.stripPropertiesFromObject = stripPropertiesFromObject.stripPropertiesFromObject;
|
|
10
12
|
//# sourceMappingURL=index.js.map
|
package/object/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var structuredClone = require('@ungap/structured-clone');
|
|
6
|
+
|
|
7
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
|
+
|
|
9
|
+
var structuredClone__default = /*#__PURE__*/_interopDefaultLegacy(structuredClone);
|
|
10
|
+
|
|
11
|
+
const stripPropertiesFromObject = (obj, properties) => {
|
|
12
|
+
const copy = structuredClone__default["default"](obj);
|
|
13
|
+
properties.forEach((nestedPropertyStr) => {
|
|
14
|
+
const nestedProperties = nestedPropertyStr.split('.');
|
|
15
|
+
const propertyToRemove = nestedProperties[nestedProperties.length - 1];
|
|
16
|
+
const nestedObject = nestedProperties.length === 1
|
|
17
|
+
? copy
|
|
18
|
+
: nestedProperties
|
|
19
|
+
.slice(0, nestedProperties.length - 1)
|
|
20
|
+
.reduce((acc, property) => acc[property], copy);
|
|
21
|
+
if (nestedObject) {
|
|
22
|
+
delete nestedObject[propertyToRemove];
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
return copy;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
exports.stripPropertiesFromObject = stripPropertiesFromObject;
|
|
29
|
+
//# sourceMappingURL=strip-properties-from-object.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strip-properties-from-object.js","sources":["../../src/object/strip-properties-from-object.ts"],"sourcesContent":["import structuredClone from '@ungap/structured-clone';\n\nexport const stripPropertiesFromObject = <Output extends Record<any, any>, Input extends Record<any, any>>(\n obj: Input,\n properties: string[],\n): Output => {\n const copy = structuredClone(obj);\n\n properties.forEach((nestedPropertyStr) => {\n const nestedProperties = nestedPropertyStr.split('.');\n const propertyToRemove = nestedProperties[nestedProperties.length - 1];\n\n const nestedObject = nestedProperties.length === 1\n ? copy\n : nestedProperties\n .slice(0, nestedProperties.length - 1)\n .reduce((acc, property) => acc[property], copy);\n\n if (nestedObject) {\n delete nestedObject[propertyToRemove];\n }\n });\n\n return copy;\n};\n"],"names":["structuredClone"],"mappings":";;;;;;;;;;MAEa,yBAAyB,GAAG,CACvC,GAAU,EACV,UAAoB,KACV;AACV,IAAA,MAAM,IAAI,GAAGA,mCAAe,CAAC,GAAG,CAAC,CAAC;AAElC,IAAA,UAAU,CAAC,OAAO,CAAC,CAAC,iBAAiB,KAAI;QACvC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAEvE,QAAA,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,KAAK,CAAC;AAChD,cAAE,IAAI;AACN,cAAE,gBAAgB;iBACf,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;AACrC,iBAAA,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,KAAK,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;AAEpD,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,OAAO,YAAY,CAAC,gBAAgB,CAAC,CAAC;AACvC,SAAA;AACH,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,IAAI,CAAC;AACd;;;;"}
|