Class: PropMap

util~ PropMap

A basic map-like object.

This object includes some utility functions that make it well suited to using as an API query object. For example, the module:util~PropMap#toUriEncoding method provides a way to serialize this object into URL query parameters.


new PropMap(props)

Constructor.

Parameters:
Name Type Description
props PropMap | object

the initial properties; if a PropMap instance is provided, the properties of that object will be copied into this one; otherwise the object will be used directly to hold property values

Members


props :object

The object that all properties are stored on.

Type:
  • object

Methods


prop(key [, newValue])

Get, set, or remove a property value.

Parameters:
Name Type Argument Description
key string

the key to get or set the value for

newValue * <optional>

if defined, the new value to set for the given key; if null then the key property will be removed

Returns:

if called as a getter, the associated value for the given key, otherwise this object

Type
*

properties( [newProps])

Get, set, or remove multiple properties.

Parameters:
Name Type Argument Description
newProps object <optional>

the new values to set; if any value is null that property will be deleted

Returns:

if called as a getter, all properties of this object copied into a simple object; otherwise this object

Type
object

toUriEncoding( [propertyName] [, callbackFn])

Get this object as a standard URI encoded (query parameters) string value.

All enumerable properties of the props property will be added to the result. If any property value is an array, the values of the array will be joined by a comma. Any module:util~Enum values will have their name property used. Any value that has a toUriEncoding() function property will have that function invoked, passing the associated property name as the first argument, and the returned value will be used.

Parameters:
Name Type Argument Description
propertyName string <optional>

an optional object property prefix to add to all properties

callbackFn function <optional>

An optional function that will be called for each property. The function will be passed property name and value arguments, and must return either null to skip the property, a 2-element array with the property name and value to use, or anything else to use the property as- is.

Returns:

the URI encoded string

Type
string

toUriEncodingWithSorting( [sorts] [, pagination] [, propertyName] [, callbackFn])

Get this object as a standard URI encoded (query parameters) string value with sorting and pagination parameters.

This calls module:util~PropMap#toUriEncoding first, then encodes the sorts and pagination parameters, if provided.

Parameters:
Name Type Argument Description
sorts Array.<module:domain~SortDescriptor> <optional>

optional sort settings to use

pagination module:domain~Pagination <optional>

optional pagination settings to use

propertyName string <optional>

an optional object property prefix to add to all properties

callbackFn function <optional>

An optional function that will be called for each property. The function will be passed property name and value arguments, and must return either null to skip the property, a 2-element array with the property name and value to use, or anything else to use the property as- is.

Returns:

the URI encoded string

Type
string