**What** At the moment, when importing something from medusa entry point, if two medusa packages are installed because of a plugin, the evaluation of the import can end up throwing that a workflow is already defined. To prevent that from happening, we can just not throw if it is already defined and just return prematurely and make it idempotent.
25 lines
502 B
TypeScript
25 lines
502 B
TypeScript
export function deepEqualObj(obj1: object, obj2: object): boolean {
|
|
if (typeof obj1 !== typeof obj2) {
|
|
return false
|
|
}
|
|
|
|
if (typeof obj1 !== "object" || obj1 === null) {
|
|
return obj1 === obj2
|
|
}
|
|
|
|
const obj1Keys = Object.keys(obj1)
|
|
const obj2Keys = Object.keys(obj2)
|
|
|
|
if (obj1Keys.length !== obj2Keys.length) {
|
|
return false
|
|
}
|
|
|
|
for (const key of obj1Keys) {
|
|
if (!obj2Keys.includes(key) || !deepEqualObj(obj1[key], obj2[key])) {
|
|
return false
|
|
}
|
|
}
|
|
|
|
return true
|
|
}
|