soseki 0.0.5 → 0.0.7

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.
Files changed (352) hide show
  1. package/LICENSE +21 -0
  2. package/dist/src/components/browser-router.d.ts +19 -0
  3. package/dist/src/components/browser-router.d.ts.map +1 -0
  4. package/dist/src/components/browser-router.jsx +15 -0
  5. package/dist/src/components/outlet.d.ts +8 -0
  6. package/dist/src/components/outlet.d.ts.map +1 -0
  7. package/dist/src/components/outlet.jsx +15 -0
  8. package/dist/src/components/router.d.ts +21 -0
  9. package/dist/src/components/router.d.ts.map +1 -0
  10. package/dist/src/components/router.jsx +138 -0
  11. package/dist/src/contexts/route-context.d.ts +19 -0
  12. package/dist/src/contexts/route-context.d.ts.map +1 -0
  13. package/dist/src/contexts/route-context.js +6 -0
  14. package/dist/src/contexts/router-context.d.ts +55 -0
  15. package/dist/src/contexts/router-context.d.ts.map +1 -0
  16. package/dist/src/contexts/router-context.js +8 -0
  17. package/dist/src/core/_compare-route-paths.d.ts +11 -0
  18. package/dist/src/core/_compare-route-paths.d.ts.map +1 -0
  19. package/dist/src/core/_compare-route-paths.js +92 -0
  20. package/dist/src/core/_match-route-path.d.ts +22 -0
  21. package/dist/src/core/_match-route-path.d.ts.map +1 -0
  22. package/dist/src/core/_match-route-path.js +26 -0
  23. package/dist/src/core/_process-routes.d.ts +14 -0
  24. package/dist/src/core/_process-routes.d.ts.map +1 -0
  25. package/dist/src/core/_process-routes.js +45 -0
  26. package/dist/src/core/_singleton.d.ts +12 -0
  27. package/dist/src/core/_singleton.d.ts.map +1 -0
  28. package/dist/src/core/_singleton.js +18 -0
  29. package/dist/src/core/_unreachable.d.ts +16 -0
  30. package/dist/src/core/_unreachable.d.ts.map +1 -0
  31. package/dist/src/core/_unreachable.js +8 -0
  32. package/dist/src/core/_valibot.d.ts +25 -0
  33. package/dist/src/core/_valibot.d.ts.map +1 -0
  34. package/dist/src/core/_valibot.js +30 -0
  35. package/dist/src/core/errors.d.ts +182 -0
  36. package/dist/src/core/errors.d.ts.map +1 -0
  37. package/dist/src/core/errors.js +166 -0
  38. package/dist/src/core/expect-history-entry.d.ts +59 -0
  39. package/dist/src/core/expect-history-entry.d.ts.map +1 -0
  40. package/dist/src/core/expect-history-entry.js +42 -0
  41. package/dist/src/core/form-data-to-html-form-element.d.ts +11 -0
  42. package/dist/src/core/form-data-to-html-form-element.d.ts.map +1 -0
  43. package/dist/src/core/form-data-to-html-form-element.js +31 -0
  44. package/dist/src/core/history-entry-id-schema.d.ts +17 -0
  45. package/dist/src/core/history-entry-id-schema.d.ts.map +1 -0
  46. package/dist/src/core/history-entry-id-schema.js +9 -0
  47. package/dist/src/core/history-entry-url-schema.d.ts +18 -0
  48. package/dist/src/core/history-entry-url-schema.d.ts.map +1 -0
  49. package/dist/src/core/history-entry-url-schema.js +20 -0
  50. package/dist/src/core/init-loaders.d.ts +28 -0
  51. package/dist/src/core/init-loaders.d.ts.map +1 -0
  52. package/dist/src/core/init-loaders.js +30 -0
  53. package/dist/src/core/match-routes.d.ts +28 -0
  54. package/dist/src/core/match-routes.d.ts.map +1 -0
  55. package/dist/src/core/match-routes.js +31 -0
  56. package/dist/src/core/readonly-form-data.types.d.ts +74 -0
  57. package/dist/src/core/readonly-form-data.types.d.ts.map +1 -0
  58. package/dist/src/core/readonly-url.types.d.ts +164 -0
  59. package/dist/src/core/readonly-url.types.d.ts.map +1 -0
  60. package/dist/src/core/redirect-response.d.ts +37 -0
  61. package/dist/src/core/redirect-response.d.ts.map +1 -0
  62. package/dist/src/core/redirect-response.js +19 -0
  63. package/dist/src/core/route-path.d.ts +57 -0
  64. package/dist/src/core/route-path.d.ts.map +1 -0
  65. package/dist/src/core/route-path.js +93 -0
  66. package/dist/src/core/route-request.d.ts +149 -0
  67. package/dist/src/core/route-request.d.ts.map +1 -0
  68. package/dist/src/core/route-request.js +41 -0
  69. package/dist/src/core/route.types.d.ts +296 -0
  70. package/dist/src/core/route.types.d.ts.map +1 -0
  71. package/dist/src/core/start-action.d.ts +53 -0
  72. package/dist/src/core/start-action.d.ts.map +1 -0
  73. package/dist/src/core/start-action.js +95 -0
  74. package/dist/src/core/start-loaders.d.ts +63 -0
  75. package/dist/src/core/start-loaders.d.ts.map +1 -0
  76. package/dist/src/core/start-loaders.js +138 -0
  77. package/dist/{core.d.ts → src/core.d.ts} +7 -11
  78. package/dist/src/core.d.ts.map +1 -0
  79. package/dist/{core.js → src/core.js} +2 -4
  80. package/dist/src/engines/engine.types.d.ts +216 -0
  81. package/dist/src/engines/engine.types.d.ts.map +1 -0
  82. package/dist/src/engines/navigation-api-engine.d.ts +50 -0
  83. package/dist/src/engines/navigation-api-engine.d.ts.map +1 -0
  84. package/dist/src/engines/navigation-api-engine.js +411 -0
  85. package/dist/src/engines.d.ts +4 -0
  86. package/dist/src/engines.d.ts.map +1 -0
  87. package/dist/src/engines.js +1 -0
  88. package/dist/src/hooks/_use-singleton.d.ts +11 -0
  89. package/dist/src/hooks/_use-singleton.d.ts.map +1 -0
  90. package/dist/src/hooks/_use-singleton.js +26 -0
  91. package/dist/src/hooks/use-action-data.d.ts +17 -0
  92. package/dist/src/hooks/use-action-data.d.ts.map +1 -0
  93. package/dist/src/hooks/use-action-data.js +16 -0
  94. package/dist/src/hooks/use-form-action.d.ts +7 -0
  95. package/dist/src/hooks/use-form-action.d.ts.map +1 -0
  96. package/dist/src/hooks/use-form-action.js +9 -0
  97. package/dist/src/hooks/use-loader-data.d.ts +9 -0
  98. package/dist/src/hooks/use-loader-data.d.ts.map +1 -0
  99. package/dist/src/hooks/use-loader-data.js +20 -0
  100. package/dist/src/hooks/use-navigate.d.ts +53 -0
  101. package/dist/src/hooks/use-navigate.d.ts.map +1 -0
  102. package/dist/src/hooks/use-navigate.js +43 -0
  103. package/dist/{hooks → src/hooks}/use-params.d.ts +2 -2
  104. package/dist/src/hooks/use-params.d.ts.map +1 -0
  105. package/dist/{hooks → src/hooks}/use-params.js +1 -1
  106. package/dist/src/hooks/use-route-context.d.ts +10 -0
  107. package/dist/src/hooks/use-route-context.d.ts.map +1 -0
  108. package/dist/src/hooks/use-route-context.js +17 -0
  109. package/dist/src/hooks/use-router-context.d.ts +12 -0
  110. package/dist/src/hooks/use-router-context.d.ts.map +1 -0
  111. package/dist/src/hooks/use-router-context.js +20 -0
  112. package/dist/src/hooks/use-submit.d.ts +59 -0
  113. package/dist/src/hooks/use-submit.d.ts.map +1 -0
  114. package/dist/src/hooks/use-submit.js +38 -0
  115. package/dist/src/soseki.d.ts +31 -0
  116. package/dist/src/soseki.d.ts.map +1 -0
  117. package/dist/src/soseki.js +12 -0
  118. package/dist/src/utils/redirect.d.ts +11 -0
  119. package/dist/src/utils/redirect.d.ts.map +1 -0
  120. package/dist/src/utils/redirect.js +12 -0
  121. package/package.json +47 -40
  122. package/src/components/browser-router.tsx +8 -11
  123. package/src/components/outlet.tsx +3 -2
  124. package/src/components/router.tsx +139 -145
  125. package/src/contexts/route-context.ts +6 -5
  126. package/src/contexts/router-context.ts +36 -19
  127. package/src/core/_compare-route-paths.ts +48 -34
  128. package/src/core/_match-route-path.ts +21 -15
  129. package/src/core/_process-routes.ts +44 -46
  130. package/src/core/_singleton.ts +13 -38
  131. package/src/core/_unreachable.ts +12 -7
  132. package/src/core/_valibot.ts +19 -116
  133. package/src/core/errors.ts +150 -495
  134. package/src/core/expect-history-entry.ts +40 -41
  135. package/src/core/form-data-to-html-form-element.ts +37 -0
  136. package/src/core/history-entry-id-schema.ts +6 -11
  137. package/src/core/history-entry-url-schema.ts +25 -18
  138. package/src/core/init-loaders.ts +35 -57
  139. package/src/core/match-routes.ts +33 -65
  140. package/src/core/readonly-form-data.types.ts +48 -28
  141. package/src/core/readonly-url.types.ts +57 -28
  142. package/src/core/redirect-response.ts +26 -15
  143. package/src/core/route-path.ts +114 -0
  144. package/src/core/route-request.ts +144 -32
  145. package/src/core/route.types.ts +250 -226
  146. package/src/core/start-action.ts +164 -0
  147. package/src/core/start-loaders.ts +190 -212
  148. package/src/core.ts +8 -15
  149. package/src/engines/engine.types.ts +204 -166
  150. package/src/engines/navigation-api-engine.ts +332 -233
  151. package/src/engines.ts +4 -0
  152. package/src/hooks/_use-singleton.ts +30 -0
  153. package/src/hooks/use-action-data.ts +21 -26
  154. package/src/hooks/use-form-action.ts +4 -5
  155. package/src/hooks/use-loader-data.ts +16 -18
  156. package/src/hooks/use-navigate.ts +69 -28
  157. package/src/hooks/use-params.ts +4 -4
  158. package/src/hooks/use-route-context.ts +20 -0
  159. package/src/hooks/use-router-context.ts +25 -0
  160. package/src/hooks/use-submit.ts +48 -53
  161. package/src/soseki.ts +27 -34
  162. package/src/utils/redirect.ts +5 -5
  163. package/dist/components/action-id.d.ts +0 -19
  164. package/dist/components/action-id.d.ts.map +0 -1
  165. package/dist/components/action-id.jsx +0 -14
  166. package/dist/components/browser-router.d.ts +0 -17
  167. package/dist/components/browser-router.d.ts.map +0 -1
  168. package/dist/components/browser-router.jsx +0 -13
  169. package/dist/components/hidden-input.d.ts +0 -20
  170. package/dist/components/hidden-input.d.ts.map +0 -1
  171. package/dist/components/hidden-input.jsx +0 -8
  172. package/dist/components/outlet.d.ts +0 -8
  173. package/dist/components/outlet.d.ts.map +0 -1
  174. package/dist/components/outlet.jsx +0 -15
  175. package/dist/components/router.d.ts +0 -23
  176. package/dist/components/router.d.ts.map +0 -1
  177. package/dist/components/router.jsx +0 -128
  178. package/dist/contexts/route-context.d.ts +0 -19
  179. package/dist/contexts/route-context.d.ts.map +0 -1
  180. package/dist/contexts/route-context.js +0 -6
  181. package/dist/contexts/router-context.d.ts +0 -46
  182. package/dist/contexts/router-context.d.ts.map +0 -1
  183. package/dist/contexts/router-context.js +0 -8
  184. package/dist/core/_action-id-registry.d.ts +0 -10
  185. package/dist/core/_action-id-registry.d.ts.map +0 -1
  186. package/dist/core/_action-id-registry.js +0 -8
  187. package/dist/core/_capture-stack-trace.d.ts +0 -8
  188. package/dist/core/_capture-stack-trace.d.ts.map +0 -1
  189. package/dist/core/_capture-stack-trace.js +0 -12
  190. package/dist/core/_compare-route-paths.d.ts +0 -11
  191. package/dist/core/_compare-route-paths.d.ts.map +0 -1
  192. package/dist/core/_compare-route-paths.js +0 -80
  193. package/dist/core/_create-html-form-element-form-form-data.d.ts +0 -9
  194. package/dist/core/_create-html-form-element-form-form-data.d.ts.map +0 -1
  195. package/dist/core/_create-html-form-element-form-form-data.js +0 -27
  196. package/dist/core/_encode-pathname.d.ts +0 -10
  197. package/dist/core/_encode-pathname.d.ts.map +0 -1
  198. package/dist/core/_encode-pathname.js +0 -16
  199. package/dist/core/_is-error.d.ts +0 -3
  200. package/dist/core/_is-error.d.ts.map +0 -1
  201. package/dist/core/_is-error.js +0 -13
  202. package/dist/core/_is-promise-like.d.ts +0 -8
  203. package/dist/core/_is-promise-like.d.ts.map +0 -1
  204. package/dist/core/_is-promise-like.js +0 -12
  205. package/dist/core/_match-route-path.d.ts +0 -19
  206. package/dist/core/_match-route-path.d.ts.map +0 -1
  207. package/dist/core/_match-route-path.js +0 -22
  208. package/dist/core/_process-routes.d.ts +0 -9
  209. package/dist/core/_process-routes.d.ts.map +0 -1
  210. package/dist/core/_process-routes.js +0 -47
  211. package/dist/core/_singleton.d.ts +0 -18
  212. package/dist/core/_singleton.d.ts.map +0 -1
  213. package/dist/core/_singleton.js +0 -37
  214. package/dist/core/_unreachable.d.ts +0 -12
  215. package/dist/core/_unreachable.d.ts.map +0 -1
  216. package/dist/core/_unreachable.js +0 -8
  217. package/dist/core/_use-singleton.d.ts +0 -11
  218. package/dist/core/_use-singleton.d.ts.map +0 -1
  219. package/dist/core/_use-singleton.js +0 -21
  220. package/dist/core/_valibot.d.ts +0 -52
  221. package/dist/core/_valibot.d.ts.map +0 -1
  222. package/dist/core/_valibot.js +0 -107
  223. package/dist/core/_weak-id-registry.d.ts +0 -76
  224. package/dist/core/_weak-id-registry.d.ts.map +0 -1
  225. package/dist/core/_weak-id-registry.js +0 -67
  226. package/dist/core/constants.d.ts +0 -5
  227. package/dist/core/constants.d.ts.map +0 -1
  228. package/dist/core/constants.js +0 -4
  229. package/dist/core/data-map.types.d.ts +0 -23
  230. package/dist/core/data-map.types.d.ts.map +0 -1
  231. package/dist/core/data-map.types.js +0 -1
  232. package/dist/core/data-store.types.d.ts +0 -22
  233. package/dist/core/data-store.types.d.ts.map +0 -1
  234. package/dist/core/data-store.types.js +0 -1
  235. package/dist/core/deferred-promise.d.ts +0 -203
  236. package/dist/core/deferred-promise.d.ts.map +0 -1
  237. package/dist/core/deferred-promise.js +0 -200
  238. package/dist/core/errors.d.ts +0 -303
  239. package/dist/core/errors.d.ts.map +0 -1
  240. package/dist/core/errors.js +0 -400
  241. package/dist/core/expect-history-entry.d.ts +0 -52
  242. package/dist/core/expect-history-entry.d.ts.map +0 -1
  243. package/dist/core/expect-history-entry.js +0 -38
  244. package/dist/core/history-entry-id-schema.d.ts +0 -17
  245. package/dist/core/history-entry-id-schema.d.ts.map +0 -1
  246. package/dist/core/history-entry-id-schema.js +0 -9
  247. package/dist/core/history-entry-url-schema.d.ts +0 -20
  248. package/dist/core/history-entry-url-schema.d.ts.map +0 -1
  249. package/dist/core/history-entry-url-schema.js +0 -16
  250. package/dist/core/init-loaders.d.ts +0 -37
  251. package/dist/core/init-loaders.d.ts.map +0 -1
  252. package/dist/core/init-loaders.js +0 -38
  253. package/dist/core/match-routes.d.ts +0 -31
  254. package/dist/core/match-routes.d.ts.map +0 -1
  255. package/dist/core/match-routes.js +0 -54
  256. package/dist/core/readonly-form-data.types.d.ts +0 -32
  257. package/dist/core/readonly-form-data.types.d.ts.map +0 -1
  258. package/dist/core/readonly-url.types.d.ts +0 -135
  259. package/dist/core/readonly-url.types.d.ts.map +0 -1
  260. package/dist/core/redirect-response.d.ts +0 -29
  261. package/dist/core/redirect-response.d.ts.map +0 -1
  262. package/dist/core/redirect-response.js +0 -17
  263. package/dist/core/route-request.d.ts +0 -52
  264. package/dist/core/route-request.d.ts.map +0 -1
  265. package/dist/core/route-request.js +0 -26
  266. package/dist/core/route.types.d.ts +0 -309
  267. package/dist/core/route.types.d.ts.map +0 -1
  268. package/dist/core/start-actions.d.ts +0 -60
  269. package/dist/core/start-actions.d.ts.map +0 -1
  270. package/dist/core/start-actions.js +0 -186
  271. package/dist/core/start-loaders.d.ts +0 -69
  272. package/dist/core/start-loaders.d.ts.map +0 -1
  273. package/dist/core/start-loaders.js +0 -154
  274. package/dist/core.d.ts.map +0 -1
  275. package/dist/engines/engine.types.d.ts +0 -190
  276. package/dist/engines/engine.types.d.ts.map +0 -1
  277. package/dist/engines/navigation-api-engine.d.ts +0 -48
  278. package/dist/engines/navigation-api-engine.d.ts.map +0 -1
  279. package/dist/engines/navigation-api-engine.js +0 -332
  280. package/dist/hooks/_use-route-context.d.ts +0 -10
  281. package/dist/hooks/_use-route-context.d.ts.map +0 -1
  282. package/dist/hooks/_use-route-context.js +0 -17
  283. package/dist/hooks/_use-router-context.d.ts +0 -10
  284. package/dist/hooks/_use-router-context.d.ts.map +0 -1
  285. package/dist/hooks/_use-router-context.js +0 -18
  286. package/dist/hooks/use-action-data.d.ts +0 -23
  287. package/dist/hooks/use-action-data.d.ts.map +0 -1
  288. package/dist/hooks/use-action-data.js +0 -16
  289. package/dist/hooks/use-form-action.d.ts +0 -7
  290. package/dist/hooks/use-form-action.d.ts.map +0 -1
  291. package/dist/hooks/use-form-action.js +0 -10
  292. package/dist/hooks/use-loader-data.d.ts +0 -11
  293. package/dist/hooks/use-loader-data.d.ts.map +0 -1
  294. package/dist/hooks/use-loader-data.js +0 -19
  295. package/dist/hooks/use-navigate.d.ts +0 -39
  296. package/dist/hooks/use-navigate.d.ts.map +0 -1
  297. package/dist/hooks/use-navigate.js +0 -26
  298. package/dist/hooks/use-params.d.ts.map +0 -1
  299. package/dist/hooks/use-pathname.d.ts +0 -7
  300. package/dist/hooks/use-pathname.d.ts.map +0 -1
  301. package/dist/hooks/use-pathname.js +0 -9
  302. package/dist/hooks/use-submit.d.ts +0 -66
  303. package/dist/hooks/use-submit.d.ts.map +0 -1
  304. package/dist/hooks/use-submit.js +0 -35
  305. package/dist/soseki.d.ts +0 -42
  306. package/dist/soseki.d.ts.map +0 -1
  307. package/dist/soseki.js +0 -19
  308. package/dist/utils/get-action-id.d.ts +0 -8
  309. package/dist/utils/get-action-id.d.ts.map +0 -1
  310. package/dist/utils/get-action-id.js +0 -11
  311. package/dist/utils/href.d.ts +0 -11
  312. package/dist/utils/href.d.ts.map +0 -1
  313. package/dist/utils/href.js +0 -12
  314. package/dist/utils/redirect.d.ts +0 -11
  315. package/dist/utils/redirect.d.ts.map +0 -1
  316. package/dist/utils/redirect.js +0 -12
  317. package/dist/utils/route-index.d.ts +0 -41
  318. package/dist/utils/route-index.d.ts.map +0 -1
  319. package/dist/utils/route-index.js +0 -12
  320. package/dist/utils/route-route.d.ts +0 -62
  321. package/dist/utils/route-route.d.ts.map +0 -1
  322. package/dist/utils/route-route.js +0 -25
  323. package/dist/utils/set-action-id.d.ts +0 -9
  324. package/dist/utils/set-action-id.d.ts.map +0 -1
  325. package/dist/utils/set-action-id.js +0 -12
  326. package/src/components/action-id.tsx +0 -35
  327. package/src/components/hidden-input.tsx +0 -39
  328. package/src/core/_action-id-registry.ts +0 -11
  329. package/src/core/_capture-stack-trace.ts +0 -12
  330. package/src/core/_create-html-form-element-form-form-data.ts +0 -32
  331. package/src/core/_encode-pathname.ts +0 -17
  332. package/src/core/_is-error.ts +0 -16
  333. package/src/core/_is-promise-like.ts +0 -14
  334. package/src/core/_use-singleton.ts +0 -24
  335. package/src/core/_weak-id-registry.ts +0 -125
  336. package/src/core/constants.ts +0 -4
  337. package/src/core/data-map.types.ts +0 -28
  338. package/src/core/data-store.types.ts +0 -25
  339. package/src/core/deferred-promise.ts +0 -408
  340. package/src/core/start-actions.ts +0 -274
  341. package/src/hooks/_use-route-context.ts +0 -19
  342. package/src/hooks/_use-router-context.ts +0 -25
  343. package/src/hooks/use-pathname.ts +0 -10
  344. package/src/utils/get-action-id.ts +0 -12
  345. package/src/utils/href.ts +0 -17
  346. package/src/utils/route-index.ts +0 -70
  347. package/src/utils/route-route.ts +0 -111
  348. package/src/utils/set-action-id.ts +0 -14
  349. /package/dist/{core → src/core}/readonly-form-data.types.js +0 -0
  350. /package/dist/{core → src/core}/readonly-url.types.js +0 -0
  351. /package/dist/{core → src/core}/route.types.js +0 -0
  352. /package/dist/{engines → src/engines}/engine.types.js +0 -0
