Uttori analytics provider using JSON files on disk.
npm install --save @uttori/plugin-analytics-json-file
{
// 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',
}
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
- .configKey ⇒
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] };
The default configuration.
Kind: static method of AnalyticsPlugin
Returns: object
- The configuration.
Example (AnalyticsPlugin.defaultConfig())
const config = { ...AnalyticsPlugin.defaultConfig(), ...context.config[AnalyticsPlugin.configKey] };
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({ ... });
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);
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);
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);
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);
To run the test suite, first install the dependencies, then run npm test
:
npm install
npm test
DEBUG=Uttori* npm test