29 lines
886 B
TypeScript
29 lines
886 B
TypeScript
/**
|
|
* Thrown when the network request to the proxy API fails.
|
|
* Wraps the underlying fetch error (timeout, DNS failure, connection refused, etc.).
|
|
*/
|
|
export class FontNetworkError extends Error {
|
|
readonly name = 'FontNetworkError';
|
|
|
|
constructor(public readonly cause?: unknown) {
|
|
super('Failed to fetch fonts from proxy API');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Thrown when the proxy API returns a response with an unexpected shape.
|
|
*
|
|
* @property field - The name of the field that failed validation (e.g. `'response'`, `'response.fonts'`).
|
|
* @property received - The actual value received at that field, for debugging.
|
|
*/
|
|
export class FontResponseError extends Error {
|
|
readonly name = 'FontResponseError';
|
|
|
|
constructor(
|
|
public readonly field: string,
|
|
public readonly received: unknown,
|
|
) {
|
|
super(`Invalid proxy API response: ${field}`);
|
|
}
|
|
}
|