# Util.id Module

\
&#x20;Import

```
import { id } from 'util';
```

### Methods

[isIdFormat(id)](https://docs.medable.com/reference#section-isidformat-id-)\
[couldBeId(id)](https://docs.medable.com/reference#section-couldbeid-id-)\
[equalIds(...ids)](https://docs.medable.com/reference#section-equalids-ids-)\
[timestampToId(timestamp)](https://docs.medable.com/reference#section-timestamptoid-timestamp-)\
[idToTimestamp(id)](https://docs.medable.com/reference#section-idtotimestamp-id-)\
[getIdOrNull(id, fromObject)](https://docs.medable.com/reference#section-getidornull-id-fromobject-)\
[indexOfId(ids, id)](https://docs.medable.com/reference#section-indexofid-ids-id-)\
[inIdArray(ids, id)](https://docs.medable.com/reference#section-inidarray-ids-id-)\
[getIdArray(ids, convertToStrings, fnEach)](https://docs.medable.com/reference#section-getidarray-ids-converttostrings-fneach-)\
[uniqueIdArray(ids)](https://docs.medable.com/reference#section-uniqueidarray-ids-)\
[lookupId(obj, id)](https://docs.medable.com/reference#section-lookupid-obj-id-)\
[findIdPos(array, path, id)](https://docs.medable.com/reference#section-findidpos-array-path-id-)\
[findIdInArray(array, path, id, useGetter)](https://docs.medable.com/reference#section-findidinarray-array-path-id-)\
[diffIdArrays(array, ...rest)](https://docs.medable.com/reference#section-diffidarrays-array-rest-)\
[intersectIdArrays(...arrays)](https://docs.medable.com/reference#section-intersectidarrays-arrays-)\
[isId(id)](https://docs.medable.com/reference#section-isid-id-)

### isIdFormat(id)

Returns true if the passed in argument is a string and is in the form of an ObjectID (/^\[0-9a-fA-F]{24}$/)

**Arguments**

* `id` (String) the string to test

**Returns**

Boolean

### couldBeId(id)

Returns true if the passed in argument is an instance of ObjectID or a string in the form of an ObjectID (/^\[0-9a-fA-F]{24}$/).

**Arguments**

* `id` (String|ObjectID)

**Returns**

Boolean

### equalIds(...ids)

Returns true if all passed in identifiers are equal and valid as ObjectIDs

**Arguments**

* `...ids` (String\[]|ObjectID\[])

**Returns**

Boolean

### timestampToId(timestamp)

Converts a timestamp (in ms), parsable date string or date value to an ObjectID. Useful for comparing ObjectIDs (eg. `{_id: {$gt: ids.timestampToId(Date.now()-86400000)}}`)

**Arguments**

* `timestamp` (String|Number|Date)

**Returns**

ObjectID

### idToTimestamp(id)

Converts an ObjectID to a timestamp (in seconds)

**Arguments**

* `id` (ObjectID)

**Returns**

Number

### getIdOrNull(id, fromObject)

Guarantees return of an ObjectID if the id argument is an ObjectID, a valid string representation, or if the fromObject argument is true and the id argument is a javascript object with a valid `_id` property. Returns null otherwise.

**Arguments**

* `id` (ObjectID|String|Object)
* `fromObject` (Boolean) default false. if true, checks for a valid `_id` property of the id argument.

**Returns**

ObjectID

### indexOfId(ids, id)

Returns the index of the id argument in the ids array, or -1 if ids is not an array or id is not present.

**Arguments**

* `ids` (ObjectID\[])
* `id` (ObjectID|String)

**Returns**

Number

### inIdArray(ids, id)

Returns true if the id argument value is contained in the ids array.

**Arguments**

* `ids` (ObjectID\[])
* `id` (ObjectID|String)

**Returns**

Boolean

### getIdArray(ids, convertToStrings, fnEach)

Converts the ids argument into an array of ObjectIDs or String representations thereof. Any values that do not qualify are removed from the array. Note the ids argument may be modified inside the function.

**Arguments**

* `ids` (ObjectID\[])
* `convertToStrings` (Boolean) If true, converts each valid ObjectID to string.
* `fnEach` (Function) If present, calls the function for each raw value in the input array ()`(id) => { ...; return id; }` ), which should return a value that is then passed into getIdOrNull(id)

**Returns**

ObjectID\[]

### uniqueIdArray(ids)

Returns an array of ObjectIDs with all duplicates removed.

**Arguments**

* `ids` (ObjectID\[])

**Returns**

ObjectID\[]

### findIdPos(objects, path, id)

Given an array of objects, uses `path` to inspect object properties for the first matching `id` and returns its index in the array, or -1.

**Arguments**

* `objects` (Object\[])
* `path` (String) A dot syntax path to inspect (Uses util.paths.to internally)
* `id` (ObjectID|String) The identifier to match.

**Returns**

Number

### findIdInArray(objects, path, id)

Given an array of objects, uses `path` to inspect object properties for the first matching `id` and returns the matching object.

**Arguments**

* `objects` (Object\[])
* `path` (String) A dot syntax path to inspect (Uses util.paths.to internally)
* `id` (ObjectID|String) The identifier to match.

**Returns**

Object

### diffIdArrays(array, ...rest)

Returns the values from `array` that are not present in the other arrays.

**Arguments**

* `objects` (ObjectID\[])
* `...rest` (ObjectID\[])

**Returns**

ObjectID\[]

### intersectIdArrays(...arrays)

Computes the list of values that are the intersection of all the arrays. Each value in the result is present in each of the arrays.

**Arguments**

* `...arrays` (ObjectID\[])

**Returns**

ObjectID\[]

### isId(id)

Returns true if `id` is an instance of ObjectID

**Arguments**

* `id` (ObjectID)

**Returns**

Boolean
