Track and rank objects by their frecency
npm install frecentMore information can be found here
items that you wish to be tracked. Ideally, this should be an array of Objects.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.
js
import Frecent from 'frecent'const frecent = new Frecent()
// initialize with custom decay time
// Options: hour, day, week, month
// default: day
const frecent = new Frecent({
decay: 'hour'
})
// Items to be tracked can be loaded from localStorage, a DB, etc
const itemsToTrack = [
{ url: 'https://example.com' },
{ url: 'https://example.org' }
]
// Alternatively, you can load previously parsed data
const 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.load(itemsToTrack)
// 'Visit' a item (will increase the weight of the item.
// Therefore increasing the likelihood of revisiting)
frecent.visit('url', 'https://example.com')
// Example: if object has nested properties
// use dot or bracket syntax to notate nested properties
frecent.visit('data.url', 'https://example.com')
// Retrieve items ranked by 'Frecency'
const ranked = frecent.get()
// [
// {
// 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