@better-translate/core 1.0.0 → 2.1.0

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.
@@ -157,6 +157,9 @@ function createConfiguredTranslator(config) {
157
157
  };
158
158
  const translate = ((...args) => {
159
159
  const [key, options] = args;
160
+ if (options?.bt === true) {
161
+ return key;
162
+ }
160
163
  const locale = resolveLocale(options);
161
164
  const activeValue = resolveMessageValue(messageCache[locale], key);
162
165
  if (typeof activeValue === "string") {
@@ -365,6 +368,9 @@ function getTranslator() {
365
368
  return translator;
366
369
  }
367
370
  function t(key, options) {
371
+ if (options?.bt === true) {
372
+ return key;
373
+ }
368
374
  return getTranslator().t(key, options);
369
375
  }
370
376
  async function loadLocale(locale) {
package/dist/core.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type {
2
2
  AnyConfiguredTranslator,
3
3
  AnyTranslationHelpers,
4
+ BtTranslateOptions,
4
5
  CachedMessages,
5
6
  ConfiguredTranslator,
6
7
  DeepPartialMessages,
@@ -17,6 +18,8 @@ import type {
17
18
  } from "./types.js";
18
19
 
19
20
  export type {
21
+ BtTranslateCall,
22
+ BtTranslateOptions,
20
23
  AnyTranslationHelpers,
21
24
  CachedMessages,
22
25
  ConfiguredTranslator,
@@ -138,6 +141,8 @@ export declare function createTranslationJsonSchema(
138
141
 
139
142
  export declare function getTranslator(): AnyConfiguredTranslator;
140
143
 
144
+ export declare function t(key: string, options: BtTranslateOptions): string;
145
+
141
146
  export declare function t(
142
147
  key: string,
143
148
  options?: TranslateOptions<string>,
package/dist/core.js CHANGED
@@ -9,7 +9,7 @@ import {
9
9
  loadLocale,
10
10
  resetTranslationsForTests,
11
11
  t
12
- } from "./chunk-PE2HFT6R.js";
12
+ } from "./chunk-GVC3VHIX.js";
13
13
  export {
14
14
  configureTranslations,
15
15
  createTranslationHelpers,
package/dist/index.js CHANGED
@@ -9,7 +9,7 @@ import {
9
9
  loadLocale,
10
10
  resetTranslationsForTests,
11
11
  t
12
- } from "./chunk-PE2HFT6R.js";
12
+ } from "./chunk-GVC3VHIX.js";
13
13
  export {
14
14
  configureTranslations,
15
15
  createTranslationHelpers,
package/dist/types.d.ts CHANGED
@@ -55,6 +55,9 @@ export type TranslationPlaceholderNames<TMessages extends TranslationMessages, T
55
55
  export type TranslationParamsForKey<TMessages extends TranslationMessages, TKey extends string> = string extends TranslationPlaceholderNames<TMessages, TKey> ? TranslationParams : TranslationParamsObject<TranslationPlaceholderNames<TMessages, TKey>>;
56
56
  export type TranslationKeysWithRequiredParams<TMessages extends TranslationMessages> = TranslationKey<TMessages> extends infer TKey ? TKey extends string ? [TranslationPlaceholderNames<TMessages, TKey>] extends [never] ? never : string extends TranslationPlaceholderNames<TMessages, TKey> ? never : TKey : never : never;
57
57
  export type TranslationKeysWithOptionalParams<TMessages extends TranslationMessages> = Exclude<TranslationKey<TMessages>, TranslationKeysWithRequiredParams<TMessages>>;
58
+ export type BtTranslateOptions<TLocale extends string = string> = Simplify<TranslateOptions<TLocale> & {
59
+ bt: true;
60
+ }>;
58
61
  export type TranslateOptionsForKey<TLocale extends string, TMessages extends TranslationMessages, TKey extends string> = [TranslationPlaceholderNames<TMessages, TKey>] extends [never] ? Simplify<TranslateOptions<TLocale> & {
59
62
  params?: never;
60
63
  }> : string extends TranslationPlaceholderNames<TMessages, TKey> ? Simplify<TranslateOptions<TLocale> & {
@@ -64,7 +67,14 @@ export type TranslateOptionsForKey<TLocale extends string, TMessages extends Tra
64
67
  }>;
65
68
  export type TranslateArgs<TLocale extends string, TMessages extends TranslationMessages, TKey extends string> = [TranslationPlaceholderNames<TMessages, TKey>] extends [never] ? [options?: TranslateOptionsForKey<TLocale, TMessages, TKey>] : string extends TranslationPlaceholderNames<TMessages, TKey> ? [options?: TranslateOptionsForKey<TLocale, TMessages, TKey>] : [options: TranslateOptionsForKey<TLocale, TMessages, TKey>];
66
69
  export type TranslateCall<TLocale extends string, TMessages extends TranslationMessages, TKey extends TranslationKey<TMessages> = TranslationKey<TMessages>> = [key: TKey, ...args: TranslateArgs<TLocale, TMessages, TKey>];
67
- export type TranslateFunction<TLocale extends string, TMessages extends TranslationMessages> = <TKey extends TranslationKey<TMessages>>(...args: TranslateCall<TLocale, TMessages, TKey>) => string;
70
+ export type BtTranslateCall<TLocale extends string = string> = [
71
+ value: string,
72
+ options: BtTranslateOptions<TLocale>
73
+ ];
74
+ export type TranslateFunction<TLocale extends string, TMessages extends TranslationMessages> = {
75
+ <TKey extends TranslationKey<TMessages>>(...args: TranslateCall<TLocale, TMessages, TKey>): string;
76
+ (...args: BtTranslateCall<TLocale>): string;
77
+ };
68
78
  export interface TranslationJsonStringSchema {
69
79
  type: "string";
70
80
  }
@@ -92,6 +102,13 @@ export interface TranslationConfig<TLocale extends string> {
92
102
  * Optional overrides for a single translation lookup.
93
103
  */
94
104
  export interface TranslateOptions<TLocale extends string> {
105
+ /**
106
+ * Marks this call for `bt extract`.
107
+ *
108
+ * When true, `t(...)` returns the provided string unchanged until the CLI
109
+ * rewrites it to a strict keyed call.
110
+ */
111
+ bt?: true;
95
112
  /**
96
113
  * Uses a specific locale for this call instead of the configured default locale.
97
114
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@better-translate/core",
3
- "version": "1.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "Framework-agnostic translation configuration runtime for TypeScript projects.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -10,8 +10,12 @@
10
10
  "types": "./dist/index.d.ts",
11
11
  "typesVersions": {
12
12
  "*": {
13
- "core": ["./dist/core.d.ts"],
14
- "server": ["./dist/server.d.ts"]
13
+ "core": [
14
+ "./dist/core.d.ts"
15
+ ],
16
+ "server": [
17
+ "./dist/server.d.ts"
18
+ ]
15
19
  }
16
20
  },
17
21
  "exports": {
@@ -29,7 +33,11 @@
29
33
  },
30
34
  "./package.json": "./package.json"
31
35
  },
32
- "files": ["dist", "LICENSE", "README.md"],
36
+ "files": [
37
+ "dist",
38
+ "LICENSE",
39
+ "README.md"
40
+ ],
33
41
  "scripts": {
34
42
  "build": "tsup src/index.ts src/core.ts src/server.ts --format esm --clean && bun x tsc --declaration --emitDeclarationOnly --module NodeNext --moduleResolution NodeNext --target ES2022 --outDir dist src/types.ts && cp src/core.d.ts src/index.d.ts src/server.d.ts dist/",
35
43
  "check-types": "tsc --noEmit",
@@ -51,5 +59,10 @@
51
59
  "devDependencies": {
52
60
  "@repo/typescript-config": "*"
53
61
  },
54
- "keywords": ["i18n", "l10n", "translations", "typescript"]
62
+ "keywords": [
63
+ "i18n",
64
+ "l10n",
65
+ "translations",
66
+ "typescript"
67
+ ]
55
68
  }