nats-server icon indicating copy to clipboard operation
nats-server copied to clipboard

- Changes to make adding new mapping functions easier

Open jnmoyne opened this issue 2 years ago • 0 comments

  • Adds new subject mapping functions:
{{SplitFromLeft(wildcard index, position)}}
{{SplitFromRight(wildcard index, position)}}
{{SliceFromLeft(wildcard index, slice size)}}
{{SliceFromRight(wildcard index, slice size)}}
{{Split(wildcard index, deliminator)}}

Examples:

	shouldMatch("*", "{{splitfromleft(1,3)}}", "12345", "123.45")
	shouldMatch("*", "{{SplitFromRight(1,3)}}", "12345", "12.345")
	shouldMatch("*", "{{SliceFromLeft(1,3)}}", "1234567890", "123.456.789.0")
	shouldMatch("*", "{{SliceFromRight(1,3)}}", "1234567890", "1.234.567.890")
	shouldMatch("*", "{{split(1,-)}}", "-abc-def--ghi-", "abc.def.ghi")
	shouldMatch("*.*", "{{split(2,-)}}.{{splitfromleft(1,2)}}", "foo.-abc-def--ghij-", "abc.def.ghij.fo.o")
  • Subject mapping functions can now be all lower case or Pascal case (or a combination): e.g. splitfromleft, SplitFromLeft, splitFromleft, etc...

  • [ ] Documentation added (if applicable)

  • [X] Tests added

  • [X] Branch rebased on top of current main (git pull --rebase origin main)

  • [X] Changes squashed to a single commit (described here)

  • [X] Build is green in Travis CI

  • [X] You have certified that the contribution is your original work and that you license the work to the project under the Apache 2 license

/cc @nats-io/core

jnmoyne avatar Jul 29 '22 00:07 jnmoyne

Are we going to try to merge this before 2.9 is released?

derekcollison avatar Aug 17 '22 14:08 derekcollison

would love to see it merged.

ripienaar avatar Aug 17 '22 14:08 ripienaar