mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2026-01-18 23:52:52 +00:00
feat: add function to remove undefined properties
This commit is contained in:
@@ -155,6 +155,38 @@ export class ConnectorClient extends Client {
|
||||
return thingWithoutReferences as SCAssociatedThingWithoutReferences<THING>;
|
||||
}
|
||||
|
||||
/**
|
||||
* Recursively deletes all undefined properties from an object instance
|
||||
*
|
||||
* @param obj Object to delete undefined properties from
|
||||
*/
|
||||
static removeUndefinedProperties(obj: object): void {
|
||||
// return atomic data types and arrays (recursion anchor)
|
||||
if (typeof obj !== 'object' || Array.isArray(obj)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// check each key
|
||||
for (const key in obj) {
|
||||
/* istanbul ignore if */
|
||||
if (!obj.hasOwnProperty(key)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const indexedObj = obj as { [k: string]: unknown; };
|
||||
|
||||
if (typeof indexedObj[key] === 'undefined') {
|
||||
// delete undefined keyss
|
||||
delete indexedObj[key];
|
||||
} else {
|
||||
// check recursive
|
||||
ConnectorClient.removeUndefinedProperties(indexedObj[key] as object);
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Request a bulk transfer to the backend
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user