Skip to content

Commit

Permalink
fix: filter undefined static properties to support @oclif/core using …
Browse files Browse the repository at this point in the history
…ES2022 (#496)
  • Loading branch information
mdonnalley authored Sep 22, 2023
1 parent 00938b0 commit e7e4381
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion src/commands/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,10 @@ export default class Commands extends Command {
// Load all properties on all extending classes.
while (commandClass !== undefined) {
commandClass = Object.getPrototypeOf(commandClass) || undefined
Object.assign(obj, commandClass)
// ES2022 will return all unset static properties on the prototype as undefined. This is different from ES2021
// which only returns the static properties that are set by defaults. In order to prevent
// Object.assign from overwriting the properties on the object, we need to filter out the undefined values.
Object.assign(obj, _.pickBy(commandClass, v => v !== undefined))
}

// The plugin property on the loaded class contains a LOT of information including all the commands again. Remove it.
Expand Down

0 comments on commit e7e4381

Please sign in to comment.