From 493ef12a9a0d8ccb77e0c17944430e4677c4f4ee Mon Sep 17 00:00:00 2001 From: Amruth Pillai Date: Sat, 4 Jul 2026 20:55:22 +0200 Subject: [PATCH] =?UTF-8?q?refactor(utils=E2=86=92import):=20move=20single?= =?UTF-8?q?-consumer=20date/html/level=20helpers,=20inline=20field=20into?= =?UTF-8?q?=20fonts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Finding 4 — consumer-count verification: @reactive-resume/utils/date → 1 consumer (packages/import/src/json-resume.tsx) @reactive-resume/utils/html → 1 consumer (packages/import/src/json-resume.tsx) @reactive-resume/utils/level → 1 consumer (packages/import/src/json-resume.tsx) @reactive-resume/utils/url → 4 consumers (auth, api/ai, import, server) — SKIPPED, stays in utils @reactive-resume/utils/field → 1 consumer (packages/fonts/src/index.ts) Move date/html/level source + test files into packages/import and update json-resume.tsx imports. Inline the two-line unique() helper into fonts/src/index.ts and drop the ./field subpath. Drop the three moved subpaths from packages/utils exports. Claude-Session: https://claude.ai/code/session_012Bnvt1MghwHj4qQRxuQUGa --- packages/fonts/src/index.ts | 5 ++++- packages/{utils => import}/src/date.test.ts | 0 packages/{utils => import}/src/date.ts | 0 packages/{utils => import}/src/html.test.ts | 0 packages/{utils => import}/src/html.ts | 0 packages/import/src/json-resume.tsx | 6 +++--- packages/{utils => import}/src/level.test.ts | 0 packages/{utils => import}/src/level.ts | 0 packages/utils/package.json | 4 ---- packages/utils/src/field.ts | 3 --- 10 files changed, 7 insertions(+), 11 deletions(-) rename packages/{utils => import}/src/date.test.ts (100%) rename packages/{utils => import}/src/date.ts (100%) rename packages/{utils => import}/src/html.test.ts (100%) rename packages/{utils => import}/src/html.ts (100%) rename packages/{utils => import}/src/level.test.ts (100%) rename packages/{utils => import}/src/level.ts (100%) delete mode 100644 packages/utils/src/field.ts diff --git a/packages/fonts/src/index.ts b/packages/fonts/src/index.ts index 037a50adb..07b0c89a1 100644 --- a/packages/fonts/src/index.ts +++ b/packages/fonts/src/index.ts @@ -1,6 +1,9 @@ import type { Locale, Script } from "@reactive-resume/utils/locale"; -import { unique } from "@reactive-resume/utils/field"; import { getLocaleScript, isCjkScript } from "@reactive-resume/utils/locale"; + +// ponytail: inlined from @reactive-resume/utils/field (sole consumer) +const unique = (items: T[]): T[] => [...new Set(items)]; + import webFontListJSON from "./webfontlist.json"; type FontCategory = "display" | "handwriting" | "monospace" | "serif" | "sans-serif"; diff --git a/packages/utils/src/date.test.ts b/packages/import/src/date.test.ts similarity index 100% rename from packages/utils/src/date.test.ts rename to packages/import/src/date.test.ts diff --git a/packages/utils/src/date.ts b/packages/import/src/date.ts similarity index 100% rename from packages/utils/src/date.ts rename to packages/import/src/date.ts diff --git a/packages/utils/src/html.test.ts b/packages/import/src/html.test.ts similarity index 100% rename from packages/utils/src/html.test.ts rename to packages/import/src/html.test.ts diff --git a/packages/utils/src/html.ts b/packages/import/src/html.ts similarity index 100% rename from packages/utils/src/html.ts rename to packages/import/src/html.ts diff --git a/packages/import/src/json-resume.tsx b/packages/import/src/json-resume.tsx index 792b9b0f5..dd3b5f8f7 100644 --- a/packages/import/src/json-resume.tsx +++ b/packages/import/src/json-resume.tsx @@ -3,11 +3,11 @@ import { flattenError, ZodError, z } from "zod"; import { getNetworkIcon } from "@reactive-resume/resume/icons"; import { resumeDataSchema } from "@reactive-resume/schema/resume/data"; import { defaultResumeData } from "@reactive-resume/schema/resume/default"; -import { formatPeriod, formatSingleDate } from "@reactive-resume/utils/date"; -import { arrayToHtmlList, toHtmlDescription } from "@reactive-resume/utils/html"; -import { parseLevel } from "@reactive-resume/utils/level"; import { generateId } from "@reactive-resume/utils/string"; import { createUrl } from "@reactive-resume/utils/url"; +import { formatPeriod, formatSingleDate } from "./date"; +import { arrayToHtmlList, toHtmlDescription } from "./html"; +import { parseLevel } from "./level"; const createItemWebsite = (url?: string, label?: string) => ({ ...createUrl(url, label), diff --git a/packages/utils/src/level.test.ts b/packages/import/src/level.test.ts similarity index 100% rename from packages/utils/src/level.test.ts rename to packages/import/src/level.test.ts diff --git a/packages/utils/src/level.ts b/packages/import/src/level.ts similarity index 100% rename from packages/utils/src/level.ts rename to packages/import/src/level.ts diff --git a/packages/utils/package.json b/packages/utils/package.json index ad0c8fa7f..14e3f2b93 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -5,11 +5,7 @@ "private": true, "exports": { "./color": "./src/color.ts", - "./date": "./src/date.ts", - "./field": "./src/field.ts", "./file": "./src/file.ts", - "./html": "./src/html.ts", - "./level": "./src/level.ts", "./locale": "./src/locale.ts", "./monorepo.node": "./src/monorepo.node.ts", "./rate-limit": "./src/rate-limit.ts", diff --git a/packages/utils/src/field.ts b/packages/utils/src/field.ts deleted file mode 100644 index 690b00b1e..000000000 --- a/packages/utils/src/field.ts +++ /dev/null @@ -1,3 +0,0 @@ -export function unique(items: T[]) { - return [...new Set(items)]; -}