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.
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) {