3.0.0 • Published 5 months ago

@jeroenpeeters/read-per-minute v3.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

@jeroenpeeters/read-per-minute

Class to parse a long text and return an estimated reading time based on a lang rate.

npm GitHub Workflow Status Codecov

Installation

yarn add @jeroenpeeters/read-per-minute

Usage

Import ReadPerMinute:

import { ReadPerMinute } from '@jeroenpeeters/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:

PropertyDescription
timeThe estimated reading time in minutes
wordsThe number of words in the text
rateThe rate value used to calculate the reading time

Default Rates

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

LangRate
default200
ar181
zh260
nl228
en236
fi195
fr214
de260
he224
it285
ko226
es278
sv218

If the lang is not listed or is undefined, the default value will be used instead.

Custom Rates

Override all the values

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).

Override the value for a one-time parsing

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.