intor-translator 1.0.9 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.cts +25 -4
- package/dist/index.d.ts +25 -4
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -161,7 +161,7 @@ type LocaleNamespaceMessages = Record<Locale, NamespaceMessages>;
|
|
|
161
161
|
* type Result = UnionLocaleMessages<typeof messages>;
|
|
162
162
|
* // Result: { auth: { login: "Login" } } | { auth: { logout: "登出" } }
|
|
163
163
|
*/
|
|
164
|
-
type UnionLocaleMessages<M> = M[
|
|
164
|
+
type UnionLocaleMessages<M> = M[StrictLocaleKey<M>];
|
|
165
165
|
|
|
166
166
|
/**
|
|
167
167
|
* Extracts the locale keys from the messages object as string literals.
|
|
@@ -173,7 +173,28 @@ type UnionLocaleMessages<M> = M[LocaleKey<M>];
|
|
|
173
173
|
* }>;
|
|
174
174
|
* // Locales is "en" | "zh-TW"
|
|
175
175
|
*/
|
|
176
|
-
type
|
|
176
|
+
type StrictLocaleKey<M> = keyof M & string;
|
|
177
|
+
/**
|
|
178
|
+
* Extracts locale keys only when M is a valid messages object.
|
|
179
|
+
*
|
|
180
|
+
* When M is a concrete `LocaleNamespaceMessages`, the locale key
|
|
181
|
+
* will be inferred as a union of its top-level keys like `"en" | "zh-TW"`.
|
|
182
|
+
* Otherwise, falls back to a generic `string`.
|
|
183
|
+
*
|
|
184
|
+
* This helps retain intellisense when `messages` is provided,
|
|
185
|
+
* but avoids TypeScript errors when M is left as `unknown`.
|
|
186
|
+
*
|
|
187
|
+
* @example
|
|
188
|
+
* type Locales = LocaleKey<{
|
|
189
|
+
* en: {};
|
|
190
|
+
* fr: {};
|
|
191
|
+
* }>;
|
|
192
|
+
* // → "en" | "fr"
|
|
193
|
+
*
|
|
194
|
+
* type Fallback = LocaleKey<unknown>;
|
|
195
|
+
* // → string
|
|
196
|
+
*/
|
|
197
|
+
type LocaleKey<M = unknown> = M extends LocaleNamespaceMessages ? StrictLocaleKey<M> : string;
|
|
177
198
|
/**
|
|
178
199
|
* A map that defines fallback locales for each base locale.
|
|
179
200
|
*
|
|
@@ -342,7 +363,7 @@ type TranslateContext = {
|
|
|
342
363
|
replacements?: Replacement | RichReplacement;
|
|
343
364
|
};
|
|
344
365
|
|
|
345
|
-
interface BaseTranslatorOptions<M> {
|
|
366
|
+
interface BaseTranslatorOptions<M = unknown> {
|
|
346
367
|
messages?: Readonly<M>;
|
|
347
368
|
locale?: LocaleKey<M>;
|
|
348
369
|
}
|
|
@@ -394,4 +415,4 @@ declare class ScopeTranslator<M = unknown> extends CoreTranslator<M> {
|
|
|
394
415
|
};
|
|
395
416
|
}
|
|
396
417
|
|
|
397
|
-
export { type FallbackLocalesMap, type FormatMessage, type IsLoadingRef, type LeafKeys, type Locale, type LocaleKey, type LocaleNamespaceMessages, type LocaleRef, type Message, type MessageRecord, type MessagesRef, type Namespace, type NamespaceMessages, type NestedMessage, type NodeKeys, type OnLoading, type OnMissing, type Replacement, type RichReplacement, type ScopedLeafKeys, type TranslateConfig, type TranslateContext, type TranslateHandlers, ScopeTranslator as Translator, type UnionLocaleLeafKeys, type UnionLocaleMessages };
|
|
418
|
+
export { type FallbackLocalesMap, type FormatMessage, type IsLoadingRef, type LeafKeys, type Locale, type LocaleKey, type LocaleNamespaceMessages, type LocaleRef, type Message, type MessageRecord, type MessagesRef, type Namespace, type NamespaceMessages, type NestedMessage, type NodeKeys, type OnLoading, type OnMissing, type Replacement, type RichReplacement, type ScopedLeafKeys, type StrictLocaleKey, type TranslateConfig, type TranslateContext, type TranslateHandlers, ScopeTranslator as Translator, type UnionLocaleLeafKeys, type UnionLocaleMessages };
|
package/dist/index.d.ts
CHANGED
|
@@ -161,7 +161,7 @@ type LocaleNamespaceMessages = Record<Locale, NamespaceMessages>;
|
|
|
161
161
|
* type Result = UnionLocaleMessages<typeof messages>;
|
|
162
162
|
* // Result: { auth: { login: "Login" } } | { auth: { logout: "登出" } }
|
|
163
163
|
*/
|
|
164
|
-
type UnionLocaleMessages<M> = M[
|
|
164
|
+
type UnionLocaleMessages<M> = M[StrictLocaleKey<M>];
|
|
165
165
|
|
|
166
166
|
/**
|
|
167
167
|
* Extracts the locale keys from the messages object as string literals.
|
|
@@ -173,7 +173,28 @@ type UnionLocaleMessages<M> = M[LocaleKey<M>];
|
|
|
173
173
|
* }>;
|
|
174
174
|
* // Locales is "en" | "zh-TW"
|
|
175
175
|
*/
|
|
176
|
-
type
|
|
176
|
+
type StrictLocaleKey<M> = keyof M & string;
|
|
177
|
+
/**
|
|
178
|
+
* Extracts locale keys only when M is a valid messages object.
|
|
179
|
+
*
|
|
180
|
+
* When M is a concrete `LocaleNamespaceMessages`, the locale key
|
|
181
|
+
* will be inferred as a union of its top-level keys like `"en" | "zh-TW"`.
|
|
182
|
+
* Otherwise, falls back to a generic `string`.
|
|
183
|
+
*
|
|
184
|
+
* This helps retain intellisense when `messages` is provided,
|
|
185
|
+
* but avoids TypeScript errors when M is left as `unknown`.
|
|
186
|
+
*
|
|
187
|
+
* @example
|
|
188
|
+
* type Locales = LocaleKey<{
|
|
189
|
+
* en: {};
|
|
190
|
+
* fr: {};
|
|
191
|
+
* }>;
|
|
192
|
+
* // → "en" | "fr"
|
|
193
|
+
*
|
|
194
|
+
* type Fallback = LocaleKey<unknown>;
|
|
195
|
+
* // → string
|
|
196
|
+
*/
|
|
197
|
+
type LocaleKey<M = unknown> = M extends LocaleNamespaceMessages ? StrictLocaleKey<M> : string;
|
|
177
198
|
/**
|
|
178
199
|
* A map that defines fallback locales for each base locale.
|
|
179
200
|
*
|
|
@@ -342,7 +363,7 @@ type TranslateContext = {
|
|
|
342
363
|
replacements?: Replacement | RichReplacement;
|
|
343
364
|
};
|
|
344
365
|
|
|
345
|
-
interface BaseTranslatorOptions<M> {
|
|
366
|
+
interface BaseTranslatorOptions<M = unknown> {
|
|
346
367
|
messages?: Readonly<M>;
|
|
347
368
|
locale?: LocaleKey<M>;
|
|
348
369
|
}
|
|
@@ -394,4 +415,4 @@ declare class ScopeTranslator<M = unknown> extends CoreTranslator<M> {
|
|
|
394
415
|
};
|
|
395
416
|
}
|
|
396
417
|
|
|
397
|
-
export { type FallbackLocalesMap, type FormatMessage, type IsLoadingRef, type LeafKeys, type Locale, type LocaleKey, type LocaleNamespaceMessages, type LocaleRef, type Message, type MessageRecord, type MessagesRef, type Namespace, type NamespaceMessages, type NestedMessage, type NodeKeys, type OnLoading, type OnMissing, type Replacement, type RichReplacement, type ScopedLeafKeys, type TranslateConfig, type TranslateContext, type TranslateHandlers, ScopeTranslator as Translator, type UnionLocaleLeafKeys, type UnionLocaleMessages };
|
|
418
|
+
export { type FallbackLocalesMap, type FormatMessage, type IsLoadingRef, type LeafKeys, type Locale, type LocaleKey, type LocaleNamespaceMessages, type LocaleRef, type Message, type MessageRecord, type MessagesRef, type Namespace, type NamespaceMessages, type NestedMessage, type NodeKeys, type OnLoading, type OnMissing, type Replacement, type RichReplacement, type ScopedLeafKeys, type StrictLocaleKey, type TranslateConfig, type TranslateContext, type TranslateHandlers, ScopeTranslator as Translator, type UnionLocaleLeafKeys, type UnionLocaleMessages };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "intor-translator",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.11",
|
|
4
4
|
"description": "A type safe translator that knows what to say and how to handle the rest. Supports custom messages, rich replacements, and async loading.",
|
|
5
5
|
"author": "Yiming Liao",
|
|
6
6
|
"license": "MIT",
|