import I18n, { type I18nOptions } from "@websnacksjs/i18n"; export type Fixtures = { base: { common: typeof import("./fixtures/base/messages/en/common.json"); drama: typeof import("./fixtures/base/messages/en/drama.json"); }; }; export const withFixture = ( fixture: F, overrides: Partial> = {}, ): I18n => { switch (fixture) { case "base": { return new I18n({ supportedLocales: ["en", "fr", "fr-Arab"], namespaces: ["drama"], messagesUrlTemplate: new URL( "./fixtures/base/messages/:locale/:namespace.json", import.meta.url, ), ...(overrides as Partial>), }); } default: { throw new Error("unreachable"); } } };