@sigrea/vue 0.3.1 → 0.4.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/README.md +6 -6
- package/dist/index.cjs +3 -3
- package/dist/index.d.cts +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.mjs +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
- **Computed subscriptions.** `useComputed` subscribes to computed values, mirroring Vue's `computed` while tracking through Sigrea scopes.
|
|
7
7
|
- **Deep signal subscriptions.** `useDeepSignal` subscribes to deep signal objects and exposes them as mutable refs with automatic cleanup.
|
|
8
8
|
- **Two-way bindings.** `useMutableSignal` wraps primitive signals as `WritableComputedRef` for two-way bindings like `v-model`.
|
|
9
|
-
- **Molecule lifecycles.** `
|
|
9
|
+
- **Molecule lifecycles.** `useMolecule` mounts molecule factories and binds their lifecycles to Vue components.
|
|
10
10
|
|
|
11
11
|
## Table of Contents
|
|
12
12
|
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
- [useComputed](#usecomputed)
|
|
22
22
|
- [useDeepSignal](#usedeepsignal)
|
|
23
23
|
- [useMutableSignal](#usemutablesignal)
|
|
24
|
-
- [
|
|
24
|
+
- [useMolecule](#usemolecule)
|
|
25
25
|
- [Testing](#testing)
|
|
26
26
|
- [Handling Scope Cleanup Errors](#handling-scope-cleanup-errors)
|
|
27
27
|
- [Development](#development)
|
|
@@ -77,11 +77,11 @@ export const CounterMolecule = molecule((props: { initialCount: number }) => {
|
|
|
77
77
|
```vue
|
|
78
78
|
<!-- Counter.vue -->
|
|
79
79
|
<script setup lang="ts">
|
|
80
|
-
import {
|
|
80
|
+
import { useMolecule, useSignal } from "@sigrea/vue";
|
|
81
81
|
import { CounterMolecule } from "./CounterMolecule";
|
|
82
82
|
|
|
83
83
|
const props = defineProps<{ initialCount: number }>();
|
|
84
|
-
const counter =
|
|
84
|
+
const counter = useMolecule(CounterMolecule, props);
|
|
85
85
|
const value = useSignal(counter.count);
|
|
86
86
|
</script>
|
|
87
87
|
|
|
@@ -170,10 +170,10 @@ function useMutableSignal<T>(signal: Signal<T>): WritableComputedRef<T>
|
|
|
170
170
|
|
|
171
171
|
Wraps a Sigrea signal as a Vue `WritableComputedRef` for two-way bindings like `v-model`. Expects a writable signal created by `signal()`. Passing a readonly signal throws at runtime.
|
|
172
172
|
|
|
173
|
-
###
|
|
173
|
+
### useMolecule
|
|
174
174
|
|
|
175
175
|
```ts
|
|
176
|
-
function
|
|
176
|
+
function useMolecule<TReturn extends object, TProps = void>(
|
|
177
177
|
molecule: MoleculeFactory<TReturn, TProps>,
|
|
178
178
|
...args: MoleculeArgs<TProps>
|
|
179
179
|
): MoleculeInstance<TReturn>
|
package/dist/index.cjs
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
const vue = require('vue');
|
|
4
4
|
const core = require('@sigrea/core');
|
|
5
5
|
|
|
6
|
-
function
|
|
6
|
+
function useMolecule(molecule, ...args) {
|
|
7
7
|
if (vue.getCurrentInstance() === null) {
|
|
8
8
|
throw new Error(
|
|
9
|
-
"
|
|
9
|
+
"useMolecule can only be used within a Vue component setup()."
|
|
10
10
|
);
|
|
11
11
|
}
|
|
12
12
|
const instance = molecule(...args);
|
|
@@ -85,7 +85,7 @@ function useMutableSignal(source) {
|
|
|
85
85
|
|
|
86
86
|
exports.useComputed = useComputed;
|
|
87
87
|
exports.useDeepSignal = useDeepSignal;
|
|
88
|
-
exports.
|
|
88
|
+
exports.useMolecule = useMolecule;
|
|
89
89
|
exports.useMutableSignal = useMutableSignal;
|
|
90
90
|
exports.useSignal = useSignal;
|
|
91
91
|
exports.useSnapshot = useSnapshot;
|
package/dist/index.d.cts
CHANGED
|
@@ -2,7 +2,7 @@ import { MoleculeFactory, MoleculeArgs, MoleculeInstance, Signal, ReadonlySignal
|
|
|
2
2
|
import * as vue from 'vue';
|
|
3
3
|
import { DeepReadonly, ShallowRef } from 'vue';
|
|
4
4
|
|
|
5
|
-
declare function
|
|
5
|
+
declare function useMolecule<TReturn extends object, TProps = void>(molecule: MoleculeFactory<TReturn, TProps>, ...args: MoleculeArgs<TProps>): MoleculeInstance<TReturn>;
|
|
6
6
|
|
|
7
7
|
type ReadableSignal<T> = Signal<T> | ReadonlySignal<T>;
|
|
8
8
|
declare function useSignal<T>(source: ReadableSignal<T>): Readonly<vue.Ref<vue.DeepReadonly<T>, vue.DeepReadonly<T>>>;
|
|
@@ -21,4 +21,4 @@ declare function useSnapshot<T>(handler: SnapshotHandler<T>, options: UseSnapsho
|
|
|
21
21
|
mode: "mutable";
|
|
22
22
|
}): ShallowRef<T>;
|
|
23
23
|
|
|
24
|
-
export { useComputed, useDeepSignal,
|
|
24
|
+
export { useComputed, useDeepSignal, useMolecule, useMutableSignal, useSignal, useSnapshot };
|
package/dist/index.d.mts
CHANGED
|
@@ -2,7 +2,7 @@ import { MoleculeFactory, MoleculeArgs, MoleculeInstance, Signal, ReadonlySignal
|
|
|
2
2
|
import * as vue from 'vue';
|
|
3
3
|
import { DeepReadonly, ShallowRef } from 'vue';
|
|
4
4
|
|
|
5
|
-
declare function
|
|
5
|
+
declare function useMolecule<TReturn extends object, TProps = void>(molecule: MoleculeFactory<TReturn, TProps>, ...args: MoleculeArgs<TProps>): MoleculeInstance<TReturn>;
|
|
6
6
|
|
|
7
7
|
type ReadableSignal<T> = Signal<T> | ReadonlySignal<T>;
|
|
8
8
|
declare function useSignal<T>(source: ReadableSignal<T>): Readonly<vue.Ref<vue.DeepReadonly<T>, vue.DeepReadonly<T>>>;
|
|
@@ -21,4 +21,4 @@ declare function useSnapshot<T>(handler: SnapshotHandler<T>, options: UseSnapsho
|
|
|
21
21
|
mode: "mutable";
|
|
22
22
|
}): ShallowRef<T>;
|
|
23
23
|
|
|
24
|
-
export { useComputed, useDeepSignal,
|
|
24
|
+
export { useComputed, useDeepSignal, useMolecule, useMutableSignal, useSignal, useSnapshot };
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { MoleculeFactory, MoleculeArgs, MoleculeInstance, Signal, ReadonlySignal
|
|
|
2
2
|
import * as vue from 'vue';
|
|
3
3
|
import { DeepReadonly, ShallowRef } from 'vue';
|
|
4
4
|
|
|
5
|
-
declare function
|
|
5
|
+
declare function useMolecule<TReturn extends object, TProps = void>(molecule: MoleculeFactory<TReturn, TProps>, ...args: MoleculeArgs<TProps>): MoleculeInstance<TReturn>;
|
|
6
6
|
|
|
7
7
|
type ReadableSignal<T> = Signal<T> | ReadonlySignal<T>;
|
|
8
8
|
declare function useSignal<T>(source: ReadableSignal<T>): Readonly<vue.Ref<vue.DeepReadonly<T>, vue.DeepReadonly<T>>>;
|
|
@@ -21,4 +21,4 @@ declare function useSnapshot<T>(handler: SnapshotHandler<T>, options: UseSnapsho
|
|
|
21
21
|
mode: "mutable";
|
|
22
22
|
}): ShallowRef<T>;
|
|
23
23
|
|
|
24
|
-
export { useComputed, useDeepSignal,
|
|
24
|
+
export { useComputed, useDeepSignal, useMolecule, useMutableSignal, useSignal, useSnapshot };
|
package/dist/index.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { getCurrentInstance, onScopeDispose, shallowRef, readonly, triggerRef, computed } from 'vue';
|
|
2
2
|
import { disposeMolecule, createSignalHandler, createComputedHandler, createDeepSignalHandler } from '@sigrea/core';
|
|
3
3
|
|
|
4
|
-
function
|
|
4
|
+
function useMolecule(molecule, ...args) {
|
|
5
5
|
if (getCurrentInstance() === null) {
|
|
6
6
|
throw new Error(
|
|
7
|
-
"
|
|
7
|
+
"useMolecule can only be used within a Vue component setup()."
|
|
8
8
|
);
|
|
9
9
|
}
|
|
10
10
|
const instance = molecule(...args);
|
|
@@ -81,4 +81,4 @@ function useMutableSignal(source) {
|
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
export { useComputed, useDeepSignal,
|
|
84
|
+
export { useComputed, useDeepSignal, useMolecule, useMutableSignal, useSignal, useSnapshot };
|