From eebf53e30b5e22724d0305aa98e9a293527babd8 Mon Sep 17 00:00:00 2001 From: Alex Turner Date: Thu, 4 Jun 2026 12:11:58 -0500 Subject: [PATCH 1/2] feat: FontUtils --- src/fontutils/README.md | 23 +++++++++++++ src/fontutils/default.project.json | 14 ++++++++ src/fontutils/package.json | 36 +++++++++++++++++++++ src/fontutils/src/Shared/FontUtils.lua | 20 ++++++++++++ src/fontutils/src/node_modules.project.json | 7 ++++ 5 files changed, 100 insertions(+) create mode 100644 src/fontutils/README.md create mode 100644 src/fontutils/default.project.json create mode 100644 src/fontutils/package.json create mode 100644 src/fontutils/src/Shared/FontUtils.lua create mode 100644 src/fontutils/src/node_modules.project.json diff --git a/src/fontutils/README.md b/src/fontutils/README.md new file mode 100644 index 00000000000..b7e10b446fd --- /dev/null +++ b/src/fontutils/README.md @@ -0,0 +1,23 @@ +## FontUtils + +
+ + Documentation status + + + Discord + + + Build and release status + +
+ +Utility functions for fonts + +
View docs →
+ +## Installation + +``` +npm install @quenty/fontutils --save +``` diff --git a/src/fontutils/default.project.json b/src/fontutils/default.project.json new file mode 100644 index 00000000000..a268214da29 --- /dev/null +++ b/src/fontutils/default.project.json @@ -0,0 +1,14 @@ +{ + "name": "fontutils", + "globIgnorePaths": [ + "**/.package-lock.json", + "**/.pnpm", + "**/.pnpm-workspace-state-v1.json", + "**/.modules.yaml", + "**/.ignored", + "**/.ignored_*" + ], + "tree": { + "$path": "src" + } +} diff --git a/src/fontutils/package.json b/src/fontutils/package.json new file mode 100644 index 00000000000..ecbd57a3a9d --- /dev/null +++ b/src/fontutils/package.json @@ -0,0 +1,36 @@ +{ + "name": "@quenty/fontutils", + "version": "1.0.0", + "description": "Utility functions for fonts", + "keywords": [ + "Roblox", + "Nevermore", + "Lua", + "fontutils" + ], + "bugs": { + "url": "https://github.com/Quenty/NevermoreEngine/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/Quenty/NevermoreEngine.git", + "directory": "src/fontutils/" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/quenty" + }, + "license": "MIT", + "scripts": { + "preinstall": "npx only-allow pnpm" + }, + "contributors": [ + "Quenty" + ], + "dependencies": { + "@quenty/loader": "workspace:*" + }, + "publishConfig": { + "access": "public" + } +} diff --git a/src/fontutils/src/Shared/FontUtils.lua b/src/fontutils/src/Shared/FontUtils.lua new file mode 100644 index 00000000000..2e36ec9dd42 --- /dev/null +++ b/src/fontutils/src/Shared/FontUtils.lua @@ -0,0 +1,20 @@ +--[=[ + @class FontUtils +]=] + +local FontUtils = {} + +local familyToEnum: { [string]: Enum.Font } = {} + +for _, fontEnum in Enum.Font:GetEnumItems() do + local success, fontFace = pcall(Font.fromEnum, fontEnum) + if success and fontFace then + familyToEnum[fontFace.Family] = fontEnum + end +end + +function FontUtils.fontFaceToEnum(fontFace: Font): Enum.Font + return familyToEnum[fontFace.Family] +end + +return FontUtils diff --git a/src/fontutils/src/node_modules.project.json b/src/fontutils/src/node_modules.project.json new file mode 100644 index 00000000000..46233dac4ff --- /dev/null +++ b/src/fontutils/src/node_modules.project.json @@ -0,0 +1,7 @@ +{ + "name": "node_modules", + "globIgnorePaths": [ "**/.package-lock.json" ], + "tree": { + "$path": { "optional": "../node_modules" } + } +} \ No newline at end of file From d80649b72d12734dd9d57edfab5245765da29f04 Mon Sep 17 00:00:00 2001 From: Alex Turner Date: Thu, 4 Jun 2026 12:14:02 -0500 Subject: [PATCH 2/2] chore: Update lock file --- pnpm-lock.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 497a4de58b7..d594660c73e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1952,6 +1952,12 @@ importers: specifier: workspace:* version: link:../valueobject + src/fontutils: + dependencies: + '@quenty/loader': + specifier: workspace:* + version: link:../loader + src/friendutils: dependencies: '@quenty/brio':