@effect-app/vue 2.53.0 → 2.53.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @effect-app/vue
2
2
 
3
+ ## 2.53.1
4
+
5
+ ### Patch Changes
6
+
7
+ - b74ec82: enable formatMessage accessor
8
+
3
9
  ## 2.53.0
4
10
 
5
11
  ### Minor Changes
@@ -2,14 +2,17 @@ import { Context } from "effect-app";
2
2
  declare const I18n_base: (abstract new (service: {
3
3
  locale: import("vue").Ref<string, string>;
4
4
  trans: (id: string, values?: Record<string, import("intl-messageformat").PrimitiveType | import("intl-messageformat").FormatXMLElementFn<string, string>>) => string;
5
+ readonly formatMessage: (descriptor: import("@formatjs/intl").MessageDescriptor, values?: Record<string, import("intl-messageformat").PrimitiveType | import("intl-messageformat").FormatXMLElementFn<string, string>>, opts?: import("intl-messageformat").Options) => string;
5
6
  readonly intl: import("../makeIntl.js").IntlShape<Locale>;
6
7
  }) => Readonly<{
7
8
  locale: import("vue").Ref<string, string>;
8
9
  trans: (id: string, values?: Record<string, import("intl-messageformat").PrimitiveType | import("intl-messageformat").FormatXMLElementFn<string, string>>) => string;
10
+ readonly formatMessage: (descriptor: import("@formatjs/intl").MessageDescriptor, values?: Record<string, import("intl-messageformat").PrimitiveType | import("intl-messageformat").FormatXMLElementFn<string, string>>, opts?: import("intl-messageformat").Options) => string;
9
11
  readonly intl: import("../makeIntl.js").IntlShape<Locale>;
10
12
  }> & Context.TagClassShape<"I18n", {
11
13
  locale: import("vue").Ref<string, string>;
12
14
  trans: (id: string, values?: Record<string, import("intl-messageformat").PrimitiveType | import("intl-messageformat").FormatXMLElementFn<string, string>>) => string;
15
+ readonly formatMessage: (descriptor: import("@formatjs/intl").MessageDescriptor, values?: Record<string, import("intl-messageformat").PrimitiveType | import("intl-messageformat").FormatXMLElementFn<string, string>>, opts?: import("intl-messageformat").Options) => string;
13
16
  readonly intl: import("../makeIntl.js").IntlShape<Locale>;
14
17
  }>) & {
15
18
  toLayer: <E, R>(eff: import("effect/Effect").Effect<Omit<I18n, keyof Context.TagClassShape<any, any>>, E, R>) => import("effect/Layer").Layer<I18n, E, R>;
@@ -18,11 +21,13 @@ declare const I18n_base: (abstract new (service: {
18
21
  } & Context.Tag<I18n, I18n> & {
19
22
  locale: import("effect/Effect").Effect<import("vue").Ref<string, string>, never, I18n>;
20
23
  trans: (id: string, values?: Record<string, import("intl-messageformat").PrimitiveType | import("intl-messageformat").FormatXMLElementFn<string, string>> | undefined) => import("effect/Effect").Effect<string, never, I18n>;
24
+ readonly formatMessage: (descriptor: import("@formatjs/intl").MessageDescriptor, values?: Record<string, import("intl-messageformat").PrimitiveType | import("intl-messageformat").FormatXMLElementFn<string, string>> | undefined, opts?: import("intl-messageformat").Options | undefined) => import("effect/Effect").Effect<string, never, I18n>;
21
25
  readonly intl: import("../makeIntl.js").IntlShape<Locale>;
22
26
  } & {
23
27
  use: <X>(body: (_: {
24
28
  locale: import("vue").Ref<string, string>;
25
29
  trans: (id: string, values?: Record<string, import("intl-messageformat").PrimitiveType | import("intl-messageformat").FormatXMLElementFn<string, string>>) => string;
30
+ readonly formatMessage: (descriptor: import("@formatjs/intl").MessageDescriptor, values?: Record<string, import("intl-messageformat").PrimitiveType | import("intl-messageformat").FormatXMLElementFn<string, string>>, opts?: import("intl-messageformat").Options) => string;
26
31
  readonly intl: import("../makeIntl.js").IntlShape<Locale>;
27
32
  }) => X) => X extends import("effect/Effect").Effect<infer A, infer E, infer R_2> ? import("effect/Effect").Effect<A, E, I18n | R_2> : import("effect/Effect").Effect<X, never, I18n>;
28
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"intl.d.ts","sourceRoot":"","sources":["../../src/experimental/intl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGpC,qBAAa,IAAK,SAAQ,SAA4E;CACrG"}
1
+ {"version":3,"file":"intl.d.ts","sourceRoot":"","sources":["../../src/experimental/intl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGpC,qBAAa,IAAK,SAAQ,SAA4E;CACrG"}
@@ -1,5 +1,5 @@
1
- import { type Formatters, type IntlFormatters, type ResolvedIntlConfig } from "@formatjs/intl";
2
- import type { FormatXMLElementFn, PrimitiveType } from "intl-messageformat";
1
+ import { type Formatters, type IntlFormatters, type MessageDescriptor, type ResolvedIntlConfig } from "@formatjs/intl";
2
+ import { type FormatXMLElementFn, type Options as IntlMessageFormatOptions, type PrimitiveType } from "intl-messageformat";
3
3
  import { type Ref } from "vue";
4
4
  export interface MakeIntlReturn<Locale extends string> extends ReturnType<typeof makeIntl<Locale>> {
5
5
  }
@@ -10,6 +10,7 @@ export declare const makeIntl: <Locale extends string>(messages: Record<Locale,
10
10
  useIntl: () => {
11
11
  locale: Ref<Locale, Locale>;
12
12
  trans: (id: keyof (typeof messages)[Locale], values?: Record<string, PrimitiveType | FormatXMLElementFn<string, string>>) => string;
13
+ readonly formatMessage: (descriptor: MessageDescriptor, values?: Record<string, PrimitiveType | FormatXMLElementFn<string, string>>, opts?: IntlMessageFormatOptions) => string;
13
14
  readonly intl: IntlShape<Locale>;
14
15
  };
15
16
  LocaleContext: {
@@ -1 +1 @@
1
- {"version":3,"file":"makeIntl.d.ts","sourceRoot":"","sources":["../src/makeIntl.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAE3H,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC3E,OAAO,EAAE,KAAK,GAAG,EAAc,MAAM,KAAK,CAAA;AAI1C,MAAM,WAAW,cAAc,CAAC,MAAM,SAAS,MAAM,CAAE,SAAQ,UAAU,CAAC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;CAAG;AAGrG,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IACrF,UAAU,EAAE,UAAU,CAAA;CACvB;AAED,eAAO,MAAM,QAAQ,GAAI,MAAM,SAAS,MAAM,EAC5C,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAChD,eAAe,OAAO,CAAC,MAAM,CAAC;;;oBAyBtB,MAAM,CAAC,OAAO,QAAQ,EAAE,MAAM,CAAC,WAC1B,MAAM,CACb,MAAM,EACN,aAAa,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CACnD;uBAiB+B,SAAS,CAAC,MAAM,CAAC;;;;;;CAKtD,CAAA"}
1
+ {"version":3,"file":"makeIntl.d.ts","sourceRoot":"","sources":["../src/makeIntl.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAEnJ,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,OAAO,IAAI,wBAAwB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC1H,OAAO,EAAE,KAAK,GAAG,EAAc,MAAM,KAAK,CAAA;AAI1C,MAAM,WAAW,cAAc,CAAC,MAAM,SAAS,MAAM,CAAE,SAAQ,UAAU,CAAC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;CAAG;AAGrG,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IACrF,UAAU,EAAE,UAAU,CAAA;CACvB;AAED,eAAO,MAAM,QAAQ,GAAI,MAAM,SAAS,MAAM,EAC5C,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAChD,eAAe,OAAO,CAAC,MAAM,CAAC;;;oBAyBtB,MAAM,CAAC,OAAO,QAAQ,EAAE,MAAM,CAAC,WAC1B,MAAM,CACb,MAAM,EACN,aAAa,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CACnD;gCAgBoB,CACnB,UAAU,EAAE,iBAAiB,EAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC3E,IAAI,CAAC,EAAE,wBAAwB,KAC5B,MAAM;uBAIqB,SAAS,CAAC,MAAM,CAAC;;;;;;CAKtD,CAAA"}
package/dist/makeIntl.js CHANGED
@@ -27,6 +27,9 @@ export const makeIntl = (messages, defaultLocale) => {
27
27
  return {
28
28
  locale,
29
29
  trans,
30
+ get formatMessage() {
31
+ return intls[locale.value].formatMessage;
32
+ },
30
33
  get intl() {
31
34
  return intls[locale.value];
32
35
  }
@@ -34,4 +37,4 @@ export const makeIntl = (messages, defaultLocale) => {
34
37
  };
35
38
  return { useIntl, LocaleContext };
36
39
  };
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUludGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbWFrZUludGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFpRSxNQUFNLGdCQUFnQixDQUFBO0FBQzNILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUU5QyxPQUFPLEVBQVksR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQTtBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQVM5QyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FDdEIsUUFBZ0QsRUFDaEQsYUFBOEIsRUFDOUIsRUFBRTtJQUNGLE1BQU0sU0FBUyxHQUFHLGVBQWUsRUFBRSxDQUFBO0lBRW5DLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQ3hDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ1gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FDbkI7WUFDRSxhQUFhO1lBQ2IsTUFBTSxFQUFFLEdBQUc7WUFDWCxRQUFRLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQztTQUN4QixFQUNELFNBQVMsQ0FDVixDQUFBO1FBQ0QsT0FBTyxHQUFHLENBQUE7SUFDWixDQUFDLEVBQ0QsRUFBdUMsQ0FDeEMsQ0FBQTtJQUVELE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQVMsYUFBYSxDQUFnQixDQUFDLENBQUE7SUFFNUUsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1FBQ25CLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtRQUVsQyxNQUFNLEtBQUssR0FBRyxDQUNaLEVBQW1DLEVBQ25DLE1BR0M7UUFDRCx1R0FBdUc7VUFDdkcsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBRWpFLEtBQUssQ0FDSCxNQUFNLEVBQ04sQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNULE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUMxQixTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUE7UUFDdEMsQ0FBQyxFQUNELEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUNwQixDQUFBO1FBRUQsT0FBTztZQUNMLE1BQU07WUFDTixLQUFLO1lBQ0wsSUFBSSxJQUFJO2dCQUNOLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQXNCLENBQUE7WUFDakQsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDLENBQUE7SUFDRCxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFBO0FBQ25DLENBQUMsQ0FBQSJ9
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZUludGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbWFrZUludGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUF5RixNQUFNLGdCQUFnQixDQUFBO0FBQ25KLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUU5QyxPQUFPLEVBQVksR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQTtBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQVM5QyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FDdEIsUUFBZ0QsRUFDaEQsYUFBOEIsRUFDOUIsRUFBRTtJQUNGLE1BQU0sU0FBUyxHQUFHLGVBQWUsRUFBRSxDQUFBO0lBRW5DLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQ3hDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ1gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FDbkI7WUFDRSxhQUFhO1lBQ2IsTUFBTSxFQUFFLEdBQUc7WUFDWCxRQUFRLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQztTQUN4QixFQUNELFNBQVMsQ0FDVixDQUFBO1FBQ0QsT0FBTyxHQUFHLENBQUE7SUFDWixDQUFDLEVBQ0QsRUFBdUMsQ0FDeEMsQ0FBQTtJQUVELE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQVMsYUFBYSxDQUFnQixDQUFDLENBQUE7SUFFNUUsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1FBQ25CLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtRQUVsQyxNQUFNLEtBQUssR0FBRyxDQUNaLEVBQW1DLEVBQ25DLE1BR0M7UUFDRCx1R0FBdUc7VUFDdkcsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQVMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBRWpFLEtBQUssQ0FDSCxNQUFNLEVBQ04sQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNULE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUMxQixTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUE7UUFDdEMsQ0FBQyxFQUNELEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUNwQixDQUFBO1FBRUQsT0FBTztZQUNMLE1BQU07WUFDTixLQUFLO1lBQ0wsSUFBSSxhQUFhO2dCQUtmLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxhQUFhLENBQUE7WUFDMUMsQ0FBQztZQUNELElBQUksSUFBSTtnQkFDTixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFzQixDQUFBO1lBQ2pELENBQUM7U0FDRixDQUFBO0lBQ0gsQ0FBQyxDQUFBO0lBQ0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQTtBQUNuQyxDQUFDLENBQUEifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/vue",
3
- "version": "2.53.0",
3
+ "version": "2.53.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "homepage": "https://github.com/effect-ts-app/libs/tree/main/packages/vue",
package/src/makeIntl.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/no-empty-object-type */
2
- import { createIntl, createIntlCache, type Formatters, type IntlFormatters, type ResolvedIntlConfig } from "@formatjs/intl"
2
+ import { createIntl, createIntlCache, type Formatters, type IntlFormatters, type MessageDescriptor, type ResolvedIntlConfig } from "@formatjs/intl"
3
3
  import { typedKeysOf } from "effect-app/utils"
4
- import type { FormatXMLElementFn, PrimitiveType } from "intl-messageformat"
4
+ import { type FormatXMLElementFn, type Options as IntlMessageFormatOptions, type PrimitiveType } from "intl-messageformat"
5
5
  import { type Ref, ref, watch } from "vue"
6
6
  import { translate } from "./form.js"
7
7
  import { makeContext } from "./makeContext.js"
@@ -60,6 +60,13 @@ export const makeIntl = <Locale extends string>(
60
60
  return {
61
61
  locale,
62
62
  trans,
63
+ get formatMessage(): (
64
+ descriptor: MessageDescriptor,
65
+ values?: Record<string, PrimitiveType | FormatXMLElementFn<string, string>>,
66
+ opts?: IntlMessageFormatOptions
67
+ ) => string {
68
+ return intls[locale.value].formatMessage
69
+ },
63
70
  get intl() {
64
71
  return intls[locale.value] as IntlShape<Locale>
65
72
  }