uttori-plugin-analytics-json-file
v1.1.1
Published
Analytics plugin for Uttori that uses JSON files.
Downloads
5
Maintainers
Readme
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
- .defaultConfig() ⇒ Object
- .validateConfig(config, _context)
- .register(context)
- .updateDocument(analytics) ⇒ Object
- .getCount(analytics) ⇒ Object
- .getPopularDocuments(analytics) ⇒ 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[AnalyticsPlugin.configKey | Object | A configuration object specifically for this plugin. | | config[AnalyticsPlugin.configKey].urls | Array.<Object> | A collection of Uttori documents. | | config[AnalyticsPlugin.configKey].url_filters | Array.<RegExp> | A collection of Regular Expression URL filters. | | config[AnalyticsPlugin.configKey].base_url | String | The base URL (ie https://domain.tld) for all documents. | | config[AnalyticsPlugin.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