Skip to content

[Feature request] Pass parent values to customMerge() #263

@broofa

Description

@broofa

Problem: We'd like to require certain merge paths to always be defined.

For example: If attempting to merge objects a and b, and b.properties is defined, we'd like to throw if `a.properties is not defined.

Current solution:
Per this comment, this is accomplished with a customMerge function that looks something like this:

// merge options
customMerge(key) {
  if (key === 'properties') {
    return function (a, b) {
      if (!a) throw Error('properties is not defined');
    }
  }
}

This is awkward. It's just weird that the test for property name and value(s) is split across two different functions.

Proposed solution:
Extend the customMerge() method signature to take key, object_a, object_b. This would allow the code above to be simplified:

// merge options
customMerge(key, a, b) {
  if (key === 'properties' && !a) {
    throw Error('properties is not defined');
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions