@nemigo/svelte 2.8.0 → 2.8.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.
@@ -52,3 +52,19 @@ declare function createSvelteRawState<T = boolean>(): ISvelteState<T | undefined
52
52
  */
53
53
  declare function createSvelteRawState<T = boolean>(initial: T): ISvelteState<T>;
54
54
  export { createSvelteRawState };
55
+ /**
56
+ * Интерфейс $derived-хранилища
57
+ */
58
+ export interface ISvelteDerived<V> {
59
+ readonly signal: V;
60
+ /**
61
+ * Получает текущее значение состояния без подписки на изменения.
62
+ */
63
+ get(): V;
64
+ }
65
+ export declare const createSvelteDerived: <V>(effect: () => V) => ISvelteDerived<V>;
66
+ /**
67
+ * Интерфейс $derived-хранилища с возможности перезаписи
68
+ */
69
+ export type ISvelteWritableDerived<V> = ISvelteState<V>;
70
+ export declare const createSvelteWritableDerived: <T>(effect: () => T) => ISvelteWritableDerived<T>;
@@ -59,3 +59,36 @@ function createSvelteRawState(initial) {
59
59
  };
60
60
  }
61
61
  export { createSvelteRawState };
62
+ export const createSvelteDerived = (effect) => {
63
+ const signal = $derived.by(effect);
64
+ return {
65
+ get signal() {
66
+ return signal;
67
+ },
68
+ get() {
69
+ return untrack(() => signal);
70
+ },
71
+ };
72
+ };
73
+ export const createSvelteWritableDerived = (effect) => {
74
+ let signal = $derived.by(effect);
75
+ return {
76
+ get signal() {
77
+ return signal;
78
+ },
79
+ set signal(state) {
80
+ signal = state;
81
+ },
82
+ get() {
83
+ return untrack(() => signal);
84
+ },
85
+ set(state) {
86
+ untrack(() => {
87
+ signal = state;
88
+ });
89
+ },
90
+ untrack(call) {
91
+ return untrack(() => call(signal));
92
+ },
93
+ };
94
+ };
@@ -1,5 +1,5 @@
1
1
  import type { IState } from "@nemigo/helpers/types";
2
- import type { ISvelteState } from "../state.svelte.js";
2
+ import type { ISvelteState } from "../index.svelte.js";
3
3
  export interface NavigationHandler {
4
4
  ignore?: (from: URL, to: URL) => boolean;
5
5
  equal?: boolean;
@@ -1,4 +1,4 @@
1
- import { createSvelteRawState } from "../state.svelte.js";
1
+ import { createSvelteRawState } from "../index.svelte.js";
2
2
  import { afterNavigate, beforeNavigate } from "$app/navigation";
3
3
  import { page } from "$app/state";
4
4
  export class Navigation {
package/dist/loader.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Loader } from "@nemigo/helpers/async/loader";
2
2
  import type { IState } from "@nemigo/helpers/types";
3
- import type { ISvelteState } from "./state.svelte.js";
3
+ import type { ISvelteState } from "./index.svelte.js";
4
4
  export type { LoaderHook } from "@nemigo/helpers/async/loader";
5
5
  /**
6
6
  * Менеджер состояния выполнения для асинхронных операций.
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 { createSvelteRawState } from "./state.svelte.js";
3
+ import { createSvelteRawState } from "./index.svelte.js";
4
4
  /**
5
5
  * Менеджер состояния выполнения для асинхронных операций.
6
6
  * Поддерживает гидратацию true-значения после SSR
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nemigo/svelte",
3
- "version": "2.8.0",
3
+ "version": "2.8.3",
4
4
  "private": false,
5
5
  "license": "MPL-2.0",
6
6
  "author": {
@@ -19,8 +19,8 @@
19
19
  },
20
20
  "exports": {
21
21
  ".": {
22
- "types": "./dist/state.svelte.d.ts",
23
- "svelte": "./dist/state.svelte.js"
22
+ "types": "./dist/index.svelte.d.ts",
23
+ "svelte": "./dist/index.svelte.js"
24
24
  },
25
25
  "./kit/navigation": {
26
26
  "types": "./dist/kit/navigation.d.ts",