canopy-i18n 0.0.2 → 0.0.3

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/README.md CHANGED
@@ -24,8 +24,8 @@ yarn add canopy-i18n
24
24
  ```ts
25
25
  import { createMessageBuilder, applyLocaleDeep } from 'canopy-i18n';
26
26
 
27
- // 1) Declare allowed locales and defaults
28
- const builder = createMessageBuilder(['ja', 'en'] as const, 'ja', 'ja');
27
+ // 1) Declare allowed locales and fallback
28
+ const builder = createMessageBuilder(['ja', 'en'] as const, 'ja');
29
29
 
30
30
  // 2) Define messages
31
31
  const title = builder({
@@ -56,12 +56,11 @@ console.log(msg.setLocale('en').render({ name: 'Tanaka', age: 20 }));
56
56
 
57
57
  ## API
58
58
 
59
- ### createMessageBuilder(locales, locale, fallbackLocale)
59
+ ### createMessageBuilder(locales, fallbackLocale)
60
60
  Returns a `builder` function to create localized messages.
61
61
 
62
62
  - **locales**: `readonly string[]` — Allowed locale keys (e.g. `['ja', 'en'] as const`).
63
- - **locale**: default active locale for new messages.
64
- - **fallbackLocale**: fallback locale when the active locale value is missing.
63
+ - **fallbackLocale**: fallback locale when the active locale value is missing. New messages start with this locale active.
65
64
 
66
65
  Overloads:
67
66
  - `builder<Record<L[number], string>>() -> I18nMessage<L, void>`
@@ -114,7 +113,7 @@ Import all message exports as a namespace and set the locale across the whole tr
114
113
  ```ts
115
114
  // messages.ts
116
115
  import { createMessageBuilder } from 'canopy-i18n';
117
- const builder = createMessageBuilder(['ja', 'en'] as const, 'ja', 'ja');
116
+ const builder = createMessageBuilder(['ja', 'en'] as const, 'ja');
118
117
 
119
118
  export const title = builder({
120
119
  ja: 'タイトルテスト',
@@ -143,7 +142,7 @@ console.log(m.msg.render({ name: 'Tanaka', age: 20 }));
143
142
  ```ts
144
143
  // i18n/builder.ts
145
144
  import { createMessageBuilder } from 'canopy-i18n';
146
- export const builder = createMessageBuilder(['ja', 'en'] as const, 'ja', 'ja');
145
+ export const builder = createMessageBuilder(['ja', 'en'] as const, 'ja');
147
146
  ```
148
147
 
149
148
  ```ts
package/dist/builder.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Template } from "./types";
2
2
  import { LocalizedMessage } from "./message";
3
- export declare function createMessageBuilder<const Ls extends readonly string[]>(locales: Ls, locale: Ls[number], fallbackLocale: Ls[number]): {
3
+ export declare function createMessageBuilder<const Ls extends readonly string[]>(locales: Ls, fallbackLocale: Ls[number]): {
4
4
  <C>(data: Record<Ls[number], Template<C>>): LocalizedMessage<Ls, C>;
5
5
  (data: Record<Ls[number], string>): LocalizedMessage<Ls, void>;
6
6
  };
package/dist/builder.js CHANGED
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createMessageBuilder = createMessageBuilder;
4
4
  const message_1 = require("./message");
5
- function createMessageBuilder(locales, locale, fallbackLocale) {
5
+ function createMessageBuilder(locales, fallbackLocale) {
6
6
  function builder(data) {
7
- return new message_1.I18nMessage(locales, locale, fallbackLocale, data);
7
+ return new message_1.I18nMessage(locales, fallbackLocale).setData(data);
8
8
  }
9
9
  return builder;
10
10
  }
package/dist/message.d.ts CHANGED
@@ -3,12 +3,14 @@ export declare class I18nMessage<Ls extends readonly string[], C> {
3
3
  readonly locales: Ls;
4
4
  private _locale;
5
5
  private _fallbackLocale;
6
- readonly data: Record<Ls[number], Template<C>>;
7
- constructor(locales: Ls, _locale: Ls[number], _fallbackLocale: Ls[number], data: Record<Ls[number], Template<C>>);
6
+ private _data;
7
+ constructor(locales: Ls, fallbackLocale: Ls[number]);
8
8
  get locale(): Ls[number];
9
9
  get fallbackLocale(): Ls[number];
10
10
  setLocale(locale: Ls[number]): this;
11
11
  setFallbackLocale(locale: Ls[number]): this;
12
+ get data(): Record<Ls[number], Template<C>>;
13
+ setData(data: Record<Ls[number], Template<C>>): this;
12
14
  render(this: I18nMessage<Ls, void>): string;
13
15
  render(ctx: C): string;
14
16
  }
package/dist/message.js CHANGED
@@ -9,12 +9,11 @@ class I18nMessage {
9
9
  locales;
10
10
  _locale;
11
11
  _fallbackLocale;
12
- data;
13
- constructor(locales, _locale, _fallbackLocale, data) {
12
+ _data;
13
+ constructor(locales, fallbackLocale) {
14
14
  this.locales = locales;
15
- this._locale = _locale;
16
- this._fallbackLocale = _fallbackLocale;
17
- this.data = data;
15
+ this._fallbackLocale = fallbackLocale;
16
+ this._locale = fallbackLocale;
18
17
  }
19
18
  get locale() {
20
19
  return this._locale;
@@ -30,8 +29,15 @@ class I18nMessage {
30
29
  this._fallbackLocale = locale;
31
30
  return this;
32
31
  }
32
+ get data() {
33
+ return this._data;
34
+ }
35
+ setData(data) {
36
+ this._data = data;
37
+ return this;
38
+ }
33
39
  render(ctx) {
34
- const v = this.data[this._locale] ?? this.data[this._fallbackLocale];
40
+ const v = this._data[this._locale] ?? this._data[this._fallbackLocale];
35
41
  return isTemplateFunction(v) ? v(ctx) : v;
36
42
  }
37
43
  }
package/dist/testData.js CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.nested = exports.msg = exports.title = void 0;
4
4
  const index_1 = require("./index");
5
- const builder = (0, index_1.createMessageBuilder)(['ja', 'en'], 'ja', 'ja');
5
+ const builder = (0, index_1.createMessageBuilder)(['ja', 'en'], 'ja');
6
6
  exports.title = builder({
7
7
  ja: 'タイトルテスト',
8
8
  en: 'Title Test'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "canopy-i18n",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "A tiny, type-safe i18n helper",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",