feat(pkg): support empty bracket and negative indexes syntax - #3536
feat(pkg): support empty bracket and negative indexes syntax#3536ruyadorno wants to merge 2 commits into
Conversation
Adds ability to using empty bracket syntax as a shortcut to appending items to the end of an array when using `npm pkg set`, e.g: npm pkg set keywords[]=foo Relates to: npm/rfcs#402
| const parseKeys = (key) => { | ||
| const sqBracketItems = new Set() | ||
| const parseSqBrackets = (str) => { | ||
| str = str.replace('[]', '[-0]') |
There was a problem hiding this comment.
what if i have an object with a literal key of "-0"?
There was a problem hiding this comment.
hmm that's a good point, it's not only -0 but any negative index really (which are also being added support to here) - now I'm not so sure about it given that we didn't explore that idea much further during the RFC process
There was a problem hiding this comment.
It seems just like using a string placeholder won’t work, because any string could be an object key - ie, it’s an implementation question, not a semantics question.
There was a problem hiding this comment.
For an array, negative indexes could indeed be supported - but you’d have to traverse down to know that’s what it was.
|
thank you so much for the awesome help as usual @ljharb ❤️ I'm going to close this PR in order to leave this as a ref on how we could potentially handle negative indexes in the future if that discussion ever comes back again. Otherwise I'm heading in a diff direction over #3539 which is using a special symbol to identify the empty brackets syntax instead of modifying the original string which I believe is a much more solid approach. |
Adds ability to using empty bracket syntax as a shortcut to appending
items to the end of an array when using
npm pkg set, e.g:References
Relates to: npm/rfcs#402
cc @darcyclarke @ljharb