Uttori Storage Provider - JSON Memory
Uttori Storage Provider using JavaScript objects in memory. This does NOT persist or restore data.
This repo exports both a Uttori Plugin compliant Plugin
class as well as the underlying StorageProvider
class.
Install
npm install --save uttori-storage-provider-json-memory
Config
// Registration Events events: add: 'storage-add' delete: 'storage-delete' get: 'storage-get' getHistory: 'storage-get-history' getRevision: 'storage-get-revision' query: 'storage-query' update: 'storage-update' validateConfig: 'validate-config'
Example
const StorageProvider = ;const s = ;s;const results = s;➜ results === tags: 'Example Tag'
API Reference
Classes
- StorageProvider
Storage for Uttori documents using JSON files stored on the local file system.
Typedefs
StorageProvider
Storage for Uttori documents using JSON files stored on the local file system.
Kind: global class
Properties
Name | Type | Description |
---|---|---|
documents | Array.<UttoriDocument> |
The collection of documents. |
history | Object |
The collection of document histories indexes. |
histories | Object |
The collection of document revisions by index. |
new StorageProvider()
Creates an instance of StorageProvider.
Example (Init StorageProvider)
const storageProvider = ;
Array.<UttoriDocument>
storageProvider.documents : this.documents All documents.
Kind: instance property of StorageProvider
Array
storageProvider.all() ⇒ Returns all documents.
Kind: instance method of StorageProvider
Returns: Array
- All documents.
Example
storageProviderall;➜ slug: 'first-document' ... ...
Array
storageProvider.getQuery(query) ⇒ Returns all documents matching a given query.
Kind: instance method of StorageProvider
Returns: Array
- The items matching the supplied query.
Param | Type | Description |
---|---|---|
query | String |
The conditions on which documents should be returned. |
UttoriDocument
storageProvider.get(slug) ⇒ Returns a document for a given slug.
Kind: instance method of StorageProvider
Returns: UttoriDocument
- The returned UttoriDocument.
Param | Type | Description |
---|---|---|
slug | String |
The slug of the document to be returned. |
Object
storageProvider.getHistory(slug) ⇒ Returns the history of edits for a given slug.
Kind: instance method of StorageProvider
Returns: Object
- The returned history object.
Param | Type | Description |
---|---|---|
slug | string |
The slug of the document to get history for. |
UttoriDocument
storageProvider.getRevision(params) ⇒ Returns a specifc revision from the history of edits for a given slug and revision timestamp.
Kind: instance method of StorageProvider
Returns: UttoriDocument
- The returned revision of the document.
Param | Type | Description |
---|---|---|
params | Object |
|
params.slug | String |
The slug of the document to be returned. |
params.revision | String | Number |
The unix timestamp of the history to be returned. |
storageProvider.add(document)
Saves a document to the file system.
Kind: instance method of StorageProvider
Param | Type | Description |
---|---|---|
document | UttoriDocument |
The document to be added to the collection. |
storageProvider.updateValid(params) ℗
Updates a document and saves to the file system.
Kind: instance method of StorageProvider
Access: private
Param | Type | Description |
---|---|---|
params | Object |
|
params.document | UttoriDocument |
The document to be updated in the collection. |
params.originalSlug | String |
The original slug identifying the document, or the slug if it has not changed. |
storageProvider.update(params)
Updates a document and figures out how to save to the file system. Calling with a new document will add that document.
Kind: instance method of StorageProvider
Param | Type | Description |
---|---|---|
params | Object |
|
params.document | UttoriDocument |
The document to be updated in the collection. |
params.originalSlug | String |
The original slug identifying the document, or the slug if it has not changed. |
storageProvider.delete(slug)
Removes a document from the file system.
Kind: instance method of StorageProvider
Param | Type | Description |
---|---|---|
slug | String |
The slug identifying the document. |
storageProvider.reset()
Resets to the initial state.
Kind: instance method of StorageProvider
storageProvider.updateHistory(params)
Updates History for a given slug, renaming the store file and history folder as needed.
Kind: instance method of StorageProvider
Param | Type | Description |
---|---|---|
params | Object |
|
params.slug | String |
The slug of the document to update history for. |
params.content | UttoriDocument |
The revision of the document to be saved. |
[params.originalSlug] | String |
The original slug identifying the document, or the slug if it has not changed. |
UttoriDocument
Kind: global typedef
Properties
Name | Type | Default | Description |
---|---|---|---|
slug | String |
The unique identifier for the document. | |
[title] | String |
'' |
The unique identifier for the document. |
[createDate] | Number | Date |
The creation date of the document. | |
[updateDate] | Number | Date |
The last date the document was updated. | |
[tags] | Array.<String> |
[] |
The unique identifier for the document. |
[customData] | Object |
{} |
Any extra meta data for the document. |
Tests
To run the test suite, first install the dependencies, then run npm test
:
npm installnpm testDEBUG=Uttori* npm test
Misc.
You can see the various speeds of the array shuffles used for RANDOM sorting on perf.link;