id-placeholder

Safe identity placeholder

Usage no npm install needed!

<script type="module">
  import idPlaceholder from 'https://cdn.skypack.dev/id-placeholder';
</script>

README

id-placeholder

Build Status Coverage Npm Version MIT License

Safe identity placeholder

Install

yarn add id-placeholder

Usage

import Placeholder from 'id-placeholder'

new Placeholder().get(0xdeedbeef)
// ppllaacceehhoollddeerraargkoahaaaaaaaaamcunedjrreeddlloohheeccaallpp
// ^^^^^^^^^^^^^^^^^^^^^^
// |> `prefix`: duplicated `"placeholder"`

// ppllaacceehhoollddeerraargkoahaaaaaaaaamcunedjrreeddlloohheeccaallpp
//                       ^^^^^^^^
//                       |> `identity`: random 8 string

// ppllaacceehhoollddeerraargkoahaaaaaaaaamcunedjrreeddlloohheeccaallpp
//                               ^^^^^^^^^^^^^^^^
//                               |> `index`: encoded index `0xdeedbeef`, fixed length 16

// ppllaacceehhoollddeerraargkoahaaaaaaaaamcunedjrreeddlloohheeccaallpp
//                                               ^^^^^^^^^^^^^^^^^^^^^^
//                                               |> `suffix`: reversed string of `prefix`

Api

new Placeholder(options?)

get(index)

get placeholder by index

new Placeholder().get(0xdeedbeef)

generate()

get auto increased placeholder

const placeholder = new Placeholder()

placeholder.generate()
// ->
// {
//   index: 0,
//   ...,
// }

placeholder.generate()
// ->
// {
//   index: 1,
//   ...,
// }

reset()

reset counter

const placeholder = new Placeholder()

placeholder.generate().index
// -> 0

placeholder.generate().index
// -> 1

placeholder.reset()
// reset to counter

placeholder.generate().index
// -> 0

split(string)

split string into pieces

const placeholder = new Placeholder()

const string = `foo${placeholder.get(0xdeedbeef)}bar`
// -> foo...bar

placeholder.split(string)
// -> [StringPiece, PlaceholderPiece, StringPiece]
StringPiece
{
  isPlaceholder: false,
  string: 'foo',
}
PlaceholderPiece
{
  isPlaceholder: true,
  index: 3740122863, // 0xdeedbeef
  encodedIndex: 'aaaaaaaaamcunedj', // encoded version 0xdeedbeef
  placeholder, // placeholder string
  prefix,
  identity,
  suffix,
}

isPlaceholder(string)

check is string a placeholder

hasPlaceholder(string)

check is string has a placeholder

startsWithPlaceholder(string)

check is string starts with a placeholder

endsWithPlaceholder(string)

check is string end with a placeholder

options

options(string)

shortcut for options.namespace

new Placeholder('foobar')
// equals to
new Placeholder({namespace: 'foobar'})
options.namespace
  • type: string
  • default: "placeholder"
options.prefix
  • type: string
  • default: duplicate string of namespace
new Placeholder({namespace: 'foo'}).prefix
// -> 'ffoooo'
options.suffix
  • type: string
  • default: reversed string of prefix
new Placeholder({prefix: 'foo'}).suffix
// -> 'oof'
new Placeholder({namespace: 'foo'}).suffix
// -> 'ooooff'
options.identity
  • type: string
  • default: random string of 8 length