poltak-daylio-parser
v0.1.0
Published
Parse Daylio CSV exports into reusable TypeScript data structures
Maintainers
Readme
poltak-daylio-parser
TypeScript utility library for parsing Daylio CSV exports into reusable structures.
Install
npm install poltak-daylio-parserBrowser + Node usage
Default entry is browser-safe (no node:* imports):
import { parseDaylioCsv, getActivityStats } from "poltak-daylio-parser";Node-only file parsing helper is exposed via subpath:
import { parseDaylioFile } from "poltak-daylio-parser/node";Example
import { parseDaylioCsv, getActivityStats } from "poltak-daylio-parser";
const dataset = parseDaylioCsv(csvText, {
activityMap: {
x1: "deep work",
soc: "socializing"
},
moodScoreMap: {
awful: 1,
meh: 3,
fantastic: 5
}
});
const stats = getActivityStats(dataset);API
parseDaylioCsv(input, options?)whereinputisstring | Uint8ArrayparseDaylioFile(path, options?)frompoltak-daylio-parser/nodegroupByDate(entries)getActivityStats(dataset)
ParseOptions
activityMap?: Record<string, string>moodScoreMap?: Record<string, number>normalizeActivityKey?: (activity: string) => stringnormalizeMoodKey?: (mood: string) => stringpreserveUnmappedActivities?: booleanonUnknownMood?: "null" | "error"dedupeActivitiesPerEntry?: booleantrimExtraWhitespace?: boolean
Notes
- Handles UTF-8 BOM in Daylio export files.
- Keeps both
activitiesRawand mappedactivitiesfor traceability. - Supports extra columns in Daylio CSV (for example
scales) as long as required columns are present. note_titleandnotecolumns are optional; missing columns are treated asnull.moodScoreisnullwhen nomoodScoreMapis provided (or for unknown moods whenonUnknownMoodis"null").
