Frecent
Manage the "frencency" of objects
What is frecency?
Frecency is a heuristic that combines frequency and recency into a single measure. It is useful for predicting the likelihood of users revisiting certain links, websites, etc.
More information can be found here
Features
- Simple API
- Lightweight
Methods
frecent.load(items)
Load an array of
items
that you wish to be tracked. Ideally, this should be an array of Objects.
frecent.visit(prop, attr, [cb])
Visit an item by passing the property path you wish to target (
prop
) and the value of that target property (attr
). Optional callback (cb
).
Example:
frecent.visit('data.name.first', 'John')
. The first argument tells frecent the path to the target path. The second argument should be the expected value to the path specified. See Usage for more details.
frecent.get()
Retrieve the ranked objects. See Usage to see the returned data structure.
Usage
const frecent = // initialize with custom decay time// Options: hour, day, week, month// default: dayconst frecent = decay: 'hour' // Items to be tracked can be loaded from localStorage, a DB, etcconst itemsToTrack = url: 'https://example.com' url: 'https://example.org' // Alternatively, you can load previously parsed dataconst itemsToTrack = body: url: 'https://example.com' _visits: 2 _lastVisited: Date|Timestamp _weight: 140 body: url: 'https://example.org' _visits: 1 _lastVisited: Date|Timestamp _weight: 90 frecent // 'Visit' a item (will increase the weight of the item.// Therefore increasing the likelihood of revisiting)frecent // Example: if object has nested properties// use dot or bracket syntax to notate nested propertiesfrecent // Retrieve items ranked by 'Frecency'const ranked = frecent// [// {// body: { url: 'https://example.com' },// _visits: 1, // _lastVisited: [Date], // _weight: 100, // }// ]
Releases
1.0.4: Specify a custom decay time
1.0.3: Use dot or bracket notation in visit
method via object-path-resolve
Contributing
You can request a new feature by submitting an issue. If you would like to implement a new feature feel free to issue a Pull Request.
License
Frecent is protected under the MIT License