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