From 205b2cfb2f7f5e337a46ee04d680bcca6c9e2d83 Mon Sep 17 00:00:00 2001 From: twlite <46562212+twlite@users.noreply.github.com> Date: Sun, 15 Jun 2025 12:30:42 +0545 Subject: [PATCH 1/2] refactor: rename getI18n to useI18n and update usage in hooks for improved clarity --- packages/i18n/src/hooks.ts | 6 +++--- packages/i18n/src/i18n.ts | 9 ++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/i18n/src/hooks.ts b/packages/i18n/src/hooks.ts index 0e9955e6..5db8291c 100644 --- a/packages/i18n/src/hooks.ts +++ b/packages/i18n/src/hooks.ts @@ -1,5 +1,5 @@ import type { Locale } from 'discord.js'; -import { getI18n, type CommandLocalizationContext } from './i18n'; +import { useI18n, type CommandLocalizationContext } from './i18n'; import { useEnvironment, eventWorkerContext, @@ -29,7 +29,7 @@ export function locale(locale?: Locale): CommandLocalizationContext { const commandkit = context.commandkit; - const i18n = getI18n(commandkit); + const i18n = useI18n(commandkit); const detectedLocale: Locale = locale || commandkit.config.defaultLocale; return { @@ -64,5 +64,5 @@ export function fetchT( ns?: string | null, keyPrefix?: string, ): TFunction { - return locale().i18n.getFixedT(lng, ns, keyPrefix); + return useI18n().getFixedT(lng, ns, keyPrefix); } diff --git a/packages/i18n/src/i18n.ts b/packages/i18n/src/i18n.ts index d8f5bc02..dbb5e8ab 100644 --- a/packages/i18n/src/i18n.ts +++ b/packages/i18n/src/i18n.ts @@ -18,6 +18,7 @@ import CommandKit, { PreparedAppCommandExecution, CommandBuilderLike, CommandKitHMREvent, + getCommandKit, } from 'commandkit'; import FsBackend from 'i18next-fs-backend'; import { basename, extname, join } from 'path'; @@ -124,16 +125,18 @@ NativeContext.prototype.locale = function (locale?: Locale) { * @throws Error if the i18n instance is not found in the store. * @example * ```ts - * import { getI18n } from '@commandkit/i18n'; + * import { useI18n } from '@commandkit/i18n'; * import { commandkit } from 'commandkit'; * - * const i18n = getI18n(commandkit); + * const i18n = useI18n(commandkit); * * // Use the i18n instance * i18n.t('key'); * ``` */ -export function getI18n(commandkit: CommandKit): i18n { +export function useI18n(commandkit?: CommandKit): i18n { + commandkit ??= getCommandKit(true); + const i18n = commandkit.store.get('i18n:plugin:instance') as i18n; if (!i18n) { From e08df5f7b169a82b74530ef017253f194e025f06 Mon Sep 17 00:00:00 2001 From: twlite <46562212+twlite@users.noreply.github.com> Date: Sun, 15 Jun 2025 12:31:01 +0545 Subject: [PATCH 2/2] docs: generate api docs --- .../cache/functions/cache-life.mdx | 2 +- .../cache/functions/cache-tag.mdx | 2 +- .../api-reference/cache/functions/cleanup.mdx | 2 +- .../cache/functions/is-cached-function.mdx | 2 +- .../cache/functions/revalidate-tag.mdx | 2 +- .../cache/interfaces/cache-context.mdx | 2 +- .../cache/interfaces/cache-metadata.mdx | 2 +- .../classes/stop-event-propagation-error.mdx | 38 ------------------- .../functions/create-command-kit-error.mdx | 2 +- .../commandkit/functions/create-element.mdx | 2 +- .../commandkit/functions/create-proxy.mdx | 2 +- .../commandkit/functions/exit-middleware.mdx | 2 +- .../functions/is-command-kit-error.mdx | 2 +- .../commandkit/functions/is-error-type.mdx | 2 +- .../commandkit/functions/redirect.mdx | 2 +- .../commandkit/functions/rethrow.mdx | 17 ++++++++- .../commandkit/functions/stop-events.mdx | 2 +- .../commandkit/interfaces/simple-proxy.mdx | 2 +- .../commandkit/types/command-kit-error.mdx | 2 +- .../i18n/classes/i18n-plugin.mdx | 2 +- .../functions/{get-i18n.mdx => use-i18n.mdx} | 12 +++--- .../command-localization-context.mdx | 2 +- .../localization-plugin-options.mdx | 2 +- .../types/dynamic-localization-module.mdx | 2 +- .../i18n/types/localization-module.mdx | 2 +- 25 files changed, 44 insertions(+), 67 deletions(-) delete mode 100644 apps/website/docs/api-reference/commandkit/classes/stop-event-propagation-error.mdx rename apps/website/docs/api-reference/i18n/functions/{get-i18n.mdx => use-i18n.mdx} (79%) diff --git a/apps/website/docs/api-reference/cache/functions/cache-life.mdx b/apps/website/docs/api-reference/cache/functions/cache-life.mdx index 18614c6b..2b1bfbe0 100644 --- a/apps/website/docs/api-reference/cache/functions/cache-life.mdx +++ b/apps/website/docs/api-reference/cache/functions/cache-life.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## cacheLife - + Sets the TTL for the current cache operation diff --git a/apps/website/docs/api-reference/cache/functions/cache-tag.mdx b/apps/website/docs/api-reference/cache/functions/cache-tag.mdx index a67700f4..8d739f2f 100644 --- a/apps/website/docs/api-reference/cache/functions/cache-tag.mdx +++ b/apps/website/docs/api-reference/cache/functions/cache-tag.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## cacheTag - + Sets a custom identifier for the current cache operation diff --git a/apps/website/docs/api-reference/cache/functions/cleanup.mdx b/apps/website/docs/api-reference/cache/functions/cleanup.mdx index 5dec46bf..fa37868b 100644 --- a/apps/website/docs/api-reference/cache/functions/cleanup.mdx +++ b/apps/website/docs/api-reference/cache/functions/cleanup.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## cleanup - + Cleans up stale cache entries. diff --git a/apps/website/docs/api-reference/cache/functions/is-cached-function.mdx b/apps/website/docs/api-reference/cache/functions/is-cached-function.mdx index 663c72bd..87ac793b 100644 --- a/apps/website/docs/api-reference/cache/functions/is-cached-function.mdx +++ b/apps/website/docs/api-reference/cache/functions/is-cached-function.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## isCachedFunction - + Checks if a function is wrapped with cache functionality diff --git a/apps/website/docs/api-reference/cache/functions/revalidate-tag.mdx b/apps/website/docs/api-reference/cache/functions/revalidate-tag.mdx index 4ecd76e5..eff56e68 100644 --- a/apps/website/docs/api-reference/cache/functions/revalidate-tag.mdx +++ b/apps/website/docs/api-reference/cache/functions/revalidate-tag.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## revalidateTag - + Marks cache entries for invalidation by their tag. The invalidation only happens when the path is next visited. diff --git a/apps/website/docs/api-reference/cache/interfaces/cache-context.mdx b/apps/website/docs/api-reference/cache/interfaces/cache-context.mdx index b64f13ba..8d8c21e9 100644 --- a/apps/website/docs/api-reference/cache/interfaces/cache-context.mdx +++ b/apps/website/docs/api-reference/cache/interfaces/cache-context.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CacheContext - + Context for managing cache operations within an async scope diff --git a/apps/website/docs/api-reference/cache/interfaces/cache-metadata.mdx b/apps/website/docs/api-reference/cache/interfaces/cache-metadata.mdx index 4aef13f8..f1b51dd7 100644 --- a/apps/website/docs/api-reference/cache/interfaces/cache-metadata.mdx +++ b/apps/website/docs/api-reference/cache/interfaces/cache-metadata.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CacheMetadata - + Configuration options for cache behavior diff --git a/apps/website/docs/api-reference/commandkit/classes/stop-event-propagation-error.mdx b/apps/website/docs/api-reference/commandkit/classes/stop-event-propagation-error.mdx deleted file mode 100644 index 79c435f3..00000000 --- a/apps/website/docs/api-reference/commandkit/classes/stop-event-propagation-error.mdx +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: "StopEventPropagationError" -isDefaultIndex: false -generated: true ---- - -import MemberInfo from '@site/src/components/MemberInfo'; -import GenerationInfo from '@site/src/components/GenerationInfo'; -import MemberDescription from '@site/src/components/MemberDescription'; - - - - -## StopEventPropagationError - - - -Custom error for stopping event propagation. - -```ts title="Signature" -class StopEventPropagationError extends Error { - constructor() -} -``` -* Extends: Error - - - -
- -### constructor - - StopEventPropagationError`} /> - - - - -
diff --git a/apps/website/docs/api-reference/commandkit/functions/create-command-kit-error.mdx b/apps/website/docs/api-reference/commandkit/functions/create-command-kit-error.mdx index f279f381..b3f6f7e5 100644 --- a/apps/website/docs/api-reference/commandkit/functions/create-command-kit-error.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/create-command-kit-error.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## createCommandKitError - + Creates a new CommandKit error with the specified code. diff --git a/apps/website/docs/api-reference/commandkit/functions/create-element.mdx b/apps/website/docs/api-reference/commandkit/functions/create-element.mdx index feb56d0a..79ce68de 100644 --- a/apps/website/docs/api-reference/commandkit/functions/create-element.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/create-element.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## createElement - + The createElement function is used to create CommandKit elements. diff --git a/apps/website/docs/api-reference/commandkit/functions/create-proxy.mdx b/apps/website/docs/api-reference/commandkit/functions/create-proxy.mdx index 569ced07..e04edfd8 100644 --- a/apps/website/docs/api-reference/commandkit/functions/create-proxy.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/create-proxy.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## createProxy - + Creates a simple proxy object that mirrors the target object. diff --git a/apps/website/docs/api-reference/commandkit/functions/exit-middleware.mdx b/apps/website/docs/api-reference/commandkit/functions/exit-middleware.mdx index d754f183..65882d98 100644 --- a/apps/website/docs/api-reference/commandkit/functions/exit-middleware.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/exit-middleware.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## exitMiddleware - + Cancel upcoming middleware execution. If this is called inside pre-stage middleware, the next run will be the actual command, skipping all other pre-stage middlewares. diff --git a/apps/website/docs/api-reference/commandkit/functions/is-command-kit-error.mdx b/apps/website/docs/api-reference/commandkit/functions/is-command-kit-error.mdx index a13b5811..61e38bae 100644 --- a/apps/website/docs/api-reference/commandkit/functions/is-command-kit-error.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/is-command-kit-error.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## isCommandKitError - + Checks if the given error is a CommandKit error. diff --git a/apps/website/docs/api-reference/commandkit/functions/is-error-type.mdx b/apps/website/docs/api-reference/commandkit/functions/is-error-type.mdx index ab0d2be6..82378316 100644 --- a/apps/website/docs/api-reference/commandkit/functions/is-error-type.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/is-error-type.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## isErrorType - + Checks if the given error is of a specific CommandKit error type. diff --git a/apps/website/docs/api-reference/commandkit/functions/redirect.mdx b/apps/website/docs/api-reference/commandkit/functions/redirect.mdx index 50ba6be5..b7a91a51 100644 --- a/apps/website/docs/api-reference/commandkit/functions/redirect.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/redirect.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## redirect - + Stops current command assuming it has been redirected to another command. diff --git a/apps/website/docs/api-reference/commandkit/functions/rethrow.mdx b/apps/website/docs/api-reference/commandkit/functions/rethrow.mdx index 949128c2..60ab12d1 100644 --- a/apps/website/docs/api-reference/commandkit/functions/rethrow.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/rethrow.mdx @@ -13,10 +13,25 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## rethrow - + Rethrow the error if it is a CommandKit error. + + +*Example* + +```ts +try { +doSomething(); +} catch(e) { +// do something + +// throw the error if it's a commandkit error +rethrow(e) +} +``` + ```ts title="Signature" function rethrow(error: unknown): void ``` diff --git a/apps/website/docs/api-reference/commandkit/functions/stop-events.mdx b/apps/website/docs/api-reference/commandkit/functions/stop-events.mdx index 58e4d9a6..2e7994c8 100644 --- a/apps/website/docs/api-reference/commandkit/functions/stop-events.mdx +++ b/apps/website/docs/api-reference/commandkit/functions/stop-events.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## stopEvents - + Stops event propagation. This function should be called inside an event handler to prevent further event handling. diff --git a/apps/website/docs/api-reference/commandkit/interfaces/simple-proxy.mdx b/apps/website/docs/api-reference/commandkit/interfaces/simple-proxy.mdx index ddef86c6..8b445d76 100644 --- a/apps/website/docs/api-reference/commandkit/interfaces/simple-proxy.mdx +++ b/apps/website/docs/api-reference/commandkit/interfaces/simple-proxy.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## SimpleProxy - + Represents a simple proxy object that mirrors a target object. diff --git a/apps/website/docs/api-reference/commandkit/types/command-kit-error.mdx b/apps/website/docs/api-reference/commandkit/types/command-kit-error.mdx index f095d72a..dbd79eb8 100644 --- a/apps/website/docs/api-reference/commandkit/types/command-kit-error.mdx +++ b/apps/website/docs/api-reference/commandkit/types/command-kit-error.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommandKitError - + The type for CommandKit errors. diff --git a/apps/website/docs/api-reference/i18n/classes/i18n-plugin.mdx b/apps/website/docs/api-reference/i18n/classes/i18n-plugin.mdx index efd2ee57..4692f4d4 100644 --- a/apps/website/docs/api-reference/i18n/classes/i18n-plugin.mdx +++ b/apps/website/docs/api-reference/i18n/classes/i18n-plugin.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## I18nPlugin - + diff --git a/apps/website/docs/api-reference/i18n/functions/get-i18n.mdx b/apps/website/docs/api-reference/i18n/functions/use-i18n.mdx similarity index 79% rename from apps/website/docs/api-reference/i18n/functions/get-i18n.mdx rename to apps/website/docs/api-reference/i18n/functions/use-i18n.mdx index 6a652ea9..2644e8ac 100644 --- a/apps/website/docs/api-reference/i18n/functions/get-i18n.mdx +++ b/apps/website/docs/api-reference/i18n/functions/use-i18n.mdx @@ -1,5 +1,5 @@ --- -title: "GetI18n" +title: "UseI18n" isDefaultIndex: false generated: true --- @@ -11,9 +11,9 @@ import MemberDescription from '@site/src/components/MemberDescription'; -## getI18n +## useI18n - + Retrieves the i18n instance from the commandkit store. @@ -22,17 +22,17 @@ Retrieves the i18n instance from the commandkit store. *Example* ```ts -import { getI18n } from '@commandkit/i18n'; +import { useI18n } from '@commandkit/i18n'; import { commandkit } from 'commandkit'; -const i18n = getI18n(commandkit); +const i18n = useI18n(commandkit); // Use the i18n instance i18n.t('key'); ``` ```ts title="Signature" -function getI18n(commandkit: CommandKit): i18n +function useI18n(commandkit?: CommandKit): i18n ``` Parameters diff --git a/apps/website/docs/api-reference/i18n/interfaces/command-localization-context.mdx b/apps/website/docs/api-reference/i18n/interfaces/command-localization-context.mdx index 07ac2089..09ed129c 100644 --- a/apps/website/docs/api-reference/i18n/interfaces/command-localization-context.mdx +++ b/apps/website/docs/api-reference/i18n/interfaces/command-localization-context.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## CommandLocalizationContext - + diff --git a/apps/website/docs/api-reference/i18n/interfaces/localization-plugin-options.mdx b/apps/website/docs/api-reference/i18n/interfaces/localization-plugin-options.mdx index 6c344755..6b236aaa 100644 --- a/apps/website/docs/api-reference/i18n/interfaces/localization-plugin-options.mdx +++ b/apps/website/docs/api-reference/i18n/interfaces/localization-plugin-options.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## LocalizationPluginOptions - + Options for the localization plugin. This interface defines the options that can be passed to the localization plugin. diff --git a/apps/website/docs/api-reference/i18n/types/dynamic-localization-module.mdx b/apps/website/docs/api-reference/i18n/types/dynamic-localization-module.mdx index 8aa16933..c8ad2a9b 100644 --- a/apps/website/docs/api-reference/i18n/types/dynamic-localization-module.mdx +++ b/apps/website/docs/api-reference/i18n/types/dynamic-localization-module.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## DynamicLocalizationModule - + Represents a dynamic localization module that can be used with the i18next plugin. diff --git a/apps/website/docs/api-reference/i18n/types/localization-module.mdx b/apps/website/docs/api-reference/i18n/types/localization-module.mdx index 0aa32a17..7b27601e 100644 --- a/apps/website/docs/api-reference/i18n/types/localization-module.mdx +++ b/apps/website/docs/api-reference/i18n/types/localization-module.mdx @@ -13,7 +13,7 @@ import MemberDescription from '@site/src/components/MemberDescription'; ## LocalizationModule - + Represents a localization module that can be used with the i18next plugin.