diff --git a/koddsson.com/package-lock.json b/koddsson.com/package-lock.json index e7bcc4d..52cefe7 100644 --- a/koddsson.com/package-lock.json +++ b/koddsson.com/package-lock.json @@ -2932,6 +2932,11 @@ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, + "relative-date": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/relative-date/-/relative-date-1.1.3.tgz", + "integrity": "sha1-EgkDBAWI7HpKOZxlR/0B0OPS3GM=" + }, "remarkable": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.4.tgz", diff --git a/koddsson.com/package.json b/koddsson.com/package.json index 54a1507..08402ac 100644 --- a/koddsson.com/package.json +++ b/koddsson.com/package.json @@ -27,6 +27,7 @@ "html-entities": "^1.3.1", "morgan": "^1.10.0", "node-fetch": "^2.6.1", + "relative-date": "^1.1.3", "sqlite": "^4.0.14", "sqlite3": "^5.0.0" }, diff --git a/koddsson.com/src/data.ts b/koddsson.com/src/data.ts index 03b9546..1c9b01d 100644 --- a/koddsson.com/src/data.ts +++ b/koddsson.com/src/data.ts @@ -1,6 +1,7 @@ +import relativeDate from 'relative-date' + import type {Note, Photo} from './types' import {get} from './database.js' -import {relativeDate} from './utils/date.js' async function getPhoto(slug: string): Promise { return (await get('SELECT * FROM photos where slug = ?', slug))! diff --git a/koddsson.com/src/notes.ts b/koddsson.com/src/notes.ts index 02d34b9..5be1ae4 100644 --- a/koddsson.com/src/notes.ts +++ b/koddsson.com/src/notes.ts @@ -1,6 +1,7 @@ import fs from 'fs' import express from 'express' import bodyParser from 'body-parser' +import relativeDate from 'relative-date' import hbs from 'hbs' import markdown from 'helper-markdown' import HTMLEntities from 'html-entities' @@ -9,7 +10,6 @@ import {fileURLToPath} from 'url' import {dirname} from 'path' import * as db from './database.js' -import {relativeDate} from './utils/date.js' import type {Note} from './types' const __filename = fileURLToPath(import.meta.url) diff --git a/koddsson.com/src/types/relative-date/index.d.ts b/koddsson.com/src/types/relative-date/index.d.ts new file mode 100644 index 0000000..8663c12 --- /dev/null +++ b/koddsson.com/src/types/relative-date/index.d.ts @@ -0,0 +1,4 @@ +declare module 'relative-date' { + function relativeDate(arg: number): string + export = relativeDate +} diff --git a/koddsson.com/src/utils/date.ts b/koddsson.com/src/utils/date.ts deleted file mode 100644 index b76d853..0000000 --- a/koddsson.com/src/utils/date.ts +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Makes a relative date string from a date object. - * - * Source: https://github.com/github/time-elements/blob/4414cbacdb1e0cf95b7e99960897bb0c55736323/src/relative-time.ts#L57-L87 - */ - -export function relativeDate(ms: number): string { - const sec = Math.round(ms / 1000) - const min = Math.round(sec / 60) - const hr = Math.round(min / 60) - const day = Math.round(hr / 24) - const month = Math.round(day / 30) - const year = Math.round(month / 12) - - const formatter = new Intl.RelativeTimeFormat('en', {numeric: 'auto'}) - - if (ms < 0) { - return formatter.format(0, 'second') - } else if (sec < 10) { - return formatter.format(0, 'second') - } else if (sec < 45) { - return formatter.format(-sec, 'second') - } else if (sec < 90) { - return formatter.format(-min, 'minute') - } else if (min < 45) { - return formatter.format(-min, 'minute') - } else if (min < 90) { - return formatter.format(-hr, 'hour') - } else if (hr < 24) { - return formatter.format(-hr, 'hour') - } else if (hr < 36) { - return formatter.format(-day, 'day') - } else if (day < 30) { - return formatter.format(-day, 'day') - } else if (month < 18) { - return formatter.format(-month, 'month') - } else { - return formatter.format(-year, 'year') - } -}