mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
refactor(core): Use a Set for deletedProperties in AugmentObject (no-changelog) (#7131)
This commit is contained in:
committed by
GitHub
parent
7b49cf2a2c
commit
67aaad15eb
@@ -76,11 +76,11 @@ export function augmentObject<T extends object>(data: T): T {
|
|||||||
if (augmentedObjects.has(data)) return data;
|
if (augmentedObjects.has(data)) return data;
|
||||||
|
|
||||||
const newData = {} as IDataObject;
|
const newData = {} as IDataObject;
|
||||||
const deletedProperties: Array<string | symbol> = [];
|
const deletedProperties = new Set<string | symbol>();
|
||||||
|
|
||||||
const proxy = new Proxy(data, {
|
const proxy = new Proxy(data, {
|
||||||
get(target, key: string, receiver): unknown {
|
get(target, key: string, receiver): unknown {
|
||||||
if (deletedProperties.indexOf(key) !== -1) {
|
if (deletedProperties.has(key)) {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -107,7 +107,7 @@ export function augmentObject<T extends object>(data: T): T {
|
|||||||
delete newData[key];
|
delete newData[key];
|
||||||
}
|
}
|
||||||
if (key in target) {
|
if (key in target) {
|
||||||
deletedProperties.push(key);
|
deletedProperties.add(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -118,34 +118,33 @@ export function augmentObject<T extends object>(data: T): T {
|
|||||||
delete newData[key];
|
delete newData[key];
|
||||||
}
|
}
|
||||||
if (key in target) {
|
if (key in target) {
|
||||||
deletedProperties.push(key);
|
deletedProperties.add(key);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
newData[key] = newValue as IDataObject;
|
newData[key] = newValue as IDataObject;
|
||||||
|
|
||||||
const deleteIndex = deletedProperties.indexOf(key);
|
if (deletedProperties.has(key)) {
|
||||||
if (deleteIndex !== -1) {
|
deletedProperties.delete(key);
|
||||||
deletedProperties.splice(deleteIndex, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
has(target, key) {
|
has(target, key) {
|
||||||
if (deletedProperties.indexOf(key) !== -1) return false;
|
if (deletedProperties.has(key)) return false;
|
||||||
return Reflect.has(newData, key) || Reflect.has(target, key);
|
return Reflect.has(newData, key) || Reflect.has(target, key);
|
||||||
},
|
},
|
||||||
ownKeys(target) {
|
ownKeys(target) {
|
||||||
const originalKeys = Reflect.ownKeys(target);
|
const originalKeys = Reflect.ownKeys(target);
|
||||||
const newKeys = Object.keys(newData);
|
const newKeys = Object.keys(newData);
|
||||||
return [...new Set([...originalKeys, ...newKeys])].filter(
|
return [...new Set([...originalKeys, ...newKeys])].filter(
|
||||||
(key) => deletedProperties.indexOf(key) === -1,
|
(key) => !deletedProperties.has(key),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
getOwnPropertyDescriptor(target, key) {
|
getOwnPropertyDescriptor(target, key) {
|
||||||
if (deletedProperties.indexOf(key) !== -1) return undefined;
|
if (deletedProperties.has(key)) return undefined;
|
||||||
return Object.getOwnPropertyDescriptor(key in newData ? newData : data, key);
|
return Object.getOwnPropertyDescriptor(key in newData ? newData : data, key);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user