@uttori/plugin-analytics-json-file

Analytics plugin for Uttori that uses JSON files.

Usage no npm install needed!

<script type="module">
  import uttoriPluginAnalyticsJsonFile from 'https://cdn.skypack.dev/@uttori/plugin-analytics-json-file';
</script>

README

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

Uttori Analytics Provider - JSON File

Uttori analytics provider using JSON files on disk.

Install

npm install --save @uttori/plugin-analytics-json-file

Config

{
  // Registration Events
  events: {
    getCount: ['document-view-count'],
    getPopularDocuments: ['popular-documents'],
    updateDocument: ['document-save', 'document-delete'],
    validateConfig: ['validate-config'],
  },

  // Directory files will be uploaded to.
  directory: '',

  // Name of the JSON file.
  name: 'visits',

  // File extension to use for the JSON file.
  extension: 'json',
}

API Reference

AnalyticsPlugin

Page view analytics for Uttori documents using JSON files stored on the local file system.

Kind: global class
Properties

Name Type Description
config object The configuration object.

AnalyticsPlugin.configKey ⇒ string

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

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

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

AnalyticsPlugin.defaultConfig() ⇒ object

The default configuration.

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

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

AnalyticsPlugin.validateConfig(config, _context)

Validates the provided configuration for required entries.

Kind: static method of AnalyticsPlugin

Param Type Description
config object A configuration object.
config.configKey object A configuration object specifically for this plugin.
config.configKey.urls Array.<object> A collection of Uttori documents.
config.configKey.url_filters Array.<RegExp> A collection of Regular Expression URL filters.
config.configKey.base_url string The base URL (ie https://domain.tld) for all documents.
config.configKey.directory string The path to the location you want the sitemap file to be writtent to.
_context object A Uttori-like context (unused).

Example (AnalyticsPlugin.validateConfig(config, _context))

AnalyticsPlugin.validateConfig({ ... });

AnalyticsPlugin.register(context)

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

Kind: static method of AnalyticsPlugin

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

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

AnalyticsPlugin.updateDocument(analytics) ⇒ object

Wrapper function for calling update.

Kind: static method of AnalyticsPlugin
Returns: object - The provided document.

Param Type Description
analytics object An AnalyticsProvider instance.

Example (AnalyticsPlugin.updateDocument(analytics))

const context = {
  config: {
    [AnalyticsPlugin.configKey]: {
      ...,
    },
  },
};
AnalyticsPlugin.updateDocument(document, null);

AnalyticsPlugin.getCount(analytics) ⇒ object

Wrapper function for calling update.

Kind: static method of AnalyticsPlugin
Returns: object - The provided document.

Param Type Description
analytics object An AnalyticsProvider instance.

Example (AnalyticsPlugin.getCount(analytics, slug))

const context = {
  config: {
    [AnalyticsPlugin.configKey]: {
      ...,
    },
  },
};
AnalyticsPlugin.getCount(analytics, slug);

AnalyticsPlugin.getPopularDocuments(analytics) ⇒ object

Wrapper function for calling update.

Kind: static method of AnalyticsPlugin
Returns: object - The provided document.

Param Type Description
analytics object An AnalyticsProvider instance.

Example (AnalyticsPlugin.updateDocument(analytics))

const context = {
  config: {
    [AnalyticsPlugin.configKey]: {
      ...,
    },
  },
};
AnalyticsPlugin.getPopularDocuments(analytics);

Tests

To run the test suite, first install the dependencies, then run npm test:

npm install
npm test
DEBUG=Uttori* npm test

Contributors

License