dot-notation-tokenizer
v1.3.0
Published
Dot notation tokenizer
Downloads
2
Maintainers
Readme
dot-notation-tokenizer
Convert a dot notation string into a tokenized array.
Installation
yarn
yarn add dot-notation-tokenizer
npm
npm i dot-notation-tokenizer
Usage
JavaScript ES / TypeScript
import { tokenize } from 'dot-notation-tokenizer'
tokenize('dot.notation')
Browser
<script src="path/to/script/index.min.js"></script>
<script>
dotNotationTokenizer.tokenize('dot.notation')
</script>
NodeJS
const { tokenize } = require('dot-notation-tokenizer')
tokenize('dot.notation')
Explanation
Dot notation can consist of basic property keys seperated by a .
and also array indexes within [x]
like the following.
path.to.array[1]
The above notation would return the following token array.
[
{
"kind": "PROPERTY",
"value": "path",
"index": {
"start": 0,
"end": 4
},
"raw": "path"
},
{
"kind": "PROPERTY",
"value": "to",
"index": {
"start": 5,
"end": 7
},
"raw": "to"
},
{
"kind": "PROPERTY",
"value": "array",
"index": {
"start": 8,
"end": 13
},
"raw": "array"
},
{
"kind": "ARRAY_INDEX",
"value": 1,
"index": {
"start": 14,
"end": 16
},
"text": "[1]"
}
]
The notation used above would be used to access the second array value in the following object.
The value returned would be 2
.
{
"path": {
"to": {
"array": [
1,
2,
3
]
}
}
}
You can also chain array indexes for nested arrays like the following notation.
path.to.deep.array[1][0][4]
Escaping characters
If you need to include .
, [
or ]
in your array key you can simply escape it by putting a slash \
in front of the character.
escaped\\.property\\[0\\].withindex
The above notation would return the following tokens.
[
{
"kind": "PROPERTY",
"value": "escaped.property[0]",
"index": {
"start": 0,
"end": 22
},
"raw": "escaped\\.property\\[0\\]"
},
{
"kind": "PROPERTY",
"value": "withindex",
"index": {
"start": 23,
"end": 32
},
"raw": "withindex"
}
]