@uttori/plugin-vm-random-documents
v2.1.4
Published
A plugin to add random documents to a view-model or other object.
Downloads
11
Maintainers
Readme
Uttori View Model Enrichment Plugin - Random Documents
A plugin to expose and add randomly selected documents to a view-model or other object.
Install
npm install --save @uttori/plugin-vm-random-documents
Config
{
// Registration Events
events: {
callback: ['view-model-home'],
},
// Key to use in the view model
key: 'randomDocuments',
// Number of documents to return.
limit: 10,
// A list of slugs to ignore
ignore_slugs: [],
}
API Reference
ViewModelRandomDocuments
Uttori View Model Enrichment - Random Documents
Kind: global class
- ViewModelRandomDocuments
- .configKey ⇒ string
- .defaultConfig() ⇒ object
- .validateConfig(config, _context)
- .register(context)
- .callback(viewModel, context) ⇒ Promise.<object>
ViewModelRandomDocuments.configKey ⇒ string
The configuration key for plugin to look for in the provided configuration.
Kind: static property of ViewModelRandomDocuments Returns: string - The configuration key. Example (ViewModelRandomDocuments.configKey)
const config = { ...ViewModelRandomDocuments.defaultConfig(), ...context.config[ViewModelRandomDocuments.configKey] };
ViewModelRandomDocuments.defaultConfig() ⇒ object
The default configuration.
Kind: static method of ViewModelRandomDocuments Returns: object - The configuration. Example (ViewModelRandomDocuments.defaultConfig())
const config = { ...ViewModelRandomDocuments.defaultConfig(), ...context.config[ViewModelRandomDocuments.configKey] };
ViewModelRandomDocuments.validateConfig(config, _context)
Validates the provided configuration for required entries.
Kind: static method of ViewModelRandomDocuments
| Param | Type | Description | | --- | --- | --- | | config | object | A configuration object. | | config.configKey | object | A configuration object specifically for this plugin. | | config.configKey.key | string | The that will be added to the passed in object and returned with the random documents. | | config.configKey.limit | string | The maximum number of documents to be returned. | | _context | object | A Uttori-like context (unused). |
Example (ViewModelRandomDocuments.validateConfig(config, _context))
ViewModelRandomDocuments.validateConfig({ ... });
ViewModelRandomDocuments.register(context)
Register the plugin with a provided set of events on a provided Hook system.
Kind: static method of ViewModelRandomDocuments
| Param | Type | Description | | --- | --- | --- | | context | object | A Uttori-like context. | | context.config | object | A provided configuration to use. | | context.config.events | object | An object whose keys correspong to methods, and contents are events to listen for. | | context.hooks | object | An event system / hook system to use. | | context.hooks.on | function | An event registration function. |
Example (ViewModelRandomDocuments.register(context))
const context = {
config: {
[ViewModelRandomDocuments.configKey]: {
...,
events: {
callback: ['document-save', 'document-delete'],
validateConfig: ['validate-config'],
},
},
},
hooks: {
on: (event, callback) => { ... },
},
};
ViewModelRandomDocuments.register(context);
ViewModelRandomDocuments.callback(viewModel, context) ⇒ Promise.<object>
Queries for random documents and searches the storage provider.
Kind: static method of ViewModelRandomDocuments Returns: Promise.<object> - The provided view-model document.
| Param | Type | Description | | --- | --- | --- | | viewModel | object | A Uttori view-model object. | | context | object | A Uttori-like context. | | context.config | object | A provided configuration to use. | | context.config.key | string | The key to add the array of documents to on the view-model. | | context.config.limit | number | The maximum number of documents to return. | | context.config.ignore_slugs | Array.<string> | A list of slugs to not consider when fetching random documents. | | context.hooks | object | An event system / hook system to use. | | context.hooks.on | function | An event registration function. | | context.hooks.fetch | function | An event dispatch function that returns an array of results. |
Example (ViewModelRandomDocuments.callback(viewModel, context))
const context = {
config: {
[ViewModelRandomDocuments.configKey]: {
...,
},
},
hooks: {
on: (event) => { ... },
fetch: (event, query) => { ... },
},
};
ViewModelRandomDocuments.callback(viewModel, context);
Tests
To run the test suite, first install the dependencies, then run npm test
:
npm install
npm test
DEBUG=Uttori* npm test