inspect-property
Inspects a Property and returns useful informations about it (e.g. nested properties, function inspection, property descriptor, value, type, constructor)
Installation
npm install inspect-property
Usage
;
o: Object || Property || Value to be inspected.
propertyName:
When passing as inspectProperty(parentObject, 'childPropertyName')
, propertyDescriptor
will be returned. Note that childPropertyName
must be a string
.
delimiter
What will be used as a delimiter for the nested properties at properties
keys. Default is ','
e.g. 'a.b.c'
inspectFunction If functions should be inspected. See inspect-function for details about the function inspection.
inspectProperties
When set to false, properties
will be a simple {key: value}
object, without any inspection. The default value is true
, returning {key: inspectProperty(value)}
.
path
An array representing the current property path. e.g. from the above example it will be [ 'a', 'b', 'c' ]
for the 'c'
property
parent
The parent object of the current property. e.g. from the above example it will be the object { c: 'cValue' }
for the 'c'
property
enumerability:
When inspecting nested properties, defines how it should look up regarding enumerability
.
The options are:
'enumerable'
(default)'nonenumerable'
'all'
inherited: Determines if it should look up on the prototype chain when inspecting nested properties. The options are:
true
(default)false
Example
const inspectProperty = ; const data = a: b: z+k d: 3 f: g: 'h' ; const result = ; ////////////// RESULT //////////////// Below is a JSON.stringify(result), so functions references are ommitted "value": "a": "b": {} "d": 3 "f": "g": "h" "type": "object" "constructor": "name": "Object" "properties": "a": "value": "b": {} "d": 3 "f": "g": "h" "type": "object" "constructor": "name": "Object" "properties": "b": {} "d": 3 "f": "g": "h" "f.g": "h" "a.b": "value": {} "type": "object" "constructor": "name": "Object" "properties": {} "a.b.c": "type": "function" "constructor": "name": "Function" "functionInspection": "name": "c" "signature": "c(z = 'DefaultX', k);" "parameters": "parameter": "z" "defaultValue": "DefaultX" "declaration": "z = 'DefaultX'" "parameter": "k" "declaration": "k" "parametersNames": "z" "k" "properties": {} "a.d": "value": 3 "type": "number" "constructor": "name": "Number" "a.f": "value": "g": "h" "type": "object" "constructor": "name": "Object" "properties": "g": "h" "a.f.g": "value": "h" "type": "string" "constructor": "name": "String"