@nemigo/svelte 2.2.1 → 2.2.2

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.
@@ -1,11 +1,11 @@
1
- import { createSvelteState } from "../state.svelte.js";
1
+ import { createSvelteRawState } from "../state.svelte.js";
2
2
  import { afterNavigate, beforeNavigate } from "$app/navigation";
3
3
  import { page } from "$app/state";
4
4
  export class Navigation {
5
5
  state;
6
6
  __handler;
7
7
  static default(handler) {
8
- return new Navigation(createSvelteState(false), handler);
8
+ return new Navigation(createSvelteRawState(false), handler);
9
9
  }
10
10
  constructor(state, handler = {}) {
11
11
  this.state = state;
package/dist/loader.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Loader } from "@nemigo/helpers/async/loader";
2
2
  import { onMount } from "svelte";
3
- import { createSvelteState } from "./state.svelte.js";
3
+ import { createSvelteRawState } from "./state.svelte.js";
4
4
  /**
5
5
  * Менеджер состояния выполнения для асинхронных операций.
6
6
  * Поддерживает гидратацию true-значения после SSR
@@ -46,7 +46,7 @@ import { createSvelteState } from "./state.svelte.js";
46
46
  export class LoaderStore extends Loader {
47
47
  state;
48
48
  static default(init = false) {
49
- return new LoaderStore(createSvelteState(init));
49
+ return new LoaderStore(createSvelteRawState(init));
50
50
  }
51
51
  constructor(state) {
52
52
  super((v) => {
@@ -1,6 +1,6 @@
1
1
  import type { IState } from "@nemigo/helpers/types";
2
2
  /**
3
- * Интерфейс $state-хранилища значения из {@link createSvelteState}
3
+ * Интерфейс $state-хранилища
4
4
  */
5
5
  export interface ISvelteState<V = boolean | undefined> extends IState<V> {
6
6
  /**
@@ -36,3 +36,19 @@ declare function createSvelteState<T = boolean>(): ISvelteState<T | undefined>;
36
36
  */
37
37
  declare function createSvelteState<T = boolean>(initial: T): ISvelteState<T>;
38
38
  export { createSvelteState };
39
+ /**
40
+ * @template T - Тип значения
41
+ * @returns {ISvelteState<T | undefined>} $state-хранилище значения
42
+ *
43
+ * @see https://svelte.dev/docs/svelte/what-are-runes
44
+ */
45
+ declare function createSvelteRawState<T = boolean>(): ISvelteState<T | undefined>;
46
+ /**
47
+ * @template T - Тип значения
48
+ * @param {T} initial - Начальное значение
49
+ * @returns {ISvelteState<T>} $state-хранилище значения
50
+ *
51
+ * @see https://svelte.dev/docs/svelte/what-are-runes
52
+ */
53
+ declare function createSvelteRawState<T = boolean>(initial: T): ISvelteState<T>;
54
+ export { createSvelteRawState };
@@ -29,3 +29,33 @@ function createSvelteState(initial) {
29
29
  };
30
30
  }
31
31
  export { createSvelteState };
32
+ /**
33
+ * @template T - Тип значения
34
+ * @param {T} initial - Начальное значение
35
+ * @returns {ISvelteState<T>} $state-хранилище значения
36
+ *
37
+ * @see https://svelte.dev/docs/svelte/what-are-runes
38
+ */
39
+ function createSvelteRawState(initial) {
40
+ let signal = $state.raw(initial);
41
+ return {
42
+ get signal() {
43
+ return signal;
44
+ },
45
+ set signal(state) {
46
+ signal = state;
47
+ },
48
+ get() {
49
+ return untrack(() => signal);
50
+ },
51
+ set(state) {
52
+ untrack(() => {
53
+ signal = state;
54
+ });
55
+ },
56
+ untrack(call) {
57
+ return untrack(() => call(signal));
58
+ },
59
+ };
60
+ }
61
+ export { createSvelteRawState };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nemigo/svelte",
3
- "version": "2.2.1",
3
+ "version": "2.2.2",
4
4
  "private": false,
5
5
  "author": {
6
6
  "name": "Vlad Logvin",