uttori-plugin-vm-related-documents

1.0.1 • Public • Published

view on npm npm module downloads Build Status Dependency Status Coverage Status

Uttori View Model Enrichment - Related Documents

A plugin to expose and add related documents with shared tags for a given document to a view-model or other object.

Install

npm install --save uttori-plugin-vm-related-documents

Config

{
  // Registration Events
  events: {
    callback: ['view-model-home'],
  },
 
  // Key to use in the view model
  key: 'relatedDocuments',
 
  // Number of documents to return.
  limit: 10,
 
  // A list of slugs to ignore
  ignore_slugs: [],
}

API Reference

ViewModelRelatedDocuments

Uttori View Model Enrichment - Related Documents

Kind: global class

ViewModelRelatedDocuments.configKey ⇒ String

The configuration key for plugin to look for in the provided configuration.

Kind: static property of ViewModelRelatedDocuments
Returns: String - The configuration key.
Example (ViewModelRelatedDocuments.configKey)

const config = { ...ViewModelRelatedDocuments.defaultConfig(), ...context.config[ViewModelRelatedDocuments.configKey] };

ViewModelRelatedDocuments.defaultConfig() ⇒ Object

The default configuration.

Kind: static method of ViewModelRelatedDocuments
Returns: Object - The configuration.
Example (ViewModelRelatedDocuments.defaultConfig())

const config = { ...ViewModelRelatedDocuments.defaultConfig(), ...context.config[ViewModelRelatedDocuments.configKey] };

ViewModelRelatedDocuments.validateConfig(config, _context)

Validates the provided configuration for required entries.

Kind: static method of ViewModelRelatedDocuments

Param Type Description
config Object A configuration object.
config[ViewModelRelatedDocuments.configKey Object A configuration object specifically for this plugin.
config[ViewModelRelatedDocuments.configKey].key String The that will be added to the passed in object and returned with the related documents.
config[ViewModelRelatedDocuments.configKey].limit String The maximum number of documents to be returned.
_context Object A Uttori-like context (unused).

Example (ViewModelRelatedDocuments.validateConfig(config, _context))

ViewModelRelatedDocuments.validateConfig({ ... });

ViewModelRelatedDocuments.register(context)

Register the plugin with a provided set of events on a provided Hook system.

Kind: static method of ViewModelRelatedDocuments

Param Type Description
context Object A Uttori-like context.
context.hooks Object An event system / hook system to use.
context.hooks.on function An event registration function.
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.

Example (ViewModelRelatedDocuments.register(context))

const context = {
  hooks: {
    on: (event, callback) => { ... },
  },
  config: {
    [ViewModelRelatedDocuments.configKey]: {
      ...,
      events: {
        callback: ['document-save', 'document-delete'],
        validateConfig: ['validate-config'],
      },
    },
  },
};
ViewModelRelatedDocuments.register(context);

ViewModelRelatedDocuments.callback(viewModel, context) ⇒ Object

Queries for related documents based on similar tags and searches the storage provider.

Kind: static method of ViewModelRelatedDocuments
Returns: Object - The provided view-model document.

Param Type Description
viewModel Object A Uttori view-model object.
viewModel.document Object A Uttori document object.
viewModel.document.tags Array.<String> An array of tags to compare against.
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 related documents.
context.storageProvider Object A provided Uttori StorageProvider instance.
context.storageProvider.getQuery function Access method for getting documents.
context.storageProvider Object A provided Uttori StorageProvider instance.

Example (ViewModelRelatedDocuments.callback(viewModel, context))

const context = {
  config: {
    [ViewModelRelatedDocuments.configKey]: {
      ...,
    },
  },
  storageProvider: {
    getQuery: (query) => { ... }
  },
};
ViewModelRelatedDocuments.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

Contributors

License

Readme

Keywords

Package Sidebar

Install

npm i uttori-plugin-vm-related-documents

Weekly Downloads

1

Version

1.0.1

License

MIT

Unpacked Size

19.7 kB

Total Files

5

Last publish

Collaborators

  • matthewcallis