diff --git a/package.json b/package.json index e3ffe42..46a351b 100644 --- a/package.json +++ b/package.json @@ -31,8 +31,8 @@ "@typescript-eslint/rule-tester": "^6.0.0", "@typescript-eslint/utils": "^6.0.0", "clean-publish": "^3.2.0", - "effector": "^22.0.0", - "effector-react": "^22.0.6", + "effector": "^23", + "effector-react": "^23", "eslint": "^8.0.0", "glob": "^8.0.3", "jest": "^29.0.0", @@ -44,7 +44,7 @@ "vue": "^3.2.45" }, "peerDependencies": { - "effector": "*", + "effector": "^23", "eslint": "7 || 8" }, "dependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b707235..d773984 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,11 +26,11 @@ devDependencies: specifier: ^3.2.0 version: 3.4.5 effector: - specifier: ^22.0.0 - version: 22.3.0 + specifier: ^23 + version: 23.1.0 effector-react: - specifier: ^22.0.6 - version: 22.0.6(effector@22.3.0)(react@17.0.2) + specifier: ^23 + version: 23.1.0(effector@23.1.0)(react@17.0.2) eslint: specifier: ^8.0.0 version: 8.17.0 @@ -1956,19 +1956,20 @@ packages: esutils: 2.0.3 dev: true - /effector-react@22.0.6(effector@22.3.0)(react@17.0.2): - resolution: {integrity: sha512-uzVjrh5S94eMeihu8N8eQvLFnZA56VT00etMVovnSyZxujo0f8gtZZebIYOKyYFkGcYUyfiOHRRzBhYpIfAIhg==} + /effector-react@23.1.0(effector@23.1.0)(react@17.0.2): + resolution: {integrity: sha512-RrCyu45zhxzIwzy6azjgPjXENRM2AM4y3TJF4faj5vN6z0u8ItR9W91wokHu5+BwFj6MKg2NxQkL4r4jWtIRoQ==} engines: {node: '>=11.0.0'} peerDependencies: - effector: ^22.0.2 + effector: ^23.0.0 react: '>=16.8.0 <19.0.0' dependencies: - effector: 22.3.0 + effector: 23.1.0 react: 17.0.2 + use-sync-external-store: 1.2.0(react@17.0.2) dev: true - /effector@22.3.0: - resolution: {integrity: sha512-Nh7IXn8U4emq8YtAZf2+y2Rs6n4W/gjPaNZpZLFOXOIAsRZSNBFjtK1vHTWNKxxmNFZOaZN6XUXdT8FDs0mAdQ==} + /effector@23.1.0: + resolution: {integrity: sha512-PsiNE2UmEnS/xmyshISjMwqqGcUKF0upnA/8o1qXafyfrV1kYkOwhs9fuDfUKIAbgZVSZb+bowymPpfrNu7jFw==} engines: {node: '>=11.0.0'} dev: true @@ -3670,6 +3671,14 @@ packages: punycode: 2.1.1 dev: true + /use-sync-external-store@1.2.0(react@17.0.2): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 17.0.2 + dev: true + /v8-compile-cache@2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true diff --git a/utils/node-type-is.js b/utils/node-type-is.js index 5665b26..344cdc3 100644 --- a/utils/node-type-is.js +++ b/utils/node-type-is.js @@ -1,4 +1,4 @@ -const { ESLintUtils } = require('@typescript-eslint/utils'); +const { ESLintUtils } = require("@typescript-eslint/utils"); function hasType({ node, possibleTypes, context, from }) { try { @@ -24,13 +24,27 @@ const nodeTypeIs = { effect: (opts) => hasType({ ...opts, possibleTypes: ["Effect"], from: "effector" }), store: (opts) => - hasType({ ...opts, possibleTypes: ["Store"], from: "effector" }), + hasType({ + ...opts, + possibleTypes: ["Store", "StoreWritable"], + from: "effector", + }), event: (opts) => - hasType({ ...opts, possibleTypes: ["Event"], from: "effector" }), + hasType({ + ...opts, + possibleTypes: ["Event", "EventCallable"], + from: "effector", + }), unit: (opts) => hasType({ ...opts, - possibleTypes: ["Effect", "Store", "Event"], + possibleTypes: [ + "Effect", + "Store", + "Event", + "EventCallable", + "StoreWritable", + ], from: "effector", }), gate: (opts) => @@ -58,13 +72,27 @@ const nodeTypeIs = { from: "effector", }), store: (opts) => - !hasType({ ...opts, possibleTypes: ["Store"], from: "effector" }), + !hasType({ + ...opts, + possibleTypes: ["Store", "StoreWritable"], + from: "effector", + }), event: (opts) => - !hasType({ ...opts, possibleTypes: ["Event"], from: "effector" }), + !hasType({ + ...opts, + possibleTypes: ["Event", "EventCallable"], + from: "effector", + }), unit: (opts) => !hasType({ ...opts, - possibleTypes: ["Effect", "Store", "Event"], + possibleTypes: [ + "Effect", + "Store", + "Event", + "EventCallable", + "StoreWritable", + ], from: "effector", }), gate: (opts) =>