Upgrading expo-font from 57.x to 58.x
Comparison of the public API of expo-font 57.0.4 and 58.0.8, computed automatically from their TypeScript types. A changed signature is a candidate for a breaking change, not a certainty.
Summary
| Removed import paths | 0 |
|---|---|
| Removed exports | 0 |
| Changed signatures | 4 |
| Removed class or interface members | 0 |
| Changed class or interface members | 0 |
| Newly deprecated | 0 |
| Requirement changes (engines, peer dependencies) | 0 |
| New exports | 3 |
Removed exports
None detected.
Changed signatures
| export | Before | After |
|---|---|---|
expo-font · useFonts | (map: string | Record<string, any>): [boolean, Error | null] | (map: FontMap): [boolean, Error | null] |
expo-font · loadAsync | (fontFamilyOrFontMap: string | Record<string, any>, source?: any): Promise<void> | (fontFamilyOrFontMap: FontMap, source?: any): Promise<void> |
expo-font · FontResource | { uri?: string | number | undefined; display?: FontDisplay | undefined; default?: string | undefined; testString?: string | undefined; } | { uri?: string | number | undefined; display?: FontDisplay | undefined; default?: string | undefined; weight?: string | number | undefined; style?: "normal" | "italic" | "oblique" | undefined; } |
expo-font · UnloadFontOptions | { display?: FontDisplay | undefined; } | { display?: FontDisplay | undefined; weight?: string | number | undefined; style?: "normal" | "italic" | "oblique" | undefined; } |
Removed class or interface members
None detected.
Changed class or interface members
None detected.
Newly deprecated
None detected.
Requirement changes (engines, peer dependencies)
None detected.
New exports (3)
| import | export | kind |
|---|---|---|
expo-font | FontMap | type |
expo-font | FontFaceDefinition | type |
expo-font | FontFamilyDefinition | type |
Changelog between these versions
Text published by the package authors, shown as-is.
58.0.8
### Patch Changes
- [Internal] Bump precompiled artifacts due to ABI breakage in expo-modules-jsi, which makes `JavaScriptValue` a non-copyable struct. ([#51368](https://github.com/expo/expo/pull/51368) by [@tsapeta](https://github.com/tsapeta))58.0.7
### Patch Changes
- Bump precompiled artifacts due to ABI breakage in expo-modules-core@58.0.13. ([#51138](https://github.com/expo/expo/pull/51138) by [@alanjhughes](https://github.com/alanjhughes))58.0.6
### Patch Changes
- Restored the `./plugin` subpath export so typed config plugins can be imported from `<package>/plugin` again. ([#50965](https://github.com/expo/expo/pull/50965) by [@Titozzz](https://github.com/Titozzz))58.0.5
### Patch Changes
- Bump precompiled artifacts due to ABI breakage in expo-modules-jsi@58.0.6. ([#50881](https://github.com/expo/expo/pull/50881) by [@kitten](https://github.com/kitten))58.0.4
### Patch Changes
- Force-bump all packages, due to migration to changesets. ([#50762](https://github.com/expo/expo/pull/50762) by [@kitten](https://github.com/kitten))58.0.3
### 🐛 Bug fixes
- [iOS] Keep the previously registered font when a font loaded from a new path has the same PostScript name, instead of unregistering it and crashing on render. ([#50561](https://github.com/expo/expo/pull/50561) by [@eliotgevers](https://github.com/eliotgevers))58.0.2
### 🐛 Bug fixes
- [iOS] Import `UIKit` in the `UIFont` extension, which relied on another file in the module importing it. ([#50277](https://github.com/expo/expo/pull/50277) by [@chrfalch](https://github.com/chrfalch))58.0.1
### 🛠 Breaking changes
- [web] Removed `FontResource.testString`. The CSS Font Loading API detects font loading without a test string. ([#49497](https://github.com/expo/expo/pull/49497) by [@vonovak](https://github.com/vonovak))
### 🎉 New features
- [android][ios] Select a face of a multi-face font family with the `fontWeight` and `fontStyle` style props. ([#49486](https://github.com/expo/expo/pull/49486) by [@vonovak](https://github.com/vonovak))
- Support loading multiple font weights and styles per `fontFamily` in `useFonts`/`loadAsync` on Android, iOS, and web. Use `fontWeight` and `fontStyle` style props to select the correct face. ([#47939](https://github.com/expo/expo/pull/47939) by [@bryanmylee](https://github.com/bryanmylee))
- [web] Accept a variable-font weight range, for example `weight: '100 900'`, on a font face. Android and iOS ignore a range and read the weight from the font file. ([#49487](https://github.com/expo/expo/pull/49487) by [@vonovak](https://github.com/vonovak))
### 💡 Others
- [web] Replaced the `fontfaceobserver` dependency with the CSS Font Loading API, so `loadAsync` also waits for the font on Safari and iOS browsers. ([#49497](https://github.com/expo/expo/pull/49497) by [@vonovak](https://github.com/vonovak))58.0.0
### 🛠 Breaking changes
- [ios] `getLoadedFonts()` no longer reports the PostScript name read out of a font loaded with `loadAsync`, only the name (the alias) it was loaded under. ([#48432](https://github.com/expo/expo/pull/48432) by [@vonovak](https://github.com/vonovak))
### 🎉 New features
- [android] Added an `axes` field to the config plugin's font definitions, so one variable font file can also back a slanted or condensed face through its `slnt`, `wdth` and other variation axes. ([#48621](https://github.com/expo/expo/pull/48621) by [@vonovak](https://github.com/vonovak))
- [android] Support variable weight fonts in the config plugin ([#48129](https://github.com/expo/expo/pull/48129) by [@L65FREAD](https://github.com/L65FREAD))
- [ios] Apply `fontWeight` to variable fonts loaded with `useFonts`. ([#48432](https://github.com/expo/expo/pull/48432) by [@vonovak](https://github.com/vonovak))
### 🐛 Bug fixes
- [android] Apply `fontWeight` and `fontStyle` to fonts loaded with `useFonts`, instancing a variable font's `wght` axis at each weight. Bold and italic text previously fell back to a system font. ([#48129](https://github.com/expo/expo/pull/48129) by [@L65FREAD](https://github.com/L65FREAD))
- [iOS] Fixed `renderToImageAsync` reporting the main screen's scale rather than the scale the image was rendered at. ([#48172](https://github.com/expo/expo/pull/48172) by [@alanjhughes](https://github.com/alanjhughes))
- [web] Fixed `isLoaded()` always returning `false` on Firefox, and on every engine for font families whose name needs quoting, by normalizing quotes when comparing family names against the CSSOM. This also stops `loadAsync()` from injecting a duplicate `@font-face` rule on every call and makes `unloadAsync()` and `getLoadedFonts()` behave consistently across engines. ([#49266](https://github.com/expo/expo/pull/49266) by [@irfanfandi](https://github.com/irfanfandi))
- [web] Match `@font-face` rules by comparing the rule's bare family name against the caller's literal name, so families whose names contain quotes or padding resolve correctly, and fixed `unloadAsync()` deleting wrong rules when several rules match. ([#49379](https://github.com/expo/expo/pull/49379) by [@vonovak](https://github.com/vonovak))Give your AI agent these facts
Vigia is a free MCP server: your coding agent checks versions, breaking changes and vulnerabilities before it writes code. No signup, no API key.
claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp
Add to CursorAdd to VS Code★ Star on GitHub
Any other MCP client
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }Agent skill (SKILL.md): tells the agent when to use Vigia · GitHub Action for pull requests
Frequently asked questions
What are the breaking changes when upgrading expo-font from 57 to 58?
Between expo-font 57.0.4 and 58.0.8, Vigia found 0 removed exports, 4 changed signatures and 0 removed or changed class or interface members.
What became deprecated in expo-font 58?
0 exports or members are newly marked as deprecated in expo-font 58.0.8.
For agents
GET https://vigia.coredls.cloud/v1/packages/npm/expo-font/upgrade?from=57.0.4&to=58.0.8