@uttori/plugin-vm-recent-documents
TypeScript icon, indicating that this package has built-in type declarations

2.1.3 • Public • Published

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

Uttori View Model Enrichment Plugin - Recent Documents

A plugin to expose and add recently edited documents to a view-model or other object.

Install

npm install --save @uttori/plugin-vm-recent-documents

Config

{
  // Registration Events
  events: {
    callback: ['view-model-home'],
  },

  // Key to use in the view model
  key: 'recentDocuments',

  // Number of documents to return.
  limit: 10,

  // A list of slugs to ignore
  ignore_slugs: [],
}

API Reference

ViewModelRecentDocuments

Uttori View Model Enrichment - Recent Documents

Kind: global class

ViewModelRecentDocuments.configKey ⇒ string

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

Kind: static property of ViewModelRecentDocuments
Returns: string - The configuration key.
Example (ViewModelRecentDocuments.configKey)

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

ViewModelRecentDocuments.defaultConfig() ⇒ object

The default configuration.

Kind: static method of ViewModelRecentDocuments
Returns: object - The configuration.
Example (ViewModelRecentDocuments.defaultConfig())

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

ViewModelRecentDocuments.validateConfig(config, _context)

Validates the provided configuration for required entries.

Kind: static method of ViewModelRecentDocuments

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 recent documents.
config.configKey.limit string The maximum number of documents to be returned.
_context object A Uttori-like context (unused).

Example (ViewModelRecentDocuments.validateConfig(config, _context))

ViewModelRecentDocuments.validateConfig({ ... });

ViewModelRecentDocuments.register(context)

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

Kind: static method of ViewModelRecentDocuments

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 (ViewModelRecentDocuments.register(context))

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

ViewModelRecentDocuments.callback(viewModel, context) ⇒ Promise.<object>

Queries for recent documents and searches the storage provider.

Kind: static method of ViewModelRecentDocuments
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 recent 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 (ViewModelRecentDocuments.callback(viewModel, context))

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

Package Sidebar

Install

npm i @uttori/plugin-vm-recent-documents

Weekly Downloads

5

Version

2.1.3

License

MIT

Unpacked Size

19.6 kB

Total Files

7

Last publish

Collaborators

  • matthewcallis