diff --git a/.changeset/fluffy-hornets-poke.md b/.changeset/fluffy-hornets-poke.md
new file mode 100644
index 0000000..eb3b1a3
--- /dev/null
+++ b/.changeset/fluffy-hornets-poke.md
@@ -0,0 +1,6 @@
+---
+'@effector/model-react': patch
+'@effector/model': patch
+---
+
+gigi
diff --git a/apps/food-order/package.json b/apps/food-order/package.json
index a51800c..570e3ae 100644
--- a/apps/food-order/package.json
+++ b/apps/food-order/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"dependencies": {
- "effector-action": "^1.1.1"
+ "effector-action": "^1.1.3"
},
"devDependencies": {
"@vitejs/plugin-react": "^3.1.0",
diff --git a/apps/tree-todo-list/package.json b/apps/tree-todo-list/package.json
index 7426382..0baaed2 100644
--- a/apps/tree-todo-list/package.json
+++ b/apps/tree-todo-list/package.json
@@ -4,7 +4,7 @@
"version": "0.0.0",
"type": "module",
"dependencies": {
- "effector-action": "^1.1.1"
+ "effector-action": "^1.1.3"
},
"devDependencies": {
"@vitejs/plugin-react": "^3.1.0",
diff --git a/packages/core/package.json b/packages/core/package.json
index 9e716b4..dd7c81e 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -1,7 +1,7 @@
{
"name": "@effector/model",
"version": "0.0.7",
- "type": "commonjs",
+ "type": "module",
"peerDependencies": {
"effector": "^23.3.0"
}
diff --git a/packages/core/src/instanceApi.ts b/packages/core/src/instanceApi.ts
index 36c78fe..e55856a 100644
--- a/packages/core/src/instanceApi.ts
+++ b/packages/core/src/instanceApi.ts
@@ -30,7 +30,12 @@ export function createInstanceApi(
api[prop] = evt;
$entities.on(evt, (state, payload) => {
const [key, data] = Array.isArray(payload.key)
- ? [payload.key, payload.data]
+ ? [
+ payload.key,
+ Array.isArray(payload.data)
+ ? payload.data
+ : Array.from({ length: payload.key.length }),
+ ]
: [[payload.key], [payload.data]];
const targets = [] as any[];
const params = [] as any[];
diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts
index e153065..d2d10d4 100644
--- a/packages/core/src/types.ts
+++ b/packages/core/src/types.ts
@@ -190,18 +190,28 @@ export type ConvertToLensShape = {
type OneOrMany = T | Array;
+type ApiEvent = void extends T
+ ?
+ | { key: string | number; data?: void }
+ | {
+ key: Array;
+ data?: void[];
+ }
+ :
+ | { key: string | number; data: T }
+ | {
+ key: Array;
+ data: T[];
+ };
+
export type Keyval = {
type: 'keyval';
api: {
[K in keyof Api]: Api[K] extends EventCallable
- ? EventCallable<
- | { key: string | number; data: V }
- | {
- key: Array;
- data: V[];
- }
- >
- : never;
+ ? EventCallable>
+ : Api[K] extends Effect
+ ? EventCallable>
+ : never;
};
$items: Store;
$keys: Store>;
diff --git a/packages/react/package.json b/packages/react/package.json
index 7960c7d..baa97ef 100644
--- a/packages/react/package.json
+++ b/packages/react/package.json
@@ -1,7 +1,7 @@
{
"name": "@effector/model-react",
"version": "0.0.7",
- "type": "commonjs",
+ "type": "module",
"peerDependencies": {
"effector": "^23.3.0"
},
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 063c1c1..d45a4ed 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -220,8 +220,8 @@ importers:
apps/food-order:
dependencies:
effector-action:
- specifier: ^1.1.1
- version: 1.1.1(effector@23.3.0)(patronum@2.3.0(effector@23.3.0))
+ specifier: ^1.1.3
+ version: 1.1.3(effector@23.3.0)(patronum@2.3.0(effector@23.3.0))
devDependencies:
'@vitejs/plugin-react':
specifier: ^3.1.0
@@ -258,8 +258,8 @@ importers:
apps/tree-todo-list:
dependencies:
effector-action:
- specifier: ^1.1.1
- version: 1.1.1(effector@23.3.0)(patronum@2.3.0(effector@23.3.0))
+ specifier: ^1.1.3
+ version: 1.1.3(effector@23.3.0)(patronum@2.3.0(effector@23.3.0))
devDependencies:
'@vitejs/plugin-react':
specifier: ^3.1.0
@@ -3097,8 +3097,8 @@ packages:
duplexer@0.1.2:
resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
- effector-action@1.1.1:
- resolution: {integrity: sha512-CnSDv46aOb/0mCiJ93m49ug+/2Fl+lpH1xMNFCFg/HHfZBsROgfXX1iQKko4/YsDoLakytQBXq4nbiwGszNkuQ==}
+ effector-action@1.1.3:
+ resolution: {integrity: sha512-3YsfaRDP9Y/VF7/vn7DmNmztzz0QlqLK9scdag7oyQ6e3Df6aWako+2FfC9k0NT7dHtLhOo4lJR20zePWEW6IQ==}
peerDependencies:
effector: '>=23'
patronum: '>=2.1.0'
@@ -10293,7 +10293,7 @@ snapshots:
duplexer@0.1.2: {}
- effector-action@1.1.1(effector@23.3.0)(patronum@2.3.0(effector@23.3.0)):
+ effector-action@1.1.3(effector@23.3.0)(patronum@2.3.0(effector@23.3.0)):
dependencies:
effector: 23.3.0
patronum: 2.3.0(effector@23.3.0)
@@ -12643,13 +12643,13 @@ snapshots:
dependencies:
htmlparser2: 3.10.1
postcss: 7.0.39
- postcss-syntax: 0.36.2(postcss-html@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-jsx@0.36.4(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-less@3.1.4)(postcss-markdown@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-scss@2.1.1)(postcss@7.0.39)
+ postcss-syntax: 0.36.2(postcss-html@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-jsx@0.36.4)(postcss-less@3.1.4)(postcss-markdown@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-scss@2.1.1)(postcss@7.0.39)
postcss-jsx@0.36.4(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39):
dependencies:
'@babel/core': 7.25.2
postcss: 7.0.39
- postcss-syntax: 0.36.2(postcss-html@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-jsx@0.36.4(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-less@3.1.4)(postcss-markdown@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-scss@2.1.1)(postcss@7.0.39)
+ postcss-syntax: 0.36.2(postcss-html@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-jsx@0.36.4)(postcss-less@3.1.4)(postcss-markdown@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-scss@2.1.1)(postcss@7.0.39)
transitivePeerDependencies:
- supports-color
@@ -12668,7 +12668,7 @@ snapshots:
postcss-markdown@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39):
dependencies:
postcss: 7.0.39
- postcss-syntax: 0.36.2(postcss-html@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-jsx@0.36.4(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-less@3.1.4)(postcss-markdown@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-scss@2.1.1)(postcss@7.0.39)
+ postcss-syntax: 0.36.2(postcss-html@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-jsx@0.36.4)(postcss-less@3.1.4)(postcss-markdown@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-scss@2.1.1)(postcss@7.0.39)
remark: 10.0.1
unist-util-find-all-after: 1.0.5
@@ -12874,7 +12874,7 @@ snapshots:
postcss-value-parser: 4.2.0
svgo: 2.8.0
- postcss-syntax@0.36.2(postcss-html@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-jsx@0.36.4(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-less@3.1.4)(postcss-markdown@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-scss@2.1.1)(postcss@7.0.39):
+ postcss-syntax@0.36.2(postcss-html@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-jsx@0.36.4)(postcss-less@3.1.4)(postcss-markdown@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-scss@2.1.1)(postcss@7.0.39):
dependencies:
postcss: 7.0.39
optionalDependencies:
@@ -13865,7 +13865,7 @@ snapshots:
postcss-sass: 0.3.5
postcss-scss: 2.1.1
postcss-selector-parser: 3.1.2
- postcss-syntax: 0.36.2(postcss-html@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-jsx@0.36.4(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-less@3.1.4)(postcss-markdown@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-scss@2.1.1)(postcss@7.0.39)
+ postcss-syntax: 0.36.2(postcss-html@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-jsx@0.36.4)(postcss-less@3.1.4)(postcss-markdown@0.36.0(postcss-syntax@0.36.2(postcss@8.4.41))(postcss@7.0.39))(postcss-scss@2.1.1)(postcss@7.0.39)
postcss-value-parser: 3.3.1
resolve-from: 4.0.0
signal-exit: 3.0.7