repos / starfx

supercharged async flow control library.
git clone https://github.com/neurosnap/starfx.git

commit
ec3aa69
parent
a8c1cbb
author
Eric Bower
date
2023-08-28 17:02:38 +0000 UTC
Use redux (#12)

11 files changed,  +61, -75
M npm.ts
M deno.lock
+33, -42
  1@@ -10,7 +10,6 @@
  2     "https://deno.land/std@0.140.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37",
  3     "https://deno.land/std@0.140.0/fs/_util.ts": "0fb24eb4bfebc2c194fb1afdb42b9c3dda12e368f43e8f2321f84fc77d42cb0f",
  4     "https://deno.land/std@0.140.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d",
  5-    "https://deno.land/std@0.140.0/hash/sha256.ts": "803846c7a5a8a5a97f31defeb37d72f519086c880837129934f5d6f72102a8e8",
  6     "https://deno.land/std@0.140.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b",
  7     "https://deno.land/std@0.140.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3",
  8     "https://deno.land/std@0.140.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09",
  9@@ -73,36 +72,39 @@
 10     "https://deno.land/x/code_block_writer@12.0.0/mod.ts": "2c3448060e47c9d08604c8f40dee34343f553f33edcdfebbf648442be33205e5",
 11     "https://deno.land/x/code_block_writer@12.0.0/utils/string_utils.ts": "60cb4ec8bd335bf241ef785ccec51e809d576ff8e8d29da43d2273b69ce2a6ff",
 12     "https://deno.land/x/continuation@0.1.5/mod.ts": "690def2735046367b3e1b4bc6e51b5912f2ed09c41c7df7a55c060f23720ad33",
 13-    "https://deno.land/x/deno_cache@0.4.1/auth_tokens.ts": "5fee7e9155e78cedf3f6ff3efacffdb76ac1a76c86978658d9066d4fb0f7326e",
 14-    "https://deno.land/x/deno_cache@0.4.1/cache.ts": "51f72f4299411193d780faac8c09d4e8cbee951f541121ef75fcc0e94e64c195",
 15-    "https://deno.land/x/deno_cache@0.4.1/deno_dir.ts": "f2a9044ce8c7fe1109004cda6be96bf98b08f478ce77e7a07f866eff1bdd933f",
 16-    "https://deno.land/x/deno_cache@0.4.1/deps.ts": "8974097d6c17e65d9a82d39377ae8af7d94d74c25c0cbb5855d2920e063f2343",
 17-    "https://deno.land/x/deno_cache@0.4.1/dirs.ts": "d2fa473ef490a74f2dcb5abb4b9ab92a48d2b5b6320875df2dee64851fa64aa9",
 18-    "https://deno.land/x/deno_cache@0.4.1/disk_cache.ts": "1f3f5232cba4c56412d93bdb324c624e95d5dd179d0578d2121e3ccdf55539f9",
 19-    "https://deno.land/x/deno_cache@0.4.1/file_fetcher.ts": "07a6c5f8fd94bf50a116278cc6012b4921c70d2251d98ce1c9f3c352135c39f7",
 20-    "https://deno.land/x/deno_cache@0.4.1/http_cache.ts": "f632e0d6ec4a5d61ae3987737a72caf5fcdb93670d21032ddb78df41131360cd",
 21-    "https://deno.land/x/deno_cache@0.4.1/mod.ts": "ef1cda9235a93b89cb175fe648372fc0f785add2a43aa29126567a05e3e36195",
 22-    "https://deno.land/x/deno_cache@0.4.1/util.ts": "8cb686526f4be5205b92c819ca2ce82220aa0a8dd3613ef0913f6dc269dbbcfe",
 23+    "https://deno.land/x/deno_cache@0.5.2/auth_tokens.ts": "5d1d56474c54a9d152e44d43ea17c2e6a398dd1e9682c69811a313567c01ee1e",
 24+    "https://deno.land/x/deno_cache@0.5.2/cache.ts": "92ce8511e1e5c00fdf53a41619aa77d632ea8e0fc711324322e4d5ebf8133911",
 25+    "https://deno.land/x/deno_cache@0.5.2/deno_dir.ts": "1ea355b8ba11c630d076b222b197cfc937dd81e5a4a260938997da99e8ff93a0",
 26+    "https://deno.land/x/deno_cache@0.5.2/deps.ts": "26a75905652510b76e54b6d5ef3cf824d1062031e00782efcd768978419224e7",
 27+    "https://deno.land/x/deno_cache@0.5.2/dirs.ts": "009c6f54e0b610914d6ce9f72f6f6ccfffd2d47a79a19061e0a9eb4253836069",
 28+    "https://deno.land/x/deno_cache@0.5.2/disk_cache.ts": "66a1e604a8d564b6dd0500326cac33d08b561d331036bf7272def80f2f7952aa",
 29+    "https://deno.land/x/deno_cache@0.5.2/file_fetcher.ts": "89616c50b6df73fb04e73d0b7cd99e5f2ed7967386913d65b9e8baa4238501f7",
 30+    "https://deno.land/x/deno_cache@0.5.2/http_cache.ts": "407135eaf2802809ed373c230d57da7ef8dff923c4abf205410b9b99886491fd",
 31+    "https://deno.land/x/deno_cache@0.5.2/lib/deno_cache_dir.generated.js": "18b6526d0c50791a73dd0eb894e99de1ac05ee79dcbd53298ff5b5b6b0757fe6",
 32+    "https://deno.land/x/deno_cache@0.5.2/lib/snippets/deno_cache_dir-77bed54ace8005e0/fs.js": "cbe3a976ed63c72c7cb34ef845c27013033a3b11f9d8d3e2c4aa5dda2c0c7af6",
 33+    "https://deno.land/x/deno_cache@0.5.2/mod.ts": "0b4d071ad095128bdc2b1bc6e5d2095222dcbae08287261690ee9757e6300db6",
 34+    "https://deno.land/x/deno_cache@0.5.2/util.ts": "f3f5a0cfc60051f09162942fb0ee87a0e27b11a12aec4c22076e3006be4cc1e2",
 35     "https://deno.land/x/deno_graph@0.26.0/lib/deno_graph.generated.js": "2f7ca85b2ceb80ec4b3d1b7f3a504956083258610c7b9a1246238c5b7c68f62d",
 36     "https://deno.land/x/deno_graph@0.26.0/lib/loader.ts": "380e37e71d0649eb50176a9786795988fc3c47063a520a54b616d7727b0f8629",
 37     "https://deno.land/x/deno_graph@0.26.0/lib/media_type.ts": "222626d524fa2f9ebcc0ec7c7a7d5dfc74cc401cc46790f7c5e0eab0b0787707",
 38     "https://deno.land/x/deno_graph@0.26.0/lib/snippets/deno_graph-de651bc9c240ed8d/src/deno_apis.js": "41192baaa550a5c6a146280fae358cede917ae16ec4e4315be51bef6631ca892",
 39     "https://deno.land/x/deno_graph@0.26.0/mod.ts": "11131ae166580a1c7fa8506ff553751465a81c263d94443f18f353d0c320bc14",
 40-    "https://deno.land/x/dnt@0.36.0/lib/compiler.ts": "209ad2e1b294f93f87ec02ade9a0821f942d2e524104552d0aa8ff87021050a5",
 41-    "https://deno.land/x/dnt@0.36.0/lib/compiler_transforms.ts": "cbb1fd5948f5ced1aa5c5aed9e45134e2357ce1e7220924c1d7bded30dcd0dd0",
 42-    "https://deno.land/x/dnt@0.36.0/lib/mod.deps.ts": "30367fc68bcd2acf3b7020cf5cdd26f817f7ac9ac35c4bfb6c4551475f91bc3e",
 43-    "https://deno.land/x/dnt@0.36.0/lib/npm_ignore.ts": "b430caa1905b65ae89b119d84857b3ccc3cb783a53fc083d1970e442f791721d",
 44-    "https://deno.land/x/dnt@0.36.0/lib/package_json.ts": "61f35b06e374ed39ca776d29d67df4be7ee809d0bca29a8239687556c6d027c2",
 45-    "https://deno.land/x/dnt@0.36.0/lib/pkg/dnt_wasm.generated.js": "1f21e46f32209d8746fd5c7d3bc8f25c2cbebe1d9da4ef083eca1b621eb72598",
 46-    "https://deno.land/x/dnt@0.36.0/lib/pkg/snippets/dnt-wasm-a15ef721fa5290c5/helpers.js": "a6b95adc943a68d513fe8ed9ec7d260ac466b7a4bced4e942f733e494bb9f1be",
 47-    "https://deno.land/x/dnt@0.36.0/lib/shims.ts": "df1bd4d9a196dca4b2d512b1564fff64ac6c945189a273d706391f87f210d7e6",
 48-    "https://deno.land/x/dnt@0.36.0/lib/test_runner/get_test_runner_code.ts": "4dc7a73a13b027341c0688df2b29a4ef102f287c126f134c33f69f0339b46968",
 49-    "https://deno.land/x/dnt@0.36.0/lib/test_runner/test_runner.ts": "4d0da0500ec427d5f390d9a8d42fb882fbeccc92c92d66b6f2e758606dbd40e6",
 50-    "https://deno.land/x/dnt@0.36.0/lib/transform.deps.ts": "e42f2bdef46d098453bdba19261a67cf90b583f5d868f7fe83113c1380d9b85c",
 51-    "https://deno.land/x/dnt@0.36.0/lib/types.ts": "b8e228b2fac44c2ae902fbb73b1689f6ab889915bd66486c8a85c0c24255f5fb",
 52-    "https://deno.land/x/dnt@0.36.0/lib/utils.ts": "878b7ac7003a10c16e6061aa49dbef9b42bd43174853ebffc9b67ea47eeb11d8",
 53-    "https://deno.land/x/dnt@0.36.0/mod.ts": "670f1820f2115e6b6aa4f79999bc796e30cc0d0b45096b84a4e1db9f62b82984",
 54-    "https://deno.land/x/dnt@0.36.0/transform.ts": "1b127c5f22699c8ab2545b98aeca38c4e5c21405b0f5342ea17e9c46280ed277",
 55+    "https://deno.land/x/dir@1.5.1/data_local_dir/mod.ts": "91eb1c4bfadfbeda30171007bac6d85aadacd43224a5ed721bbe56bc64e9eb66",
 56+    "https://deno.land/x/dnt@0.38.1/lib/compiler.ts": "209ad2e1b294f93f87ec02ade9a0821f942d2e524104552d0aa8ff87021050a5",
 57+    "https://deno.land/x/dnt@0.38.1/lib/compiler_transforms.ts": "f21aba052f5dcf0b0595c734450842855c7f572e96165d3d34f8fed2fc1f7ba1",
 58+    "https://deno.land/x/dnt@0.38.1/lib/mod.deps.ts": "30367fc68bcd2acf3b7020cf5cdd26f817f7ac9ac35c4bfb6c4551475f91bc3e",
 59+    "https://deno.land/x/dnt@0.38.1/lib/npm_ignore.ts": "57fbb7e7b935417d225eec586c6aa240288905eb095847d3f6a88e290209df4e",
 60+    "https://deno.land/x/dnt@0.38.1/lib/package_json.ts": "61f35b06e374ed39ca776d29d67df4be7ee809d0bca29a8239687556c6d027c2",
 61+    "https://deno.land/x/dnt@0.38.1/lib/pkg/dnt_wasm.generated.js": "cfb352ae839865f5698c9b35099d4c783510195a1e3c9f9b04d94fac86394ed9",
 62+    "https://deno.land/x/dnt@0.38.1/lib/pkg/snippets/dnt-wasm-a15ef721fa5290c5/helpers.js": "45f74f00472b3a399bc16e5dc056966b55dcdd8fa2bd61505c6dfd2f5d33b9f4",
 63+    "https://deno.land/x/dnt@0.38.1/lib/shims.ts": "df1bd4d9a196dca4b2d512b1564fff64ac6c945189a273d706391f87f210d7e6",
 64+    "https://deno.land/x/dnt@0.38.1/lib/test_runner/get_test_runner_code.ts": "4dc7a73a13b027341c0688df2b29a4ef102f287c126f134c33f69f0339b46968",
 65+    "https://deno.land/x/dnt@0.38.1/lib/test_runner/test_runner.ts": "4d0da0500ec427d5f390d9a8d42fb882fbeccc92c92d66b6f2e758606dbd40e6",
 66+    "https://deno.land/x/dnt@0.38.1/lib/transform.deps.ts": "e42f2bdef46d098453bdba19261a67cf90b583f5d868f7fe83113c1380d9b85c",
 67+    "https://deno.land/x/dnt@0.38.1/lib/types.ts": "b8e228b2fac44c2ae902fbb73b1689f6ab889915bd66486c8a85c0c24255f5fb",
 68+    "https://deno.land/x/dnt@0.38.1/lib/utils.ts": "878b7ac7003a10c16e6061aa49dbef9b42bd43174853ebffc9b67ea47eeb11d8",
 69+    "https://deno.land/x/dnt@0.38.1/mod.ts": "b13349fe77847cf58e26b40bcd58797a8cec5d71b31a1ca567071329c8489de1",
 70+    "https://deno.land/x/dnt@0.38.1/transform.ts": "f68743a14cf9bf53bfc9c81073871d69d447a7f9e3453e0447ca2fb78926bb1d",
 71     "https://deno.land/x/effection@3.0.0-alpha.13/lib/abort-signal.ts": "31224b5f61f1ef58a2acf72bfc1cb9c9bf589f15c263b6555eb06f1b49f77b54",
 72     "https://deno.land/x/effection@3.0.0-alpha.13/lib/all.ts": "acadab8258228e290192f587c8c532428f9093337a9b7688ae55cbc2cacd5caf",
 73     "https://deno.land/x/effection@3.0.0-alpha.13/lib/async.ts": "3e007ef245abb240de07029f523c7ef74b9bc383db5716f89d261a5150295777",
 74@@ -144,17 +146,19 @@
 75     "https://deno.land/x/ts_morph@18.0.0/common/mod.ts": "01985d2ee7da8d1caee318a9d07664774fbee4e31602bc2bb6bb62c3489555ed",
 76     "https://deno.land/x/ts_morph@18.0.0/common/ts_morph_common.js": "845671ca951073400ce142f8acefa2d39ea9a51e29ca80928642f3f8cf2b7700",
 77     "https://deno.land/x/ts_morph@18.0.0/common/typescript.js": "d5c598b6a2db2202d0428fca5fd79fc9a301a71880831a805d778797d2413c59",
 78-    "https://esm.sh/@reduxjs/toolkit@2.0.0-beta.1?pin=v122": "2d1dfaafccc992b0a1b1a3ef1dbc7b310d9dccf48de5877510fddcfc38bf8528",
 79+    "https://deno.land/x/wasmbuild@0.15.0/cache.ts": "89eea5f3ce6035a1164b3e655c95f21300498920575ade23161421f5b01967f4",
 80+    "https://deno.land/x/wasmbuild@0.15.0/loader.ts": "d98d195a715f823151cbc8baa3f32127337628379a02d9eb2a3c5902dbccfc02",
 81     "https://esm.sh/immer@10.0.2?pin=v122": "7ac87b9c76176de8384a67f8cd93d44f75be1a7496c92707252acb669595c393",
 82     "https://esm.sh/react-redux@8.0.5?pin=v122": "fa98e94dc8803fb84bee9eb08a13f11833f634d381003247207682823887dc51",
 83     "https://esm.sh/react@18.2.0?pin=v122": "8950a34a030620fce8349d6bd3913b3bdb186c5ec7968fa5ba4d054e22d78e6c",
 84     "https://esm.sh/redux-batched-actions@0.5.0?pin=v122": "bb9ba7abde4cbba4352e5d25cf8407795f962e6f7c47b59657ee91834fd6744c",
 85+    "https://esm.sh/redux@4.2.1?pin=v122": "94f9684721d9f8f48f86778e03f237c00d771283a8533a1e63000e7539f3a303",
 86     "https://esm.sh/reselect@4.1.8?pin=v122": "486407fec8db8f0c87ba540ff6457dbec3c8ec8fa93a4845383bc8cdb33c6008",
 87     "https://esm.sh/robodux@15.0.1?pin=v122": "51ac2aa6f6fbaac2795f3d34117ba7e77c37e9e3e48bf667a994f6851399bf76",
 88     "https://esm.sh/stable/react@18.2.0/denonext/react.mjs": "3c4f23bcfc53b256fcfaf6f834fa9f584c3bb7be667b2682c6cb6ba8ef88f8e6",
 89     "https://esm.sh/v122/@babel/runtime@7.22.5/denonext/helpers/esm/extends.js": "3955a0ef35db01cd4efff831a9027924f90fa7d55621cd2b6b8519283e573c21",
 90+    "https://esm.sh/v122/@babel/runtime@7.22.5/denonext/helpers/esm/objectSpread2.js": "39b25571151291cf2778cd3bb118c5336f7682f878f59fbcf79e2684ae55b194",
 91     "https://esm.sh/v122/@babel/runtime@7.22.5/denonext/helpers/esm/objectWithoutPropertiesLoose.js": "fae2539db9a813ad1aab88d10a58d81d9403d242fb3f405e9070fc01c2d8808b",
 92-    "https://esm.sh/v122/@reduxjs/toolkit@2.0.0-beta.1/denonext/toolkit.mjs": "c5848f5c2d3fa361b8055ee191060a2fdcf11185060617524399290664a71337",
 93     "https://esm.sh/v122/hoist-non-react-statics@3.3.2/denonext/hoist-non-react-statics.mjs": "41018d0142e45a133637f9a3e4da6b8babc22cab2b3ec05cfb202a727da5a0cb",
 94     "https://esm.sh/v122/immer@10.0.2/denonext/immer.mjs": "694ebf85b769db4d026ec4b9655a8caaa6ce51776d857df7cedf3fa4774d5297",
 95     "https://esm.sh/v122/immer@9.0.21/denonext/immer.mjs": "3819c7f2cc0f19de974517bd2421b80f800a9bc8bcdb87e3b3aaf022640bd7d6",
 96@@ -163,26 +167,13 @@
 97     "https://esm.sh/v122/react-is@18.2.0/denonext/react-is.mjs": "07ca6a7473ccbb06466e805c8253ade80bd664a0f486cf020864c22c27a60479",
 98     "https://esm.sh/v122/react-redux@8.0.5/denonext/react-redux.mjs": "eeba4c3485907ed356f889ce071f63fde42e8397f14dede20d9732e5be188294",
 99     "https://esm.sh/v122/redux-batched-actions@0.5.0/denonext/redux-batched-actions.mjs": "d115abd3bef58a81bb57be5ec013377fa841e9f6cea152f2851560a8e23a032f",
100-    "https://esm.sh/v122/redux-thunk@3.0.0-beta.0/denonext/redux-thunk.mjs": "52d6722a38e72ff206d7ddb6df808ebd33f63444f22aec8dc2c805a6fd309987",
101-    "https://esm.sh/v122/redux@5.0.0-beta.0/denonext/redux.mjs": "72c133fdb6fca2b20e15f0cd7a7cb659b70b0537800887805235d547af55f951",
102+    "https://esm.sh/v122/redux@4.2.1/denonext/redux.mjs": "8269d22284abebf2be1bbbbbcc53d1842b7858102f1f81e7df1d0144b688f5a4",
103     "https://esm.sh/v122/reselect@4.1.8/denonext/reselect.mjs": "f8199f9e44453876a9ea6b5d1caedc0fe1ae789a73217543b1e6193e1edc0db7",
104-    "https://esm.sh/v122/reselect@5.0.0-alpha.2/denonext/reselect.mjs": "ea5f9df4e9d15dfce4c7751ccf276ffcce2974a53c021f4976160164a991c28c",
105     "https://esm.sh/v122/robodux@15.0.1/denonext/robodux.mjs": "31ba627f958ded9bdcaa7db1bd9bd57f610bb0cbefd871e1286e578f9a7c719a",
106     "https://esm.sh/v122/scheduler@0.23.0/denonext/scheduler.mjs": "69005eb830c0a486d51875e52d1a85443dc8d32b0b6ad1e3f06baceb55ed4cba",
107     "https://esm.sh/v122/use-sync-external-store@1.2.0/denonext/cjs/use-sync-external-store-shim.production.min.js": "5be7011cae1c9c79ad30989c95370a6d97083e01bb98ba76a333347e03af85db",
108     "https://esm.sh/v122/use-sync-external-store@1.2.0/denonext/cjs/use-sync-external-store-shim/with-selector.production.min.js": "5fdb24919bfa6f0c749ce7dab27e1f3a9c4d246ec4727de5ebfbbd7640c1ee58",
109     "https://esm.sh/v122/use-sync-external-store@1.2.0/denonext/shim.js": "1f6aef1d1752cc8267b0252931ddd0bf92df44016ab573b0decaf2c8935cb01b",
110     "https://esm.sh/v122/use-sync-external-store@1.2.0/denonext/shim/with-selector.js": "4e787e36c6f83276e81b7818e316658e66c392ad69c60db1fbf87073d990f28c"
111-  },
112-  "npm": {
113-    "specifiers": {
114-      "@types/node": "@types/node@18.16.19"
115-    },
116-    "packages": {
117-      "@types/node@18.16.19": {
118-        "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==",
119-        "dependencies": {}
120-      }
121-    }
122   }
123 }
M deps.ts
+4, -5
 1@@ -49,13 +49,12 @@ export type {
 2   Action,
 3   Reducer,
 4   ReducersMapObject,
 5-  UnknownAction,
 6-} from "https://esm.sh/@reduxjs/toolkit@2.0.0-beta.1?pin=v122";
 7+} from "https://esm.sh/redux@4.2.1?pin=v122";
 8 export {
 9+  applyMiddleware,
10   combineReducers,
11-  configureStore,
12-  Tuple,
13-} from "https://esm.sh/@reduxjs/toolkit@2.0.0-beta.1?pin=v122";
14+  legacy_createStore as createStore,
15+} from "https://esm.sh/redux@4.2.1?pin=v122";
16 export type { BatchAction } from "https://esm.sh/redux-batched-actions@0.5.0?pin=v122";
17 export {
18   BATCH,
M npm.ts
+3, -3
 1@@ -55,9 +55,9 @@ async function main() {
 2         name: "robodux",
 3         version: "^15.0.1",
 4       },
 5-      "https://esm.sh/@reduxjs/toolkit@2.0.0-beta.1?pin=v122": {
 6-        name: "@reduxjs/toolkit",
 7-        version: "2.0.0-beta.1",
 8+      "https://esm.sh/redux@4.2.1?pin=v122": {
 9+        name: "redux",
10+        version: "^4.2.1",
11       },
12       "https://esm.sh/redux-batched-actions@0.5.0?pin=v122": {
13         name: "redux-batched-actions",
M redux/fx.ts
+3, -3
 1@@ -1,4 +1,4 @@
 2-import { Action, Channel, Operation, UnknownAction } from "../deps.ts";
 3+import { Action, Channel, Operation } from "../deps.ts";
 4 import { createChannel, createContext, spawn } from "../deps.ts";
 5 import { call, parallel } from "../fx/mod.ts";
 6 import { ActionPattern, matcher } from "../matcher.ts";
 7@@ -17,8 +17,8 @@ export function* emit({
 8   channel,
 9   action,
10 }: {
11-  channel: Operation<Channel<UnknownAction, void>>;
12-  action: UnknownAction | UnknownAction[];
13+  channel: Operation<Channel<AnyAction, void>>;
14+  action: AnyAction | AnyAction[];
15 }) {
16   const { input } = yield* channel;
17   if (Array.isArray(action)) {
M redux/middleware.ts
+3, -3
 1@@ -4,16 +4,16 @@ import {
 2   BatchAction,
 3   ReducersMapObject,
 4   Scope,
 5-  UnknownAction,
 6 } from "../deps.ts";
 7 import { combineReducers, createScope, enableBatching } from "../deps.ts";
 8 import { parallel } from "../fx/mod.ts";
 9+import type { AnyAction } from "../types.ts";
10 
11 import { ActionContext, emit, StoreContext } from "./fx.ts";
12 import { reducers as queryReducers } from "./query.ts";
13 import type { StoreLike } from "./types.ts";
14 
15-function* send(action: UnknownAction) {
16+function* send(action: AnyAction) {
17   if (action.type === BATCH) {
18     const actions = action.payload as BatchAction[];
19     const group = yield* parallel(
20@@ -51,7 +51,7 @@ export function createFxMiddleware(initScope?: Scope) {
21     return (next: (a: unknown) => unknown) => (action: unknown) => {
22       const result = next(action); // hit reducers
23       scope.run(function* () {
24-        yield* send(action as any);
25+        yield* send(action as AnyAction);
26       });
27       return result;
28     };
M redux/mod.ts
+1, -1
1@@ -3,4 +3,4 @@ export * from "./query.ts";
2 export * from "./middleware.ts";
3 export * from "./types.ts";
4 export type { ActionWPayload, AnyAction, AnyState } from "../types.ts";
5-export { configureStore, createSelector } from "../deps.ts";
6+export { createSelector } from "../deps.ts";
M redux/put.test.ts
+5, -5
 1@@ -2,7 +2,7 @@ import { describe, expect, it } from "../test.ts";
 2 import { sleep, spawn } from "../deps.ts";
 3 
 4 import { ActionContext, put, take } from "./mod.ts";
 5-import { createStore } from "./util.ts";
 6+import { createTestStore } from "./util.ts";
 7 
 8 const putTests = describe("put()");
 9 
10@@ -28,7 +28,7 @@ it(putTests, "should send actions through channel", async () => {
11     });
12   }
13 
14-  const { fx } = createStore();
15+  const { fx } = createTestStore();
16   await fx.run(() => genFn("arg"));
17 
18   const expected = ["arg", "2"];
19@@ -58,7 +58,7 @@ it(putTests, "should handle nested puts", async () => {
20     yield* spawn(genA);
21   }
22 
23-  const { fx } = createStore();
24+  const { fx } = createTestStore();
25   await fx.run(root);
26 
27   const expected = ["put b", "put a"];
28@@ -76,7 +76,7 @@ it(
29       yield* sleep(0);
30     }
31 
32-    const { fx } = createStore();
33+    const { fx } = createTestStore();
34     await fx.run(root);
35     expect(true).toBe(true);
36   },
37@@ -104,7 +104,7 @@ it(
38       yield* tsk;
39     }
40 
41-    const { fx } = createStore();
42+    const { fx } = createTestStore();
43     await fx.run(root);
44     const expected = ["didn't get missed"];
45     expect(actual).toEqual(expected);
M redux/take-helper.test.ts
+2, -2
 1@@ -2,7 +2,7 @@ import { describe, expect, it } from "../test.ts";
 2 import type { AnyAction } from "../types.ts";
 3 
 4 import { take, takeEvery } from "./mod.ts";
 5-import { createStore } from "./util.ts";
 6+import { createTestStore } from "./util.ts";
 7 
 8 const testEvery = describe("takeEvery()");
 9 
10@@ -23,7 +23,7 @@ it(testEvery, "should work", async () => {
11     actual.push([arg1, arg2, action.payload]);
12   }
13 
14-  const { store, fx } = createStore();
15+  const { store, fx } = createTestStore();
16   const task = fx.run(root);
17 
18   for (let i = 1; i <= loop / 2; i += 1) {
M redux/take.test.ts
+3, -3
 1@@ -3,7 +3,7 @@ import { sleep, spawn } from "../deps.ts";
 2 import type { AnyAction } from "../types.ts";
 3 
 4 import { put, take } from "./mod.ts";
 5-import { createStore } from "./util.ts";
 6+import { createTestStore } from "./util.ts";
 7 
 8 const takeTests = describe("take()");
 9 
10@@ -26,7 +26,7 @@ it(
11       actual.push(yield* take("action-1"));
12     }
13 
14-    const { fx } = createStore();
15+    const { fx } = createTestStore();
16     await fx.run(root);
17 
18     expect(actual).toEqual([
19@@ -86,7 +86,7 @@ it(takeTests, "take from default channel", async () => {
20     }
21   }
22 
23-  const { fx } = createStore();
24+  const { fx } = createTestStore();
25   await fx.run(genFn);
26 
27   const expected = [
M redux/util.ts
+3, -7
 1@@ -1,16 +1,12 @@
 2-import { configureStore, Tuple } from "../deps.ts";
 3+import { applyMiddleware, createStore } from "../deps.ts";
 4 import { prepareStore } from "./middleware.ts";
 5 
 6-export const createStore = () => {
 7+export const createTestStore = () => {
 8   const { reducer, fx } = prepareStore({
 9     reducers: {
10       def: (s = null, _) => s,
11     },
12   });
13-  const store = configureStore({
14-    reducer,
15-    middleware: new Tuple(fx.middleware as any),
16-    preloadedState: {},
17-  });
18+  const store = createStore(reducer, {}, applyMiddleware(fx.middleware as any));
19   return { store, fx };
20 };
M test.ts
+1, -1
1@@ -1,4 +1,4 @@
2-export { build, emptyDir } from "https://deno.land/x/dnt@0.36.0/mod.ts";
3+export { build, emptyDir } from "https://deno.land/x/dnt@0.38.1/mod.ts";
4 export { assert } from "https://deno.land/std@0.187.0/testing/asserts.ts";
5 export {
6   beforeEach,