Martin Karkowski
d911380511
- Fixes: - helpers.jsonSchemaMethods: -> renamed flatten to nested. - Added: - helpers.descriptors: -> parseFunctionToJsonSchema - helpers.jsonSchemaMethods: -> added `flattenSchema` and `reduceSchema`. This Function will create a nested JSON-Schema.
52 lines
1.0 KiB
TypeScript
52 lines
1.0 KiB
TypeScript
/**
|
|
* @author Martin Karkowski
|
|
* @email m.karkowski@zema.de
|
|
* @desc [description]
|
|
*/
|
|
|
|
/**
|
|
* Helper Function which will determine the Difference between set01 and set02.
|
|
* If values are in set02 and not in set01 they will be putted into added. If
|
|
* items are in set01 but not in set02 they will be added to removed.
|
|
*
|
|
* @export
|
|
* @template T
|
|
* @param {Set<T>} set01 Base Set
|
|
* @param {Set<T>} set02 Set to compare it with
|
|
* @return {*}
|
|
*/
|
|
export function determineDifference<T>(
|
|
set01: Set<T>,
|
|
set02: Set<T>
|
|
): {
|
|
added: Set<T>;
|
|
removed: Set<T>;
|
|
} {
|
|
const added = new Set<T>();
|
|
const removed = new Set<T>();
|
|
|
|
// We iterate over the set01 and
|
|
// set02. If elements of set01 arent
|
|
// present in set02 => they have been
|
|
// removed
|
|
for (const item of set01) {
|
|
if (!set02.has(item)) {
|
|
removed.add(item);
|
|
}
|
|
}
|
|
|
|
// If elements of set02 arent
|
|
// present in set01 => they have been
|
|
// added
|
|
for (const item of set02) {
|
|
if (!set01.has(item)) {
|
|
added.add(item);
|
|
}
|
|
}
|
|
|
|
return {
|
|
added,
|
|
removed,
|
|
};
|
|
}
|