Skip to content

Commit

Permalink
feat: update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
filiptammergard committed Feb 14, 2022
1 parent 590416d commit e5718a0
Show file tree
Hide file tree
Showing 5 changed files with 159 additions and 142 deletions.
19 changes: 18 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,14 @@ const words = countWords(text)
const sequences = countSequences(text, "dolor")
// sequences = 4

const caseInsensitiveSequences = countSequences(text, "lorem", { caseSensitivity: "insensitive" })
// caseSensitiveSequences = 1

const caseSensitiveSequences = countSequences(text, "lorem", { caseSensitivity: "sensitive" })
// caseSensitiveSequences = 0

Default case sensitivity is insensitive.

const readingTime = getReadingTime(text)
/*
readingTime = {
Expand All @@ -44,9 +52,18 @@ const readingTime = getReadingTime(text)
words: 69
}
*/

const customReadingSpeedReadingTime = getReadingTime(text, { wordsPerMinute: 100 })
/*
customReadingSpeedReadingTime = {
milliseconds: 41400
minutes: 0.69
words: 69
}
*/
```

Average reading speed is set to 200 words per minute.
Default reading speed is set to 200 words per minute.

## Licence

Expand Down
40 changes: 24 additions & 16 deletions index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ import {
getReadingTime,
} from "./index"

const TEXT =
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

describe("countCharacters", () => {
it("handles empty string", () => {
assert.equal(countCharacters(""), 0)
Expand Down Expand Up @@ -38,47 +41,52 @@ describe("countSequenceOccurances", () => {
assert.equal(countSequenceOccurances("", "text"), 0)
})
it("handles non-empty string", () => {
assert.equal(countSequenceOccurances("text text characters", "text"), 2)
assert.equal(countSequenceOccurances(TEXT, "dolor"), 4)
})
it("handles case insensitive counting", () => {
assert.equal(countSequenceOccurances("Text teXt", "teXt"), 2)
assert.equal(countSequenceOccurances(TEXT, "doLOR"), 4)
})
it("handles case sensitive counting", () => {
assert.equal(
countSequenceOccurances("Text teXt", "teXt", {
countSequenceOccurances(TEXT, "doLOR", {
caseSensitivity: "sensitive",
}),
1,
0,
)
})
})

describe("getReadingTime", () => {
const text =
"Lorem ipsum dolor sit, amet consectetur adipisicing elit. Sapiente ut nulla earum inventore possimus quas ab, omnis beatae architecto quisquam!"
it("handles empty string", () => {
assert.equal(getReadingTime("").words, 0)
assert.equal(getReadingTime("").minutes, 0)
assert.equal(getReadingTime("").milliseconds, 0)
})
it("handles non-empty string", () => {
assert.equal(getReadingTime(text).words, 20)
assert.equal(getReadingTime(text).minutes, 0.1)
assert.equal(getReadingTime(text).milliseconds, 6000)
assert.equal(getReadingTime(TEXT).words, 69)
assert.equal(getReadingTime(TEXT).minutes, 0.345)
assert.equal(getReadingTime(TEXT).milliseconds, 20700)
})
it("handles white space", () => {
const textWithWhiteSpace = ` \t ${text}\n `
assert.deepEqual(getReadingTime(text), getReadingTime(textWithWhiteSpace))
const textWithWhiteSpace = ` \t ${TEXT}\n `
assert.deepEqual(getReadingTime(TEXT), getReadingTime(textWithWhiteSpace))
})
it("handles custom reading speed", () => {
const WORDS_PER_MINUTE = 100
assert.notEqual(
getReadingTime(text),
getReadingTime(text, { wordsPerMinute: WORDS_PER_MINUTE }),
getReadingTime(TEXT),
getReadingTime(TEXT, { wordsPerMinute: 100 }),
)
assert.equal(
getReadingTime(TEXT, { wordsPerMinute: 1 }).words,
getReadingTime(TEXT, { wordsPerMinute: 2 }).words,
)
assert.equal(
getReadingTime(TEXT, { wordsPerMinute: 1 }).minutes,
2 * getReadingTime(TEXT, { wordsPerMinute: 2 }).minutes,
)
assert.equal(
getReadingTime(text, { wordsPerMinute: 1 }).milliseconds,
2 * getReadingTime(text, { wordsPerMinute: 2 }).milliseconds,
getReadingTime(TEXT, { wordsPerMinute: 1 }).milliseconds,
2 * getReadingTime(TEXT, { wordsPerMinute: 2 }).milliseconds,
)
})
})
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"@tammergard/eslint-config-base": "2.2.0",
"@tammergard/prettier-config": "1.4.0",
"@tammergard/semantic-release-config-npm": "1.0.0",
"@tammergard/tsconfig": "1.0.0",
"eslint": "8.9.0",
"eslint-config-airbnb-base": "15.0.0",
"eslint-config-prettier": "8.3.0",
Expand Down
6 changes: 2 additions & 4 deletions tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
{
"extends": "@tammergard/tsconfig/tsconfig.json",
"compilerOptions": {
"target": "es5",
"lib": ["es5"],
"module": "commonjs",
"outDir": "dist",
"declaration": true,
"strict": true
"declaration": true
},
"include": ["index.ts"]
}
Loading

0 comments on commit e5718a0

Please sign in to comment.