Class to parse a long text and return an estimated reading time based on a lang rate.
yarn add @untemps/read-per-minute
Import ReadPerMinute
:
import { ReadPerMinute } from '@untemps/read-per-minute'
Create an instance of ReadPerMinute
:
const rpm = new ReadPerMinute()
Call the parse
method with a string and a lang (see Override the value for a one-time parsing for an alternative usage):
rpm.parse('Long text', 'en')
The parse
function returns an object with the following properties:
Property | Description |
---|---|
time | The estimated reading time in minutes |
words | The number of words in the text |
rate | The rate value used to calculate the reading time |
Default rate values come from "How many words do we read per minute? A review and meta-analysis of reading rate" by Marc Brysbaert - Department of Experimental Psychology Ghent University
Lang | Rate |
---|---|
default | 200 |
ar | 181 |
zh | 260 |
nl | 228 |
en | 236 |
fi | 195 |
fr | 214 |
de | 260 |
he | 224 |
it | 285 |
ko | 226 |
es | 278 |
sv | 218 |
If the lang is not listed or is undefined, the default value will be used instead.
You can specify an entire custom rates object in the constructor of an instance:
const customRates = {
default: 220,
ar: 191,
zh: 255,
nl: 234,
en: 244,
}
const rpm = new ReadPerMinute(customRates)
NOTE: Set a default
property in the object if you want the parsing to fallback to a specific value.
Otherwise, the static value will be used (ReadPerMinute.rates.default
).
Simply pass the desired custom reading rate in words per minute instead of a language code:
// For very fast readers: 425 words per minute.
rpm.parse('Long text', 425)
NOTE: The custom reading rate must be greater than zero or the default value will be used.