Nihilistic Party Mantra

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

    3.1.0 • Public • Published

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

    Uttori View Model Enrichment Plugin - Popular Documents

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

    Install

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

    Dependencies

    There must be a plugin registered with the hooks to listen for a popular-documents event and respond with an array containing the slugs of the popular documents.

    Config

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

    API Reference

    ViewModelPopularDocuments

    Uttori View Model Enrichment - Popular Documents

    Kind: global class

    ViewModelPopularDocuments.configKey ⇒ string

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

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

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

    ViewModelPopularDocuments.defaultConfig() ⇒ object

    The default configuration.

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

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

    ViewModelPopularDocuments.validateConfig(config, _context)

    Validates the provided configuration for required entries.

    Kind: static method of ViewModelPopularDocuments

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

    Example (ViewModelPopularDocuments.validateConfig(config, _context))

    ViewModelPopularDocuments.validateConfig({ ... });

    ViewModelPopularDocuments.register(context)

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

    Kind: static method of ViewModelPopularDocuments

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

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

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

    Queries the hooks for popular documents and searches the storage provider.

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

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

    Install

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

    DownloadsWeekly Downloads

    1

    Version

    3.1.0

    License

    MIT

    Unpacked Size

    20.6 kB

    Total Files

    7

    Last publish

    Collaborators

    • matthewcallis