@tolgee/svelte 3.6.0 → 3.6.1-rc.fb16d2e.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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 3.6.1-rc.fb16d2e.0 (2022-03-09)
7
+
8
+
9
+ ### Performance Improvements
10
+
11
+ * Use invisible wrapping instead of span component ([fb16d2e](https://github.com/tolgee/tolgee-js/commit/fb16d2e04b4005f6867bdfc241f1510625c105aa))
12
+
13
+
14
+
15
+
16
+
6
17
  # [3.6.0](https://github.com/tolgee/tolgee-js/compare/v3.5.0...v3.6.0) (2022-02-28)
7
18
 
8
19
  **Note:** Version bump only for package @tolgee/svelte
package/README.md CHANGED
File without changes
package/T.svelte CHANGED
@@ -1,27 +1,33 @@
1
- <script >import getTolgeeContext from "./getTolgeeContext";
2
- import { onDestroy } from "svelte";
1
+ <script >import getTolgeeContext from './getTolgeeContext';
2
+ import { onDestroy } from 'svelte';
3
3
  export let keyName;
4
4
  export let parameters = undefined;
5
- export let strategy = "ELEMENT_WRAP";
5
+ export let noWrap = false;
6
+ export let defaultValue = undefined;
6
7
  if (!keyName) {
7
- console.error("Missing keyName prop!");
8
- // show the error in the DOM
9
- keyName = "Tolgee: Missing key name prop!";
10
- strategy = "NO_WRAP";
8
+ console.error('Missing keyName prop!');
11
9
  }
12
- const translationFnNoWrap = strategy === "NO_WRAP" || strategy === "ELEMENT_WRAP";
13
10
  const tolgeeContext = getTolgeeContext();
14
- let translated = tolgeeContext.tolgee.instant(keyName, parameters, translationFnNoWrap, true);
15
- let spanWrapperRef;
16
- const translate = () => tolgeeContext.tolgee
17
- .translate(keyName, parameters, translationFnNoWrap, spanWrapperRef?.textContent || undefined)
18
- .then((result) => {
19
- translated = result;
20
- })
21
- .catch(() => {
22
- console.error("Failed to resolve translation for key: ", keyName);
23
- });
24
- translate();
11
+ let translated = keyName
12
+ ? tolgeeContext.tolgee.instant(keyName, parameters, noWrap, true)
13
+ : '';
14
+ const translate = () => {
15
+ if (keyName) {
16
+ tolgeeContext.tolgee
17
+ .translate({
18
+ key: keyName,
19
+ params: parameters,
20
+ noWrap,
21
+ defaultValue,
22
+ })
23
+ .then((result) => {
24
+ translated = result;
25
+ })
26
+ .catch(() => {
27
+ console.error('Failed to resolve translation for key: ', keyName);
28
+ });
29
+ }
30
+ };
25
31
  const onTranslationChangeSubscription = tolgeeContext.tolgee.onTranslationChange.subscribe((changeData) => {
26
32
  if (changeData.key === keyName) {
27
33
  translate();
@@ -30,33 +36,13 @@ const onTranslationChangeSubscription = tolgeeContext.tolgee.onTranslationChange
30
36
  const onLangChangeSubscription = tolgeeContext.tolgee.onLangChange.subscribe(() => {
31
37
  translate();
32
38
  });
33
- if (typeof window !== "undefined") {
39
+ if (typeof window !== 'undefined') {
34
40
  onDestroy(() => {
35
41
  onTranslationChangeSubscription.unsubscribe();
36
42
  onLangChangeSubscription.unsubscribe();
37
43
  });
38
44
  }
39
- $: (spanWrapperRef && spanWrapperRef.textContent) && translate();
45
+ $: translate();
40
46
  </script>
41
47
 
42
- {#if strategy === 'ELEMENT_WRAP'}
43
- <span data-tolgee-key-only={keyName} bind:this={spanWrapperRef}>
44
- {#if !translated}
45
- {#if $$slots.default}
46
- <slot />
47
- {:else}
48
- {keyName}
49
- {/if}
50
- {:else}
51
- {translated}
52
- {/if}
53
- </span>
54
- {:else if !translated}
55
- {#if $$slots.default}
56
- <slot />
57
- {:else}
58
- {keyName}
59
- {/if}
60
- {:else}
61
- {translated}
62
- {/if}
48
+ {translated}
package/T.svelte.d.ts CHANGED
@@ -3,14 +3,13 @@ declare const __propDef: {
3
3
  props: {
4
4
  keyName: string;
5
5
  parameters?: Record<string, any> | undefined;
6
- strategy?: "ELEMENT_WRAP" | "TEXT_WRAP" | "NO_WRAP";
6
+ noWrap?: boolean;
7
+ defaultValue?: any;
7
8
  };
8
9
  events: {
9
10
  [evt: string]: CustomEvent<any>;
10
11
  };
11
- slots: {
12
- default: {};
13
- };
12
+ slots: {};
14
13
  };
15
14
  export declare type TProps = typeof __propDef.props;
16
15
  export declare type TEvents = typeof __propDef.events;
@@ -1,7 +1,10 @@
1
1
  <script >import { onDestroy, onMount, setContext } from 'svelte';
2
2
  import { IcuFormatter, Tolgee, TolgeeConfig } from '@tolgee/core';
3
3
  export let config;
4
- const tolgee = Tolgee.use(IcuFormatter).init(config || new TolgeeConfig());
4
+ const tolgee = Tolgee.use(IcuFormatter).init({
5
+ wrapperMode: 'invisible',
6
+ ...(config || new TolgeeConfig()),
7
+ });
5
8
  let tolgeeRunPromise;
6
9
  setContext('tolgeeContext', {
7
10
  tolgee,
File without changes
File without changes
File without changes
File without changes
File without changes
package/getTranslate.d.ts CHANGED
File without changes
package/getTranslate.js CHANGED
@@ -58,11 +58,32 @@ const getTranslate = () => {
58
58
  // return new translate method when something is changed
59
59
  return derived(
60
60
  // when updateStore changes, translate function gets changed as well
61
- updateStore, () => (propsOrKey, parameters, noWrap, defaultValue) => {
62
- if (typeof propsOrKey === 'string') {
63
- return translate(propsOrKey, parameters, noWrap, defaultValue);
61
+ updateStore, () => (keyOrProps, ...params) => {
62
+ let parameters = undefined;
63
+ let noWrap = undefined;
64
+ let defaultValue = undefined;
65
+ // allow user to pass object of params and make the code cleaner
66
+ const key = typeof keyOrProps === 'object' ? keyOrProps.key : keyOrProps;
67
+ if (typeof keyOrProps === 'object') {
68
+ parameters = keyOrProps.parameters;
69
+ noWrap = keyOrProps.noWrap;
70
+ defaultValue = keyOrProps.defaultValue;
64
71
  }
65
- return translate(propsOrKey.key, propsOrKey.parameters, propsOrKey.noWrap, propsOrKey.defaultValue);
72
+ else {
73
+ params.forEach((param) => {
74
+ switch (typeof param) {
75
+ case 'object':
76
+ parameters = param;
77
+ break;
78
+ case 'boolean':
79
+ noWrap = param;
80
+ break;
81
+ case 'string':
82
+ defaultValue = param;
83
+ }
84
+ });
85
+ }
86
+ return translate(key, parameters, noWrap, defaultValue);
66
87
  });
67
88
  };
68
89
  export default getTranslate;
package/index.d.ts CHANGED
File without changes
package/index.js CHANGED
File without changes
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@tolgee/svelte",
3
- "version": "3.6.0",
3
+ "version": "3.6.1-rc.fb16d2e.0",
4
4
  "dependencies": {
5
- "@tolgee/core": "^3.6.0"
5
+ "jest-fetch-mock": "^3.0.3"
6
6
  },
7
7
  "devDependencies": {
8
8
  "@sveltejs/kit": "next",
9
9
  "@testing-library/jest-dom": "5.16.2",
10
10
  "@testing-library/svelte": "3.0.3",
11
+ "@tolgee/core": "^3.6.1-rc.fb16d2e.0",
11
12
  "@types/jest": "27.4.1",
12
13
  "@typescript-eslint/eslint-plugin": "^5.12.1",
13
14
  "@typescript-eslint/parser": "^5.12.1",
package/types.d.ts CHANGED
@@ -1,14 +1,15 @@
1
+ import type { TranslationParams } from '@tolgee/core';
1
2
  import type { Readable } from 'svelte/store';
2
- export declare type TranslationParameters = {
3
- [key: string]: string;
4
- };
5
3
  export declare type GetTranslateResultFnProps = {
6
4
  key: string;
7
- parameters?: TranslationParameters;
5
+ parameters?: TranslationParams;
8
6
  noWrap?: boolean;
9
7
  defaultValue?: string;
10
8
  };
11
9
  export declare type GetTranslateType = () => Readable<{
12
10
  (props: GetTranslateResultFnProps): string;
13
- (key: string, parameters?: TranslationParameters, noWrap?: boolean, defaultValue?: string): string;
11
+ (key: string, defaultValue?: string, noWrap?: boolean): string;
12
+ (key: string, defaultValue?: string, parameters?: TranslationParams): string;
13
+ (key: string, parameters?: TranslationParams, defaultValue?: string): string;
14
+ (key: string, parameters?: TranslationParams, noWrap?: boolean, defaultValue?: string): string;
14
15
  }>;
package/types.js CHANGED
File without changes