Creates an object of the given type. The storage will generate an identifier for the newly created object.
The type to create.
The value to set for the created object.
A representation of the newly created object, including its new identifier.
Creates an index on a key of the given type, to allow for better queries involving those keys. Similar to IndexedStorage.defineType these calls need to happen first.
Informs the storage of the definition of a specific type. A definition is a key/value object with the values being a valid ValueTypeDescription. Generally, this call needs to happen for every type of this storage, and before any calls are made to interact with the data.
Deletes the given object. This will also delete all objects that reference that object if the corresponding key is not optional.
Returns an iterator over all objects of the given type.
The type to iterate over.
Finds all objects matching a specific IndexedQuery.
The type of objects to find.
The query to execute.
A list of objects matching the query.
Similar to IndexedStorage.find, but only returns the identifiers of the found objects.
The type of objects to find.
The query to execute.
A list of identifiers of the matching objects.
Returns the object of the given type with the given identifier.
The type of object to get.
The identifier of that object.
A representation of the object, or undefined
if there is no object of that type with that identifier.
Returns true
if the object of the given type with the given identifier exists.
Sets the value of a specific object. The identifier in the object is used to identify the object.
The type of the object to set.
The new value for the object.
Sets the value of one specific field in an object.
A storage solution that allows for more complex queries than a key/value storage and allows setting indexes on specific keys.