@@ -1,22 +0,0 @@
1
- import type { IDataMap } from "./data-map.types.js";
2
- import type { HistoryEntryId } from "./history-entry-id-schema.js";
3
- import type { IAction, ILoader } from "./route.types.js";
4
- /**
5
- * 読み取り専用のデータストアを表すインターフェースです。
6
- *
7
- * 履歴エントリーの ID をキーとし、それに関連付けられたデータマップを値として管理します。
8
- *
9
- * @template TDataFunction データマップ内で使用されるアクションまたはローダーの型定義です。
10
- */
11
- export interface IReadonlyDataStore<TDataFunction extends IAction | ILoader = IAction | ILoader> extends Readonly<Map<HistoryEntryId, IDataMap<TDataFunction>>> {
12
- }
13
- /**
14
- * 書き込み可能なデータストアを表すインターフェースです。
15
- *
16
- * 履歴エントリーの ID ごとに、ルートに関連するデータの読み書きを行います。
17
- *
18
- * @template TDataFunction データマップ内で使用されるアクションまたはローダーの型定義です。
19
- */
20
- export interface IDataStore<TDataFunction extends IAction | ILoader = IAction | ILoader> extends Map<HistoryEntryId, IDataMap<TDataFunction>> {
21
- }
22
- //# sourceMappingURL=data-store.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-store.types.d.ts","sourceRoot":"","sources":["../../src/core/data-store.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB,CAAC,aAAa,SAAS,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAC7F,SAAQ,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;CAC9D;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,UAAU,CAAC,aAAa,SAAS,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CACrF,SAAQ,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;CACpD"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,203 +0,0 @@
1
- /**
2
- * DeferredPromise の基本型です。
3
- *
4
- * @template T 非同期処理の結果として返される値の型です。
5
- */
6
- interface DeferredPromiseLike<T> {
7
- /**
8
- * Promise が解決または拒否された際のコールバックを登録します。
9
- *
10
- * @template TResult1 解決時コールバックの戻り値の型です。
11
- * @template TResult2 拒否時コールバックの戻り値の型です。
12
- * @param onfulfilled 解決時に実行されるコールバックです。
13
- * @param onrejected 拒否時に実行されるコールバックです。
14
- * @returns 新しい DeferredPromise インスタンスです。
15
- */
16
- then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null | undefined): DeferredPromise<TResult1 | TResult2>;
17
- }
18
- /**
19
- * 待機状態(pending)にある DeferredPromise を表すインターフェースです。
20
- *
21
- * @template T 非同期処理の結果として返される値の型です。
22
- */
23
- export interface PendingDeferredPromise<T> extends DeferredPromiseLike<T> {
24
- /**
25
- * 現在の状態を示します。
26
- */
27
- status: "pending";
28
- }
29
- /**
30
- * 完了状態(fulfilled)にある DeferredPromise を表すインターフェースです。
31
- *
32
- * @template T 非同期処理の結果として返される値の型です。
33
- */
34
- export interface FulfilledDeferredPromise<T> extends DeferredPromiseLike<T> {
35
- /**
36
- * 現在の状態を示します。
37
- */
38
- status: "fulfilled";
39
- /**
40
- * 解決された値です。
41
- */
42
- value: T;
43
- }
44
- /**
45
- * 拒否状態(rejected)にある DeferredPromise を表すインターフェースです。
46
- *
47
- * @template T 非同期処理の結果として期待されていた値の型です。
48
- */
49
- export interface RejectedDeferredPromise<T> extends DeferredPromiseLike<T> {
50
- /**
51
- * 現在の状態を示します。
52
- */
53
- status: "rejected";
54
- /**
55
- * 拒否された理由(エラー内容)です。
56
- */
57
- reason: unknown;
58
- }
59
- /**
60
- * Promise の状態を外部から同期的に参照できるようにしたクラスです。
61
- *
62
- * PromiseLike を実装しています。このクラスは主に `React.use` で使うことを想定して実装されています。
63
- *
64
- * @template T 非同期処理の結果として返される値の型です。
65
- */
66
- type DeferredPromise<T> = PendingDeferredPromise<T> | FulfilledDeferredPromise<T> | RejectedDeferredPromise<T>;
67
- /**
68
- * 外部から解決または拒否が可能な DeferredPromise のリゾルバー群を表すインターフェースです。
69
- *
70
- * @template T DeferredPromise が解決された際の値の型です。
71
- */
72
- export interface DeferredPromiseWithResolvers<T> {
73
- /**
74
- * 現在のステータスを持つ DeferredPromise オブジェクトです。
75
- */
76
- promise: DeferredPromise<T>;
77
- /**
78
- * DeferredPromise を解決(resolve)させる関数です。
79
- *
80
- * @param value 解決に用いる値です。
81
- */
82
- resolve(value: T | PromiseLike<T>): void;
83
- /**
84
- * DeferredPromise を拒否(reject)させる関数です。
85
- *
86
- * @param reason 拒否の理由です。
87
- */
88
- reject(reason?: unknown): void;
89
- }
90
- /**
91
- * DeferredPromise が取り得る状態のユニオン型です。
92
- */
93
- type DeferredPromiseState = "pending" | "fulfilled" | "rejected";
94
- /**
95
- * then メソッドで登録されるコールバックと、それに関連する解決・拒否関数を保持する型です。
96
- *
97
- * @template T 元の Promise が解決された際の値の型です。
98
- * @template TResult コールバックの実行結果として返される値の型です。
99
- */
100
- type PromiseCallback<T, TResult> = {
101
- /**
102
- * 後続の Promise を拒否するための関数です。
103
- */
104
- readonly reject: (reason?: unknown) => void;
105
- /**
106
- * 後続の Promise を解決するための関数です。
107
- */
108
- readonly resolve: (value: TResult) => void;
109
- /**
110
- * 拒否時に実行されるユーザー定義のコールバックです。
111
- */
112
- readonly onRejected: ((reason: unknown) => TResult | PromiseLike<TResult>) | null | undefined;
113
- /**
114
- * 解決時に実行されるユーザー定義のコールバックです。
115
- */
116
- readonly onFulfilled: ((value: T) => TResult | PromiseLike<TResult>) | null | undefined;
117
- };
118
- declare const DeferredPromise: {
119
- new <T>(): {
120
- /**
121
- * 解決または拒否を待機しているコールバックのキューです。
122
- */
123
- readonly "__#private@#queue": PromiseCallback<T, any>[];
124
- /**
125
- * 内部的に Promise を拒否状態に遷移させます。
126
- *
127
- * @param reason 拒否の理由です。
128
- */
129
- "__#private@#reject"(reason?: unknown): void;
130
- /**
131
- * 内部的に Promise を解決状態に遷移させます。
132
- *
133
- * 引数が PromiseLike の場合は、その状態を継承します。
134
- *
135
- * @param value 解決に用いる値、または PromiseLike オブジェクトです。
136
- */
137
- "__#private@#resolve"(value: T | PromiseLike<T>): void;
138
- /**
139
- * キューに積まれたコールバックを順次実行します。
140
- *
141
- * ステータスが確定していない場合は何もしません。
142
- */
143
- "__#private@#processQueue"(): void;
144
- /**
145
- * 現在の Promise の状態です。
146
- */
147
- status: DeferredPromiseState;
148
- /**
149
- * Promise が解決または拒否された際のコールバックを登録します。
150
- *
151
- * @template TResult1 解決時コールバックの戻り値の型です。
152
- * @template TResult2 拒否時コールバックの戻り値の型です。
153
- * @param onfulfilled 解決時に実行されるコールバックです。
154
- * @param onrejected 拒否時に実行されるコールバックです。
155
- * @returns 新しい DeferredPromise インスタンスです。
156
- */
157
- then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null | undefined): DeferredPromise<TResult1 | TResult2>;
158
- /**
159
- * 解決された値です。
160
- */
161
- value?: T;
162
- /**
163
- * 拒否された理由(エラー内容)です。
164
- */
165
- reason?: unknown;
166
- };
167
- /**
168
- * 指定された関数を実行し、その結果を DeferredPromise として返します。
169
- * 関数が同期的に例外を投げた場合、拒否状態の Promise を返します。
170
- *
171
- * @template T 関数の戻り値の型です。
172
- * @template TArgs 関数に渡す引数の型配列です。
173
- * @param callbackFn 実行するコールバック関数です。
174
- * @param args 関数に渡す引数です。
175
- * @returns 実行結果をラップした DeferredPromise です。
176
- */
177
- try<T, TArgs extends unknown[]>(callbackFn: (...args: TArgs) => T | PromiseLike<T>, ...args: TArgs): DeferredPromise<Awaited<T>>;
178
- /**
179
- * 既に拒否状態となっている DeferredPromise インスタンスを生成します。
180
- *
181
- * @template T DeferredPromise が期待していた値の型です。
182
- * @param reason 拒否の理由です。
183
- * @returns 拒否状態の DeferredPromise です。
184
- */
185
- reject<T = never>(reason?: unknown): RejectedDeferredPromise<T>;
186
- /**
187
- * 既に解決状態となっている DeferredPromise インスタンスを生成します。
188
- *
189
- * @template T 解決される値の型です。
190
- * @param value 解決に用いる値です。
191
- * @returns 解決状態の DeferredPromise です。
192
- */
193
- resolve<T>(value: T): FulfilledDeferredPromise<T>;
194
- /**
195
- * DeferredPromise と、それを外部から制御するためのリゾルバー(resolve/reject)を生成します。
196
- *
197
- * @template T DeferredPromise が解決された際の値の型です。
198
- * @returns DeferredPromise とリゾルバーを含むオブジェクトです。
199
- */
200
- withResolvers<T>(): DeferredPromiseWithResolvers<T>;
201
- };
202
- export default DeferredPromise;
203
- //# sourceMappingURL=deferred-promise.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deferred-promise.d.ts","sourceRoot":"","sources":["../../src/core/deferred-promise.ts"],"names":[],"mappings":"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"}
@@ -1,200 +0,0 @@
1
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
- };
6
- var _DeferredPromise__instances, _DeferredPromise__queue, _DeferredPromise__reject, _DeferredPromise__resolve, _DeferredPromise__processQueue, _a;
7
- import isPromiseLike from "./_is-promise-like.js";
8
- /**
9
- * 動的に解決された値や拒否理由を保持するためのベースクラスを生成する定数です。
10
- */
11
- const Options = (class {
12
- });
13
- const DeferredPromise = (_a = class DeferredPromise_ extends Options {
14
- constructor() {
15
- super(...arguments);
16
- _DeferredPromise__instances.add(this);
17
- /**
18
- * 解決または拒否を待機しているコールバックのキューです。
19
- */
20
- _DeferredPromise__queue.set(this, []);
21
- /**
22
- * 現在の Promise の状態です。
23
- */
24
- this.status = "pending";
25
- }
26
- /**
27
- * 指定された関数を実行し、その結果を DeferredPromise として返します。
28
- * 関数が同期的に例外を投げた場合、拒否状態の Promise を返します。
29
- *
30
- * @template T 関数の戻り値の型です。
31
- * @template TArgs 関数に渡す引数の型配列です。
32
- * @param callbackFn 実行するコールバック関数です。
33
- * @param args 関数に渡す引数です。
34
- * @returns 実行結果をラップした DeferredPromise です。
35
- */
36
- static try(callbackFn, ...args) {
37
- let value;
38
- try {
39
- value = callbackFn(...args);
40
- if (!isPromiseLike(value)) {
41
- return this.resolve(value);
42
- }
43
- }
44
- catch (ex) {
45
- return this.reject(ex);
46
- }
47
- const { reject, resolve, promise, } = this.withResolvers();
48
- (async function runDeferredPromise() {
49
- try {
50
- resolve(await value);
51
- }
52
- catch (ex) {
53
- reject(ex);
54
- }
55
- })();
56
- return promise;
57
- }
58
- /**
59
- * 既に拒否状態となっている DeferredPromise インスタンスを生成します。
60
- *
61
- * @template T DeferredPromise が期待していた値の型です。
62
- * @param reason 拒否の理由です。
63
- * @returns 拒否状態の DeferredPromise です。
64
- */
65
- static reject(reason) {
66
- const promise = new _a();
67
- __classPrivateFieldGet(promise, _DeferredPromise__instances, "m", _DeferredPromise__reject).call(promise, reason);
68
- return promise;
69
- }
70
- /**
71
- * 既に解決状態となっている DeferredPromise インスタンスを生成します。
72
- *
73
- * @template T 解決される値の型です。
74
- * @param value 解決に用いる値です。
75
- * @returns 解決状態の DeferredPromise です。
76
- */
77
- static resolve(value) {
78
- const promise = new _a();
79
- __classPrivateFieldGet(promise, _DeferredPromise__instances, "m", _DeferredPromise__resolve).call(promise, value);
80
- return promise;
81
- }
82
- /**
83
- * DeferredPromise と、それを外部から制御するためのリゾルバー(resolve/reject)を生成します。
84
- *
85
- * @template T DeferredPromise が解決された際の値の型です。
86
- * @returns DeferredPromise とリゾルバーを含むオブジェクトです。
87
- */
88
- static withResolvers() {
89
- const promise = new _a();
90
- return {
91
- reject(reason) {
92
- __classPrivateFieldGet(promise, _DeferredPromise__instances, "m", _DeferredPromise__reject).call(promise, reason);
93
- },
94
- resolve(value) {
95
- __classPrivateFieldGet(promise, _DeferredPromise__instances, "m", _DeferredPromise__resolve).call(promise, value);
96
- },
97
- // @ts-expect-error
98
- promise,
99
- };
100
- }
101
- /**
102
- * Promise が解決または拒否された際のコールバックを登録します。
103
- *
104
- * @template TResult1 解決時コールバックの戻り値の型です。
105
- * @template TResult2 拒否時コールバックの戻り値の型です。
106
- * @param onfulfilled 解決時に実行されるコールバックです。
107
- * @param onrejected 拒否時に実行されるコールバックです。
108
- * @returns 新しい DeferredPromise インスタンスです。
109
- */
110
- then(onfulfilled, onrejected) {
111
- // 新しい DeferredPromise を作成してチェーンをつなぎます。
112
- const nextPromise = new _a();
113
- __classPrivateFieldGet(this, _DeferredPromise__queue, "f").push({
114
- reject(reason) {
115
- __classPrivateFieldGet(nextPromise, _DeferredPromise__instances, "m", _DeferredPromise__reject).call(nextPromise, reason);
116
- },
117
- resolve(value) {
118
- __classPrivateFieldGet(nextPromise, _DeferredPromise__instances, "m", _DeferredPromise__resolve).call(nextPromise, value);
119
- },
120
- onRejected: onrejected,
121
- onFulfilled: onfulfilled,
122
- });
123
- // すでに解決/拒否済みかもしれないのでキュー処理を試行します。
124
- __classPrivateFieldGet(this, _DeferredPromise__instances, "m", _DeferredPromise__processQueue).call(this);
125
- return nextPromise;
126
- }
127
- },
128
- _DeferredPromise__queue = new WeakMap(),
129
- _DeferredPromise__instances = new WeakSet(),
130
- _DeferredPromise__reject = function _DeferredPromise__reject(reason) {
131
- if (this.status !== "pending") {
132
- return;
133
- }
134
- this.status = "rejected";
135
- this.reason = reason;
136
- __classPrivateFieldGet(this, _DeferredPromise__instances, "m", _DeferredPromise__processQueue).call(this);
137
- },
138
- _DeferredPromise__resolve = function _DeferredPromise__resolve(value) {
139
- if (this.status !== "pending") {
140
- return;
141
- }
142
- if (!isPromiseLike(value)) {
143
- // 値による解決を行います。
144
- this.status = "fulfilled";
145
- this.value = value;
146
- __classPrivateFieldGet(this, _DeferredPromise__instances, "m", _DeferredPromise__processQueue).call(this);
147
- return;
148
- }
149
- // 受け取った値が PromiseLike だった場合、その状態を継承します。
150
- try {
151
- // 再帰的に待機します。
152
- value.then.call(value, (y) => __classPrivateFieldGet(this, _DeferredPromise__instances, "m", _DeferredPromise__resolve).call(this, y), (r) => __classPrivateFieldGet(this, _DeferredPromise__instances, "m", _DeferredPromise__reject).call(this, r));
153
- }
154
- catch (ex) {
155
- __classPrivateFieldGet(this, _DeferredPromise__instances, "m", _DeferredPromise__reject).call(this, ex);
156
- }
157
- },
158
- _DeferredPromise__processQueue = function _DeferredPromise__processQueue() {
159
- if (this.status === "pending") {
160
- return;
161
- }
162
- // Promise の仕様に従い、マイクロタスクに入れて非同期実行を保証します。
163
- queueMicrotask(() => {
164
- while (__classPrivateFieldGet(this, _DeferredPromise__queue, "f").length > 0) {
165
- const callback = __classPrivateFieldGet(this, _DeferredPromise__queue, "f").shift();
166
- if (!callback) {
167
- continue;
168
- }
169
- const { reject, resolve, onRejected, onFulfilled, } = callback;
170
- try {
171
- if (this.status === "fulfilled") {
172
- if (typeof onFulfilled === "function") {
173
- const result = onFulfilled(this.value);
174
- resolve(result);
175
- }
176
- else {
177
- // コールバックがない場合は値を透過させます。
178
- resolve(this.value);
179
- }
180
- }
181
- else if (this.status === "rejected") {
182
- if (typeof onRejected === "function") {
183
- const result = onRejected(this.reason);
184
- resolve(result); // エラーハンドリング成功時は次の Promise は resolve されます。
185
- }
186
- else {
187
- // コールバックがない場合はエラーを透過させます。
188
- reject(this.reason);
189
- }
190
- }
191
- }
192
- catch (ex) {
193
- // コールバック実行中にエラーが発生した場合は、後続の Promise を拒否します。
194
- reject(ex);
195
- }
196
- }
197
- });
198
- },
199
- _a);
200
- export default DeferredPromise;