Files
med-notes/.pnpm-store/v10/files/46/6475509e86e291f36c764c31635759a84a55426710ddfeeaccd5dd270e770a93bf871451b2839c88bfe0358b432dfbc8cd91ef8dca239a0eceb73817b62d29
2025-06-26 03:35:15 +00:00

27 lines
616 B
Plaintext

'use strict';
function mergeDescriptors(destination, source, overwrite = true) {
if (!destination) {
throw new TypeError('The `destination` argument is required.');
}
if (!source) {
throw new TypeError('The `source` argument is required.');
}
for (const name of Object.getOwnPropertyNames(source)) {
if (!overwrite && Object.hasOwn(destination, name)) {
// Skip descriptor
continue;
}
// Copy descriptor
const descriptor = Object.getOwnPropertyDescriptor(source, name);
Object.defineProperty(destination, name, descriptor);
}
return destination;
}
module.exports = mergeDescriptors;