2.1.4 • Published 3 years ago

@uttori/plugin-vm-related-documents v2.1.4

Weekly downloads
1
License
MIT
Repository
github
Last release
3 years ago

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

Uttori View Model Enrichment Plugin - Related Documents

A plugin to expose & 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

Dependencies

There must be a plugin registered with the hooks to listen for a storage-query event and respond with an array containing documents matching the query.

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

ParamTypeDescription
configobjectA configuration object.
config.configKeyobjectA configuration object specifically for this plugin.
config.configKey.keystringThe that will be added to the passed in object and returned with the related documents.
config.configKey.limitstringThe maximum number of documents to be returned.
_contextobjectA 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

ParamTypeDescription
contextobjectA Uttori-like context.
context.configobjectA provided configuration to use.
context.config.eventsobjectAn object whose keys correspong to methods, and contents are events to listen for.
context.hooksobjectAn event system / hook system to use.
context.hooks.onfunctionAn event registration function.

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) ⇒ Promise.<object>

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

Kind: static method of ViewModelRelatedDocuments
Returns: Promise.<object> - The provided view-model document.

ParamTypeDescription
viewModelobjectA Uttori view-model object.
viewModel.documentobjectA Uttori document object.
viewModel.document.tagsArray.<string>An array of tags to compare against.
contextobjectA Uttori-like context.
context.configobjectA provided configuration to use.
context.config.keystringThe key to add the array of documents to on the view-model.
context.config.limitnumberThe maximum number of documents to return.
context.config.ignore_slugsArray.<string>A list of slugs to not consider when fetching related documents.
context.hooksobjectAn event system / hook system to use.
context.hooks.onfunctionAn event registration function.
context.hooks.fetchfunctionAn event dispatch function that returns an array of results.

Example (ViewModelRelatedDocuments.callback(viewModel, context))

const context = {
  config: {
    [ViewModelRelatedDocuments.configKey]: {
      ...,
    },
  },
  hooks: {
    on: (event) => { ... },
    fetch: (event, 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

2.1.4

3 years ago

2.1.3

3 years ago

2.1.2

4 years ago

2.1.1

4 years ago

2.1.0

4 years ago

2.0.0

4 years ago