Skip to content

RFC: add deep-set-by #83

Open
Open
@kgryte

Description

@kgryte

Checklist

Please ensure the following tasks are completed before filing an issue.

  • Read and understood the Code of Conduct.
  • Searched for existing issues and pull requests.
  • If this is a general question, searched the FAQ for an existing answer.
  • If this is a feature request, the issue name begins with RFC: .

Description

Description of the issue (or feature request).

This RFC proposes to add @stdlib/utils/deep-set-by. Currently, when @stdlib/utils/deep-set is provided a function as a value, the deepSet implementation treats the value as a callback. This prevents being able to set a deeply nested value in a straightforward manner.

To overcome this limitation, this proposal suggests moving the callback implementation to a separate package (@stdlib/utils/deep-set-by) and changing @stdlib/utils/deep-set to drop support for a callback argument.

Related Issues

Does this issue (or feature request) have any related issues?

No.

Questions

Any questions for reviewers?

One question is whether the name deep-set-by is appropriate. The names matches the suffix for omit-by and pick-by; however, the implementation details differ for the proposed package compared to the existing convention. Notably, omit-by and pick-by deal with predicates. In this case, a provided function is a setter, rather than a predicate.

Other

Any other information relevant to this issue (or feature request)? This may include screenshots, references, stack traces, sample output, and/or implementation notes.

No.

Metadata

Metadata

Assignees

No one assigned

    Labels

    AcceptedRFC feature request which has been accepted.EnhancementIssue or pull request for enhancing existing functionality.UtilitiesIssue or pull request concerning general utilities.difficulty: 1Low degree of difficulty. Should be straightforward to implement and/or resolve.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions