new Loki(filename, optionsopt)
Loki: The main database class
Parameters:
Name | Type | Attributes | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
filename |
string | name of the file to be saved to |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
options |
object |
<optional> |
(Optional) config options object Properties
|
- Implements:
- Source:
Methods
addCollection(name, optionsopt) → {Collection}
Adds a collection to the database.
Parameters:
Name | Type | Attributes | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name |
string | name of collection to add |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
options |
object |
<optional> |
(optional) options to configure collection with. Properties
|
Returns:
a reference to the collection which was just added
- Type
- Collection
clearChanges()
(Changes API) : clears all the changes in all collections.
close(callbackopt)
Emits the close event. In autosave scenarios, if the database is dirty, this will save and disable timer. Does not actually destroy the db.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
function |
<optional> |
(Optional) if supplied will be registered with close event before emitting. |
configureOptions(options, initialConfig)
Allows reconfiguring database options
Parameters:
Name | Type | Description | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
object | configuration options to apply to loki db object Properties
|
||||||||||||||||||||||||||||||
initialConfig |
boolean | (internal) true is passed when loki ctor is invoking |
copy(options)
Copies 'this' database into a new Loki instance. Object references are shared to make lightweight.
Parameters:
Name | Type | Description | ||||||
---|---|---|---|---|---|---|---|---|
options |
object | apply or override collection level settings Properties
|
deleteDatabase(callbackopt)
Handles deleting a database from file system, local storage, or adapter (indexeddb) This method utilizes loki configuration options (if provided) to determine which persistence method to use, or environment detection (if configuration was not provided).
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
function |
<optional> |
(Optional) user supplied async callback / error handler |
deserializeCollection(destructuredSource, optionsopt) → {array}
Collection level utility function to deserializes a destructured collection.
Parameters:
Name | Type | Attributes | Description | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
destructuredSource |
string | array | destructured representation of collection to inflate |
||||||||||||||||
options |
object |
<optional> |
used to describe format of destructuredSource input Properties
|
Returns:
an array of documents to attach to collection.data.
- Type
- array
deserializeDestructured(destructuredSource, optionsopt) → {object|array}
Database level destructured JSON deserialization routine to minimize memory overhead. Internally, Loki supports destructuring via loki "serializationMethod' option and the optional LokiPartitioningAdapter class. It is also available if you wish to do your own structured persistence or data exchange.
Parameters:
Name | Type | Attributes | Description | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
destructuredSource |
string | array | destructured json or array to deserialize from |
||||||||||||||||||||||||||
options |
object |
<optional> |
source format options Properties
|
Returns:
An object representation of the deserialized database, not yet applied to 'this' db or document array
- Type
- object | array
generateChangesNotification(optionalopt) → {array}
(Changes API) : takes all the changes stored in each collection and creates a single array for the entire database. If an array of names of collections is passed then only the included collections will be tracked.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
optional |
array |
<optional> |
array of collection names. No arg means all collections are processed. |
Returns:
array of changes
- Type
- array
getCollection(collectionName) → {Collection}
Retrieves reference to a collection by name.
Parameters:
Name | Type | Description |
---|---|---|
collectionName |
string | name of collection to look up |
Returns:
Reference to collection in database by that name, or null if not found
- Type
- Collection
listCollections() → {Array.<object>}
Returns a list of collections in the database.
Returns:
array of objects containing 'name', 'type', and 'count' properties.
- Type
- Array.<object>
loadDatabase(options, callbackopt)
Handles manually loading from file system, local storage, or adapter (such as indexeddb) This method utilizes loki configuration options (if provided) to determine which persistence method to use, or environment detection (if configuration was not provided). To avoid contention with any throttledSaves, we will drain the save queue first.
If you are configured with autosave, you do not need to call this method yourself.
Parameters:
Name | Type | Attributes | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
object | if throttling saves and loads, this controls how we drain save queue before loading Properties
|
|||||||||||||
callback |
function |
<optional> |
(Optional) user supplied async callback / error handler |
Example
db.loadDatabase({}, function(err) {
if (err) {
console.log("error : " + err);
}
else {
console.log("database loaded.");
}
});
loadJSON(serializedDb, optionsopt)
Inflates a loki database from a serialized JSON string
Parameters:
Name | Type | Attributes | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
serializedDb |
string | a serialized loki database string |
|||||||
options |
object |
<optional> |
apply or override collection level settings Properties
|
loadJSONObject(dbObject, optionsopt)
Inflates a loki database from a JS object
Parameters:
Name | Type | Attributes | Description | ||||||
---|---|---|---|---|---|---|---|---|---|
dbObject |
object | a serialized loki database string |
|||||||
options |
object |
<optional> |
apply or override collection level settings Properties
|
removeCollection(collectionName)
Removes a collection from the database.
Parameters:
Name | Type | Description |
---|---|---|
collectionName |
string | name of collection to remove |
renameCollection(oldName, newName) → {Collection}
Renames an existing loki collection
Parameters:
Name | Type | Description |
---|---|---|
oldName |
string | name of collection to rename |
newName |
string | new name of collection |
Returns:
reference to the newly renamed collection
- Type
- Collection
saveDatabase(callbackopt)
Handles manually saving to file system, local storage, or adapter (such as indexeddb) This method utilizes loki configuration options (if provided) to determine which persistence method to use, or environment detection (if configuration was not provided).
If you are configured with autosave, you do not need to call this method yourself.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
function |
<optional> |
(Optional) user supplied async callback / error handler |
Example
db.saveDatabase(function(err) {
if (err) {
console.log("error : " + err);
}
else {
console.log("database saved.");
}
});
serialize() → {string}
Serialize database to a string which can be loaded via Loki#loadJSON
Returns:
Stringified representation of the loki database.
- Type
- string
serializeChanges() → {string}
(Changes API) - stringify changes for network transmission
Returns:
string representation of the changes
- Type
- string
serializeCollection(optionsopt) → {string|array}
Collection level utility method to serialize a collection in a 'destructured' format
Parameters:
Name | Type | Attributes | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
object |
<optional> |
used to determine output of method Properties
|
Returns:
A custom, restructured aggregation of independent serializations for a single collection.
- Type
- string | array
serializeDestructured(optionsopt) → {string|array}
Database level destructured JSON serialization routine to allow alternate serialization methods. Internally, Loki supports destructuring via loki "serializationMethod' option and the optional LokiPartitioningAdapter class. It is also available if you wish to do your own structured persistence or data exchange.
Parameters:
Name | Type | Attributes | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
object |
<optional> |
output format options for use externally to loki Properties
|
Returns:
A custom, restructured aggregation of independent serializations.
- Type
- string | array
throttledSaveDrain(callback, optionsopt)
Wait for throttledSaves to complete and invoke your callback when drained or duration is met.
Parameters:
Name | Type | Attributes | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
callback |
function | callback to fire when save queue is drained, it is passed a sucess parameter value |
|||||||||||||
options |
object |
<optional> |
configuration options Properties
|