@mx-space/api-client 1.0.0 → 1.0.2

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 (446) hide show
  1. package/.eslintcache +1 -1
  2. package/LICENSE +661 -0
  3. package/controllers/recently.ts +24 -3
  4. package/dist/index.cjs +18 -0
  5. package/dist/index.cjs.map +1 -1
  6. package/dist/index.js +18 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/index.min.cjs +1 -1
  9. package/dist/index.min.cjs.map +1 -1
  10. package/dist/index.min.js +1 -1
  11. package/dist/index.min.js.map +1 -1
  12. package/dist/index.umd.js +18 -0
  13. package/dist/index.umd.js.map +1 -1
  14. package/dist/index.umd.min.js +1 -1
  15. package/dist/index.umd.min.js.map +1 -1
  16. package/esm/adaptors/axios.d.ts +4 -0
  17. package/esm/adaptors/axios.js +37 -0
  18. package/esm/adaptors/axios.js.map +1 -0
  19. package/esm/adaptors/ky.d.ts +23 -0
  20. package/esm/adaptors/ky.js +62 -0
  21. package/esm/adaptors/ky.js.map +1 -0
  22. package/esm/adaptors/umi-request.d.ts +4 -0
  23. package/esm/adaptors/umi-request.js +31 -0
  24. package/esm/adaptors/umi-request.js.map +1 -0
  25. package/esm/controllers/aggregate.d.ts +64 -0
  26. package/esm/controllers/aggregate.js +42 -0
  27. package/esm/controllers/aggregate.js.map +1 -0
  28. package/esm/controllers/base.d.ts +43 -0
  29. package/esm/controllers/base.js +27 -0
  30. package/esm/controllers/base.js.map +1 -0
  31. package/esm/controllers/category.d.ts +114 -0
  32. package/esm/controllers/category.js +68 -0
  33. package/esm/controllers/category.js.map +1 -0
  34. package/esm/controllers/comment.d.ts +81 -0
  35. package/esm/controllers/comment.js +47 -0
  36. package/esm/controllers/comment.js.map +1 -0
  37. package/esm/controllers/index.d.ts +18 -0
  38. package/esm/controllers/index.js +55 -0
  39. package/esm/controllers/index.js.map +1 -0
  40. package/esm/controllers/link.d.ts +20 -0
  41. package/esm/controllers/link.js +21 -0
  42. package/esm/controllers/link.js.map +1 -0
  43. package/esm/controllers/note.d.ts +123 -0
  44. package/esm/controllers/note.js +68 -0
  45. package/esm/controllers/note.js.map +1 -0
  46. package/esm/controllers/page.d.ts +59 -0
  47. package/esm/controllers/page.js +42 -0
  48. package/esm/controllers/page.js.map +1 -0
  49. package/esm/controllers/post.d.ts +72 -0
  50. package/esm/controllers/post.js +52 -0
  51. package/esm/controllers/post.js.map +1 -0
  52. package/esm/controllers/project.d.ts +15 -0
  53. package/esm/controllers/project.js +12 -0
  54. package/esm/controllers/project.js.map +1 -0
  55. package/esm/controllers/recently.d.ts +110 -0
  56. package/esm/controllers/recently.js +49 -0
  57. package/esm/controllers/recently.js.map +1 -0
  58. package/esm/controllers/say.d.ts +37 -0
  59. package/esm/controllers/say.js +21 -0
  60. package/esm/controllers/say.js.map +1 -0
  61. package/esm/controllers/search.d.ts +247 -0
  62. package/esm/controllers/search.js +28 -0
  63. package/esm/controllers/search.js.map +1 -0
  64. package/esm/controllers/severless.d.ts +24 -0
  65. package/esm/controllers/severless.js +16 -0
  66. package/esm/controllers/severless.js.map +1 -0
  67. package/esm/controllers/snippet.d.ts +24 -0
  68. package/esm/controllers/snippet.js +19 -0
  69. package/esm/controllers/snippet.js.map +1 -0
  70. package/esm/controllers/topic.d.ts +26 -0
  71. package/esm/controllers/topic.js +18 -0
  72. package/esm/controllers/topic.js.map +1 -0
  73. package/esm/controllers/user.d.ts +70 -0
  74. package/esm/controllers/user.js +40 -0
  75. package/esm/controllers/user.js.map +1 -0
  76. package/esm/core/attach-request.d.ts +2 -0
  77. package/esm/core/attach-request.js +36 -0
  78. package/esm/core/attach-request.js.map +1 -0
  79. package/esm/core/client.d.ts +29 -0
  80. package/esm/core/client.js +186 -0
  81. package/esm/core/client.js.map +1 -0
  82. package/esm/core/error.d.ts +6 -0
  83. package/esm/core/error.js +9 -0
  84. package/esm/core/error.js.map +1 -0
  85. package/esm/core/index.d.ts +2 -0
  86. package/esm/core/index.js +3 -0
  87. package/esm/core/index.js.map +1 -0
  88. package/esm/dtos/comment.d.ts +6 -0
  89. package/esm/dtos/comment.js +3 -0
  90. package/esm/dtos/comment.js.map +1 -0
  91. package/esm/index.d.ts +7 -0
  92. package/esm/index.js +8 -0
  93. package/esm/index.js.map +1 -0
  94. package/esm/interfaces/adapter.d.ts +14 -0
  95. package/esm/interfaces/adapter.js +2 -0
  96. package/esm/interfaces/adapter.js.map +1 -0
  97. package/esm/interfaces/client.d.ts +13 -0
  98. package/esm/interfaces/client.js +2 -0
  99. package/esm/interfaces/client.js.map +1 -0
  100. package/esm/interfaces/controller.d.ts +4 -0
  101. package/esm/interfaces/controller.js +2 -0
  102. package/esm/interfaces/controller.js.map +1 -0
  103. package/esm/interfaces/instance.d.ts +7 -0
  104. package/esm/interfaces/instance.js +2 -0
  105. package/esm/interfaces/instance.js.map +1 -0
  106. package/esm/interfaces/options.d.ts +1 -0
  107. package/esm/interfaces/options.js +2 -0
  108. package/esm/interfaces/options.js.map +1 -0
  109. package/esm/interfaces/params.d.ts +4 -0
  110. package/esm/interfaces/params.js +2 -0
  111. package/esm/interfaces/params.js.map +1 -0
  112. package/esm/interfaces/request.d.ts +43 -0
  113. package/esm/interfaces/request.js +2 -0
  114. package/esm/interfaces/request.js.map +1 -0
  115. package/esm/interfaces/types.d.ts +2 -0
  116. package/esm/interfaces/types.js +2 -0
  117. package/esm/interfaces/types.js.map +1 -0
  118. package/esm/models/aggregate.d.ts +53 -0
  119. package/esm/models/aggregate.js +6 -0
  120. package/esm/models/aggregate.js.map +1 -0
  121. package/esm/models/base.d.ts +41 -0
  122. package/esm/models/base.js +2 -0
  123. package/esm/models/base.js.map +1 -0
  124. package/esm/models/category.d.ts +22 -0
  125. package/esm/models/category.js +6 -0
  126. package/esm/models/category.js.map +1 -0
  127. package/esm/models/comment.d.ts +37 -0
  128. package/esm/models/comment.js +13 -0
  129. package/esm/models/comment.js.map +1 -0
  130. package/esm/models/index.d.ts +14 -0
  131. package/esm/models/index.js +15 -0
  132. package/esm/models/index.js.map +1 -0
  133. package/esm/models/link.d.ts +22 -0
  134. package/esm/models/link.js +14 -0
  135. package/esm/models/link.js.map +1 -0
  136. package/esm/models/note.d.ts +38 -0
  137. package/esm/models/note.js +2 -0
  138. package/esm/models/note.js.map +1 -0
  139. package/esm/models/page.d.ts +14 -0
  140. package/esm/models/page.js +7 -0
  141. package/esm/models/page.js.map +1 -0
  142. package/esm/models/post.d.ts +17 -0
  143. package/esm/models/post.js +2 -0
  144. package/esm/models/post.js.map +1 -0
  145. package/esm/models/project.d.ts +11 -0
  146. package/esm/models/project.js +2 -0
  147. package/esm/models/project.js.map +1 -0
  148. package/esm/models/recently.d.ts +20 -0
  149. package/esm/models/recently.js +7 -0
  150. package/esm/models/recently.js.map +1 -0
  151. package/esm/models/say.d.ts +6 -0
  152. package/esm/models/say.js +2 -0
  153. package/esm/models/say.js.map +1 -0
  154. package/esm/models/setting.d.ts +66 -0
  155. package/esm/models/setting.js +2 -0
  156. package/esm/models/setting.js.map +1 -0
  157. package/esm/models/snippet.d.ts +18 -0
  158. package/esm/models/snippet.js +8 -0
  159. package/esm/models/snippet.js.map +1 -0
  160. package/esm/models/topic.d.ts +8 -0
  161. package/esm/models/topic.js +2 -0
  162. package/esm/models/topic.js.map +1 -0
  163. package/esm/models/user.d.ts +21 -0
  164. package/esm/models/user.js +2 -0
  165. package/esm/models/user.js.map +1 -0
  166. package/esm/utils/auto-bind.d.ts +4 -0
  167. package/esm/utils/auto-bind.js +36 -0
  168. package/esm/utils/auto-bind.js.map +1 -0
  169. package/esm/utils/camelcase-keys.d.ts +6 -0
  170. package/esm/utils/camelcase-keys.js +23 -0
  171. package/esm/utils/camelcase-keys.js.map +1 -0
  172. package/esm/utils/index.d.ts +5 -0
  173. package/esm/utils/index.js +43 -0
  174. package/esm/utils/index.js.map +1 -0
  175. package/esm/utils/path.d.ts +1 -0
  176. package/esm/utils/path.js +7 -0
  177. package/esm/utils/path.js.map +1 -0
  178. package/esm/vitest.config.d.ts +2 -0
  179. package/esm/vitest.config.js +12 -0
  180. package/esm/vitest.config.js.map +1 -0
  181. package/lib/adaptors/axios.d.ts +4 -0
  182. package/lib/adaptors/axios.js +43 -0
  183. package/lib/adaptors/axios.js.map +1 -0
  184. package/lib/adaptors/ky.d.ts +23 -0
  185. package/lib/adaptors/ky.js +69 -0
  186. package/lib/adaptors/ky.js.map +1 -0
  187. package/lib/adaptors/umi-request.d.ts +4 -0
  188. package/lib/adaptors/umi-request.js +34 -0
  189. package/lib/adaptors/umi-request.js.map +1 -0
  190. package/lib/controllers/aggregate.d.ts +64 -0
  191. package/lib/controllers/aggregate.js +46 -0
  192. package/lib/controllers/aggregate.js.map +1 -0
  193. package/lib/controllers/base.d.ts +43 -0
  194. package/lib/controllers/base.js +31 -0
  195. package/lib/controllers/base.js.map +1 -0
  196. package/lib/controllers/category.d.ts +114 -0
  197. package/lib/controllers/category.js +72 -0
  198. package/lib/controllers/category.js.map +1 -0
  199. package/lib/controllers/comment.d.ts +81 -0
  200. package/lib/controllers/comment.js +51 -0
  201. package/lib/controllers/comment.js.map +1 -0
  202. package/lib/controllers/index.d.ts +18 -0
  203. package/lib/controllers/index.js +72 -0
  204. package/lib/controllers/index.js.map +1 -0
  205. package/lib/controllers/link.d.ts +20 -0
  206. package/lib/controllers/link.js +25 -0
  207. package/lib/controllers/link.js.map +1 -0
  208. package/lib/controllers/note.d.ts +123 -0
  209. package/lib/controllers/note.js +72 -0
  210. package/lib/controllers/note.js.map +1 -0
  211. package/lib/controllers/page.d.ts +59 -0
  212. package/lib/controllers/page.js +46 -0
  213. package/lib/controllers/page.js.map +1 -0
  214. package/lib/controllers/post.d.ts +72 -0
  215. package/lib/controllers/post.js +56 -0
  216. package/lib/controllers/post.js.map +1 -0
  217. package/lib/controllers/project.d.ts +15 -0
  218. package/lib/controllers/project.js +16 -0
  219. package/lib/controllers/project.js.map +1 -0
  220. package/lib/controllers/recently.d.ts +110 -0
  221. package/lib/controllers/recently.js +53 -0
  222. package/lib/controllers/recently.js.map +1 -0
  223. package/lib/controllers/say.d.ts +37 -0
  224. package/lib/controllers/say.js +25 -0
  225. package/lib/controllers/say.js.map +1 -0
  226. package/lib/controllers/search.d.ts +247 -0
  227. package/lib/controllers/search.js +32 -0
  228. package/lib/controllers/search.js.map +1 -0
  229. package/lib/controllers/severless.d.ts +24 -0
  230. package/lib/controllers/severless.js +20 -0
  231. package/lib/controllers/severless.js.map +1 -0
  232. package/lib/controllers/snippet.d.ts +24 -0
  233. package/lib/controllers/snippet.js +23 -0
  234. package/lib/controllers/snippet.js.map +1 -0
  235. package/lib/controllers/topic.d.ts +26 -0
  236. package/lib/controllers/topic.js +22 -0
  237. package/lib/controllers/topic.js.map +1 -0
  238. package/lib/controllers/user.d.ts +70 -0
  239. package/lib/controllers/user.js +44 -0
  240. package/lib/controllers/user.js.map +1 -0
  241. package/lib/core/attach-request.d.ts +2 -0
  242. package/lib/core/attach-request.js +40 -0
  243. package/lib/core/attach-request.js.map +1 -0
  244. package/lib/core/client.d.ts +29 -0
  245. package/lib/core/client.js +190 -0
  246. package/lib/core/client.js.map +1 -0
  247. package/lib/core/error.d.ts +6 -0
  248. package/lib/core/error.js +13 -0
  249. package/lib/core/error.js.map +1 -0
  250. package/lib/core/index.d.ts +2 -0
  251. package/lib/core/index.js +19 -0
  252. package/lib/core/index.js.map +1 -0
  253. package/lib/dtos/comment.d.ts +6 -0
  254. package/lib/dtos/comment.js +7 -0
  255. package/lib/dtos/comment.js.map +1 -0
  256. package/lib/index.d.ts +7 -0
  257. package/lib/index.js +28 -0
  258. package/lib/index.js.map +1 -0
  259. package/lib/interfaces/adapter.d.ts +14 -0
  260. package/lib/interfaces/adapter.js +3 -0
  261. package/lib/interfaces/adapter.js.map +1 -0
  262. package/lib/interfaces/client.d.ts +13 -0
  263. package/lib/interfaces/client.js +3 -0
  264. package/lib/interfaces/client.js.map +1 -0
  265. package/lib/interfaces/controller.d.ts +4 -0
  266. package/lib/interfaces/controller.js +3 -0
  267. package/lib/interfaces/controller.js.map +1 -0
  268. package/lib/interfaces/instance.d.ts +7 -0
  269. package/lib/interfaces/instance.js +3 -0
  270. package/lib/interfaces/instance.js.map +1 -0
  271. package/lib/interfaces/options.d.ts +1 -0
  272. package/lib/interfaces/options.js +3 -0
  273. package/lib/interfaces/options.js.map +1 -0
  274. package/lib/interfaces/params.d.ts +4 -0
  275. package/lib/interfaces/params.js +3 -0
  276. package/lib/interfaces/params.js.map +1 -0
  277. package/lib/interfaces/request.d.ts +43 -0
  278. package/lib/interfaces/request.js +3 -0
  279. package/lib/interfaces/request.js.map +1 -0
  280. package/lib/interfaces/types.d.ts +2 -0
  281. package/lib/interfaces/types.js +3 -0
  282. package/lib/interfaces/types.js.map +1 -0
  283. package/lib/models/aggregate.d.ts +53 -0
  284. package/lib/models/aggregate.js +9 -0
  285. package/lib/models/aggregate.js.map +1 -0
  286. package/lib/models/base.d.ts +41 -0
  287. package/lib/models/base.js +3 -0
  288. package/lib/models/base.js.map +1 -0
  289. package/lib/models/category.d.ts +22 -0
  290. package/lib/models/category.js +9 -0
  291. package/lib/models/category.js.map +1 -0
  292. package/lib/models/comment.d.ts +37 -0
  293. package/lib/models/comment.js +16 -0
  294. package/lib/models/comment.js.map +1 -0
  295. package/lib/models/index.d.ts +14 -0
  296. package/lib/models/index.js +31 -0
  297. package/lib/models/index.js.map +1 -0
  298. package/lib/models/link.d.ts +22 -0
  299. package/lib/models/link.js +17 -0
  300. package/lib/models/link.js.map +1 -0
  301. package/lib/models/note.d.ts +38 -0
  302. package/lib/models/note.js +3 -0
  303. package/lib/models/note.js.map +1 -0
  304. package/lib/models/page.d.ts +14 -0
  305. package/lib/models/page.js +10 -0
  306. package/lib/models/page.js.map +1 -0
  307. package/lib/models/post.d.ts +17 -0
  308. package/lib/models/post.js +3 -0
  309. package/lib/models/post.js.map +1 -0
  310. package/lib/models/project.d.ts +11 -0
  311. package/lib/models/project.js +3 -0
  312. package/lib/models/project.js.map +1 -0
  313. package/lib/models/recently.d.ts +20 -0
  314. package/lib/models/recently.js +10 -0
  315. package/lib/models/recently.js.map +1 -0
  316. package/lib/models/say.d.ts +6 -0
  317. package/lib/models/say.js +3 -0
  318. package/lib/models/say.js.map +1 -0
  319. package/lib/models/setting.d.ts +66 -0
  320. package/lib/models/setting.js +3 -0
  321. package/lib/models/setting.js.map +1 -0
  322. package/lib/models/snippet.d.ts +18 -0
  323. package/lib/models/snippet.js +11 -0
  324. package/lib/models/snippet.js.map +1 -0
  325. package/lib/models/topic.d.ts +8 -0
  326. package/lib/models/topic.js +3 -0
  327. package/lib/models/topic.js.map +1 -0
  328. package/lib/models/user.d.ts +21 -0
  329. package/lib/models/user.js +3 -0
  330. package/lib/models/user.js.map +1 -0
  331. package/lib/utils/auto-bind.d.ts +4 -0
  332. package/lib/utils/auto-bind.js +40 -0
  333. package/lib/utils/auto-bind.js.map +1 -0
  334. package/lib/utils/camelcase-keys.d.ts +6 -0
  335. package/lib/utils/camelcase-keys.js +28 -0
  336. package/lib/utils/camelcase-keys.js.map +1 -0
  337. package/lib/utils/index.d.ts +5 -0
  338. package/lib/utils/index.js +50 -0
  339. package/lib/utils/index.js.map +1 -0
  340. package/lib/utils/path.d.ts +1 -0
  341. package/lib/utils/path.js +11 -0
  342. package/lib/utils/path.js.map +1 -0
  343. package/lib/vitest.config.d.ts +2 -0
  344. package/lib/vitest.config.js +17 -0
  345. package/lib/vitest.config.js.map +1 -0
  346. package/package.json +26 -12
  347. package/types/adaptors/axios.d.ts +4 -0
  348. package/types/adaptors/ky.d.ts +23 -0
  349. package/types/adaptors/umi-request.d.ts +4 -0
  350. package/types/controllers/aggregate.d.ts +64 -0
  351. package/types/controllers/base.d.ts +43 -0
  352. package/types/controllers/category.d.ts +114 -0
  353. package/types/controllers/comment.d.ts +81 -0
  354. package/types/controllers/index.d.ts +18 -0
  355. package/types/controllers/link.d.ts +20 -0
  356. package/types/controllers/note.d.ts +123 -0
  357. package/types/controllers/page.d.ts +59 -0
  358. package/types/controllers/post.d.ts +72 -0
  359. package/types/controllers/project.d.ts +15 -0
  360. package/types/controllers/recently.d.ts +110 -0
  361. package/types/controllers/say.d.ts +37 -0
  362. package/types/controllers/search.d.ts +247 -0
  363. package/types/controllers/severless.d.ts +24 -0
  364. package/types/controllers/snippet.d.ts +24 -0
  365. package/types/controllers/topic.d.ts +26 -0
  366. package/types/controllers/user.d.ts +70 -0
  367. package/types/core/attach-request.d.ts +2 -0
  368. package/types/core/client.d.ts +29 -0
  369. package/types/core/error.d.ts +6 -0
  370. package/types/core/index.d.ts +2 -0
  371. package/types/dtos/comment.d.ts +6 -0
  372. package/types/index.d.ts +7 -0
  373. package/types/interfaces/adapter.d.ts +14 -0
  374. package/types/interfaces/client.d.ts +13 -0
  375. package/types/interfaces/controller.d.ts +4 -0
  376. package/types/interfaces/instance.d.ts +7 -0
  377. package/types/interfaces/options.d.ts +1 -0
  378. package/types/interfaces/params.d.ts +4 -0
  379. package/types/interfaces/request.d.ts +43 -0
  380. package/types/interfaces/types.d.ts +2 -0
  381. package/types/models/aggregate.d.ts +53 -0
  382. package/types/models/base.d.ts +41 -0
  383. package/types/models/category.d.ts +22 -0
  384. package/types/models/comment.d.ts +37 -0
  385. package/types/models/index.d.ts +14 -0
  386. package/types/models/link.d.ts +22 -0
  387. package/types/models/note.d.ts +38 -0
  388. package/types/models/page.d.ts +14 -0
  389. package/types/models/post.d.ts +17 -0
  390. package/types/models/project.d.ts +11 -0
  391. package/types/models/recently.d.ts +20 -0
  392. package/types/models/say.d.ts +6 -0
  393. package/types/models/setting.d.ts +66 -0
  394. package/types/models/snippet.d.ts +18 -0
  395. package/types/models/topic.d.ts +8 -0
  396. package/types/models/user.d.ts +21 -0
  397. package/types/utils/auto-bind.d.ts +4 -0
  398. package/types/utils/camelcase-keys.d.ts +6 -0
  399. package/types/utils/index.d.ts +5 -0
  400. package/types/utils/path.d.ts +1 -0
  401. package/types/vitest.config.d.ts +2 -0
  402. package/__tests__/adaptors/axios.spec.ts +0 -7
  403. package/__tests__/adaptors/ky.spec.ts +0 -9
  404. package/__tests__/adaptors/umi-request.spec.ts +0 -7
  405. package/__tests__/contronllers/aggregate.test.ts +0 -389
  406. package/__tests__/contronllers/category.test.ts +0 -284
  407. package/__tests__/contronllers/comment.test.ts +0 -113
  408. package/__tests__/contronllers/link.test.ts +0 -95
  409. package/__tests__/contronllers/note.test.ts +0 -120
  410. package/__tests__/contronllers/page.test.ts +0 -49
  411. package/__tests__/contronllers/post.test.ts +0 -77
  412. package/__tests__/contronllers/recently.test.ts +0 -49
  413. package/__tests__/contronllers/say.test.ts +0 -106
  414. package/__tests__/contronllers/search.test.ts +0 -81
  415. package/__tests__/contronllers/serverless.test.ts +0 -19
  416. package/__tests__/contronllers/snippet.test.ts +0 -38
  417. package/__tests__/contronllers/topic.test.ts +0 -17
  418. package/__tests__/contronllers/user.test.ts +0 -59
  419. package/__tests__/core/client.test.ts +0 -293
  420. package/__tests__/helpers/adaptor-test.ts +0 -108
  421. package/__tests__/helpers/e2e-mock-server.ts +0 -22
  422. package/__tests__/helpers/global-fetch.ts +0 -39
  423. package/__tests__/helpers/instance.ts +0 -11
  424. package/__tests__/helpers/response.ts +0 -76
  425. package/__tests__/mock/algolia.json +0 -446
  426. package/__tests__/utils/auto-bind.spec.ts +0 -27
  427. package/__tests__/utils/camelcase-keys.spec.ts +0 -86
  428. package/__tests__/utils/index.test.ts +0 -33
  429. package/__tests__/utils/path.spec.ts +0 -8
  430. package/adaptors/axios.ts +0 -44
  431. package/adaptors/ky.ts +0 -76
  432. package/adaptors/umi-request.ts +0 -38
  433. package/core/attach-request.ts +0 -43
  434. package/core/client.ts +0 -252
  435. package/core/error.ts +0 -10
  436. package/core/index.ts +0 -2
  437. package/coverage/lcov-report/__tests__/helpers/adaptor-test.ts.html +0 -405
  438. package/coverage/lcov-report/__tests__/helpers/e2e-mock-server.ts.html +0 -150
  439. package/coverage/lcov-report/__tests__/helpers/index.html +0 -236
  440. package/coverage/lcov-report/__tests__/helpers/instance.ts.html +0 -120
  441. package/coverage/lcov-report/__tests__/helpers/response.ts.html +0 -231
  442. package/rollup.config.js +0 -150
  443. package/utils/auto-bind.ts +0 -48
  444. package/utils/camelcase-keys.ts +0 -26
  445. package/utils/index.ts +0 -53
  446. package/utils/path.ts +0 -6
@@ -1,27 +0,0 @@
1
- import { autoBind } from '~/utils/auto-bind'
2
-
3
- describe('test auto bind', () => {
4
- it('should bind in class', () => {
5
- class A {
6
- constructor() {
7
- autoBind(this)
8
- }
9
- name = 'A'
10
- foo() {
11
- return this?.name
12
- }
13
- }
14
-
15
- expect(new A().foo()).toBe('A')
16
-
17
- function tester(caller: any) {
18
- return caller()
19
- }
20
- expect(tester(new A().foo)).toBe('A')
21
-
22
- function tester2<T extends (...args: any) => any>(caller: T) {
23
- return caller.call({})
24
- }
25
- expect(tester2(new A().foo)).toBe('A')
26
- })
27
- })
@@ -1,86 +0,0 @@
1
- import camelcaseKeysLib from 'camelcase-keys'
2
-
3
- import { camelcaseKeys } from '~/utils/camelcase-keys'
4
-
5
- describe('test camelcase keys', () => {
6
- it('case 1 normal', () => {
7
- const obj = {
8
- tool: 'too',
9
- tool_name: 'too_name',
10
-
11
- a_b: 1,
12
- a: 1,
13
- b: {
14
- c_d: 1,
15
- },
16
- }
17
-
18
- expect(camelcaseKeys(obj)).toStrictEqual(
19
- camelcaseKeysLib(obj, {
20
- deep: true,
21
- }),
22
- )
23
- })
24
-
25
- it('case 2: key has number', () => {
26
- const obj = {
27
- b147da0eaecbea00aeb62055: {
28
- data: {},
29
- },
30
- a_c11ab_Ac: [
31
- {
32
- a_b: 1,
33
- },
34
- 1,
35
- ],
36
- }
37
-
38
- expect(camelcaseKeys(obj)).toStrictEqual({
39
- b147da0eaecbea00aeb62055: {
40
- data: {},
41
- },
42
- aC11abAc: [
43
- {
44
- aB: 1,
45
- },
46
- 1,
47
- ],
48
- })
49
- })
50
-
51
- it('case 3: not a object', () => {
52
- const value = 1
53
- expect(camelcaseKeys(value)).toBe(value)
54
- })
55
-
56
- it('case 4: nullable value', () => {
57
- let value = null
58
- expect(camelcaseKeys(value)).toBe(value)
59
-
60
- value = undefined
61
- expect(camelcaseKeys(value)).toBe(value)
62
-
63
- value = NaN
64
- expect(camelcaseKeys(value)).toBe(value)
65
- })
66
-
67
- it('case 5: array', () => {
68
- const arr = [
69
- {
70
- a_b: 1,
71
- },
72
- null,
73
- undefined,
74
- +0,
75
- -0,
76
- Infinity,
77
- {
78
- a_b: 1,
79
- },
80
- ]
81
-
82
- expect(camelcaseKeys(arr)).toStrictEqual(
83
- camelcaseKeysLib(arr, { deep: true }),
84
- )
85
- })
86
- })
@@ -1,33 +0,0 @@
1
- import { destructureData } from '~/utils'
2
-
3
- describe('test utils', () => {
4
- test('destructureData', () => {
5
- const d = destructureData({ data: { a: 1, b: 2 } })
6
- expect(d).toEqual({ a: 1, b: 2 })
7
-
8
- const d2 = destructureData({ data: { a: 1, b: 2 }, c: 3 })
9
- expect(d2).toEqual({ data: { a: 1, b: 2 }, c: 3 })
10
-
11
- const d3 = destructureData({ data: [{ a: 1 }] })
12
- expect(d3).toEqual({ data: [{ a: 1 }] })
13
-
14
- const d4 = destructureData({ a: 1 })
15
- expect(d4).toEqual({ a: 1 })
16
-
17
- const d5 = destructureData([])
18
- expect(d5).toEqual([])
19
-
20
- const d6 = destructureData({ data: [] })
21
- expect(d6).toEqual({ data: [] })
22
-
23
- const d7 = destructureData(
24
- (() => {
25
- const d = { data: { a: 1 } }
26
- Object.defineProperty(d, '$raw', { value: { a: 1 }, enumerable: false })
27
- return d
28
- })(),
29
- )
30
- expect(d7).toEqual({ a: 1 })
31
- expect(d7.$raw).toBeTruthy()
32
- })
33
- })
@@ -1,8 +0,0 @@
1
- import { resolveFullPath } from '~/utils/path'
2
-
3
- describe('TEST path.utils', () => {
4
- it('should resolve full path', () => {
5
- const path = resolveFullPath('http://localhost:3000', '/api/v1/users')
6
- expect(path).toBe('http://localhost:3000/api/v1/users')
7
- })
8
- })
package/adaptors/axios.ts DELETED
@@ -1,44 +0,0 @@
1
- import axios, { AxiosInstance, AxiosResponse } from 'axios'
2
-
3
- import { IRequestAdapter } from '~/interfaces/adapter'
4
-
5
- // eslint-disable-next-line spaced-comment
6
- const $http = /*#__PURE__*/ axios.create({})
7
-
8
- // ignore axios `method` declare not assignable to `Method`
9
- export const axiosAdaptor: IRequestAdapter<
10
- AxiosInstance,
11
- AxiosResponse<unknown>
12
- > = Object.preventExtensions({
13
- get default() {
14
- return $http
15
- },
16
- responseWrapper: {} as any as AxiosResponse<unknown>,
17
- get(url, options) {
18
- // @ts-ignore
19
- return $http.get(url, options)
20
- },
21
- post(url, options) {
22
- const { data, ...config } = options || {}
23
- // @ts-ignore
24
- return $http.post(url, data, config)
25
- },
26
- put(url, options) {
27
- const { data, ...config } = options || {}
28
- // @ts-ignore
29
- return $http.put(url, data, config)
30
- },
31
- delete(url, options) {
32
- const { ...config } = options || {}
33
- // @ts-ignore
34
- return $http.delete(url, config)
35
- },
36
- patch(url, options) {
37
- const { data, ...config } = options || {}
38
- // @ts-ignore
39
- return $http.patch(url, data, config)
40
- },
41
- })
42
-
43
- // eslint-disable-next-line import/no-default-export
44
- export default axiosAdaptor
package/adaptors/ky.ts DELETED
@@ -1,76 +0,0 @@
1
- import ky, { Options, ResponsePromise } from 'ky'
2
- import { KyInstance } from 'ky/distribution/types/ky'
3
-
4
- import { IRequestAdapter } from '~/interfaces/adapter'
5
-
6
- // eslint-disable-next-line spaced-comment
7
- const $http: KyInstance = /*#__PURE__*/ ky.create({})
8
- // TODO post data not only json,
9
- const getDataFromKyResponse = async (response: ResponsePromise) => {
10
- const res = await response
11
-
12
- const isJsonType = res.headers
13
- .get('content-type')
14
- ?.includes('application/json')
15
- const json = isJsonType ? await res.clone().json() : null
16
-
17
- const result: Awaited<ResponsePromise> & {
18
- data: any
19
- } = {
20
- ...res,
21
- data: json ?? (await res.clone().text()),
22
- }
23
- return result
24
- }
25
-
26
- export const createKyAdaptor = (ky: KyInstance) => {
27
- const adaptor: IRequestAdapter<KyInstance, ResponsePromise> =
28
- Object.preventExtensions({
29
- get default() {
30
- return ky
31
- },
32
-
33
- responseWrapper: {} as any as ResponsePromise,
34
- get(url, options) {
35
- return getDataFromKyResponse(ky.get(url, options))
36
- },
37
- post(url, options) {
38
- const data = options.data
39
- delete options.data
40
- const kyOptions: Options = {
41
- ...options,
42
- json: data,
43
- }
44
-
45
- return getDataFromKyResponse(ky.post(url, kyOptions))
46
- },
47
- put(url, options) {
48
- const data = options.data
49
- delete options.data
50
- const kyOptions: Options = {
51
- ...options,
52
- json: data,
53
- }
54
- return getDataFromKyResponse(ky.put(url, kyOptions))
55
- },
56
-
57
- patch(url, options) {
58
- const data = options.data
59
- delete options.data
60
- const kyOptions: Options = {
61
- ...options,
62
- json: data,
63
- }
64
- return getDataFromKyResponse(ky.patch(url, kyOptions))
65
- },
66
- delete(url, options) {
67
- return getDataFromKyResponse(ky.delete(url, options))
68
- },
69
- })
70
- return adaptor
71
- }
72
-
73
- export const defaultKyAdaptor = createKyAdaptor($http)
74
-
75
- // eslint-disable-next-line import/no-default-export
76
- export default defaultKyAdaptor
@@ -1,38 +0,0 @@
1
- import { RequestMethod, RequestResponse, extend } from 'umi-request'
2
-
3
- import { IRequestAdapter } from '~/interfaces/adapter'
4
-
5
- // eslint-disable-next-line spaced-comment
6
- const $http = /*#__PURE__*/ extend({
7
- getResponse: true,
8
- requestType: 'json',
9
- responseType: 'json',
10
- })
11
-
12
- export const umiAdaptor: IRequestAdapter<
13
- RequestMethod<true>,
14
- RequestResponse
15
- > = Object.preventExtensions({
16
- get default() {
17
- return $http
18
- },
19
- responseWrapper: {} as any as RequestResponse,
20
- get(url, options) {
21
- return $http.get(url, options)
22
- },
23
- post(url, options) {
24
- return $http.post(url, options)
25
- },
26
- put(url, options) {
27
- return $http.put(url, options)
28
- },
29
- delete(url, options) {
30
- return $http.delete(url, options)
31
- },
32
- patch(url, options) {
33
- return $http.patch(url, options)
34
- },
35
- })
36
-
37
- // eslint-disable-next-line import/no-default-export
38
- export default umiAdaptor
@@ -1,43 +0,0 @@
1
- import { HTTPClient } from '.'
2
-
3
- export function attachRequestMethod<T extends HTTPClient<any, any>>(target: T) {
4
- Object.defineProperty(target, '$$get', {
5
- value(url: string, options?: any) {
6
- // HINT: method get only accept search params;
7
- const { params = {}, ...rest } = options
8
- const qs = handleSearchParams(params)
9
-
10
- return target.instance.get(`${url}${qs ? `${`?${qs}`}` : ''}`, rest)
11
- },
12
- })
13
- ;(['put', 'post', 'patch', 'delete'] as const).forEach((method) => {
14
- Object.defineProperty(target, `$$${method}`, {
15
- value(path: string, options?: any) {
16
- return target.instance[method](path, options)
17
- },
18
- })
19
- })
20
- }
21
- // FIXME: only support string value
22
- function handleSearchParams(obj: URLSearchParams | Record<string, string>) {
23
- if (!obj && typeof obj !== 'object') {
24
- throw new TypeError('params must be object.')
25
- }
26
-
27
- if (obj instanceof URLSearchParams) {
28
- return obj.toString()
29
- }
30
- const search = new URLSearchParams()
31
-
32
- Object.entries<any>(obj).forEach(([k, v]) => {
33
- if (
34
- typeof v === 'undefined' ||
35
- Object.prototype.toString.call(v) === '[object Null]'
36
- ) {
37
- return
38
- }
39
- search.set(k, v)
40
- })
41
-
42
- return search.toString()
43
- }
package/core/client.ts DELETED
@@ -1,252 +0,0 @@
1
- import {
2
- IAdaptorRequestResponseType,
3
- IRequestAdapter,
4
- } from '~/interfaces/adapter'
5
- import { ClientOptions } from '~/interfaces/client'
6
- import { IController } from '~/interfaces/controller'
7
- import { RequestOptions } from '~/interfaces/instance'
8
- import { IRequestHandler, Method } from '~/interfaces/request'
9
- import { Class } from '~/interfaces/types'
10
- import { isPlainObject } from '~/utils'
11
- import { camelcaseKeys } from '~/utils/camelcase-keys'
12
- import { resolveFullPath } from '~/utils/path'
13
-
14
- import { allContollerNames } from '../controllers'
15
- import { attachRequestMethod } from './attach-request'
16
- import { RequestError } from './error'
17
-
18
- const methodPrefix = '_$'
19
- export type { HTTPClient }
20
- class HTTPClient<
21
- T extends IRequestAdapter = IRequestAdapter,
22
- ResponseWrapper = unknown,
23
- > {
24
- private readonly _proxy: IRequestHandler<ResponseWrapper>
25
-
26
- constructor(
27
- private readonly _endpoint: string,
28
- private _adaptor: T,
29
- private options: Omit<ClientOptions, 'controllers'> = {},
30
- ) {
31
- this._endpoint = _endpoint
32
- .replace(/\/*$/, '')
33
- .replace('localhost', '127.0.0.1')
34
- this._proxy = this.buildRoute(this)()
35
- options.transformResponse =
36
- options.transformResponse || ((data) => camelcaseKeys(data))
37
-
38
- this.initGetClient()
39
-
40
- attachRequestMethod(this)
41
- }
42
-
43
- private initGetClient() {
44
- for (const name of allContollerNames) {
45
- Object.defineProperty(this, name, {
46
- get() {
47
- const client = Reflect.get(this, `${methodPrefix}${name}`)
48
- if (!client) {
49
- throw new ReferenceError(
50
- `${
51
- name.charAt(0).toUpperCase() + name.slice(1)
52
- } Client not inject yet, please inject with client.injectClients(...)`,
53
- )
54
- }
55
- return client
56
- },
57
- configurable: false,
58
- enumerable: false,
59
- })
60
- }
61
- }
62
-
63
- public injectControllers(...Controller: Class<IController>[]): void
64
- public injectControllers(Controller: Class<IController>[]): void
65
- public injectControllers(Controller: any, ...rest: any[]) {
66
- Controller = Array.isArray(Controller) ? Controller : [Controller, ...rest]
67
- for (const Client of Controller) {
68
- const cl = new Client(this)
69
-
70
- if (Array.isArray(cl.name)) {
71
- for (const name of cl.name) {
72
- attach.call(this, name, cl)
73
- }
74
- } else {
75
- attach.call(this, cl.name, cl)
76
- }
77
- }
78
-
79
- function attach(this: any, name: string, cl: IController) {
80
- Object.defineProperty(this, `${methodPrefix}${name.toLowerCase()}`, {
81
- get() {
82
- return cl
83
- },
84
- enumerable: false,
85
- configurable: false,
86
- })
87
- }
88
- }
89
-
90
- get endpoint() {
91
- return this._endpoint
92
- }
93
-
94
- get instance() {
95
- return this._adaptor
96
- }
97
-
98
- public request(options: {
99
- url: string
100
- method?: string
101
- data?: any
102
- params?: any
103
- }) {
104
- return (this as any)[`$$${String(options.method || 'get').toLowerCase()}`](
105
- options.url,
106
- options,
107
- ) as Promise<IAdaptorRequestResponseType<any>>
108
- }
109
-
110
- public get proxy() {
111
- return this._proxy
112
- }
113
-
114
- private buildRoute(manager: this): () => IRequestHandler<ResponseWrapper> {
115
- // eslint-disable-next-line @typescript-eslint/no-empty-function
116
- const noop = () => {}
117
- const methods = ['get', 'post', 'delete', 'patch', 'put']
118
- const reflectors = [
119
- 'toString',
120
- 'valueOf',
121
- 'inspect',
122
- 'constructor',
123
- Symbol.toPrimitive,
124
- ]
125
- // eslint-disable-next-line @typescript-eslint/no-this-alias
126
- const that = this
127
-
128
- return () => {
129
- const route = ['']
130
-
131
- const handler: any = {
132
- get(target: any, name: Method) {
133
- if (reflectors.includes(name))
134
- return (withBase?: boolean) => {
135
- if (withBase) {
136
- const path = resolveFullPath(that.endpoint, route.join('/'))
137
- route.length = 0
138
- return path
139
- } else {
140
- const path = route.join('/')
141
- route.length = 0
142
- return path.startsWith('/') ? path : `/${path}`
143
- }
144
- }
145
- if (methods.includes(name)) {
146
- return async (options: RequestOptions) => {
147
- const url = resolveFullPath(that.endpoint, route.join('/'))
148
- route.length = 0
149
- let res: Record<string, any> & { data: any }
150
- try {
151
- res = await manager.request({
152
- method: name,
153
- ...options,
154
- url,
155
- })
156
- } catch (e: any) {
157
- let message = e.message
158
- let code =
159
- e.code ||
160
- e.status ||
161
- e.statusCode ||
162
- e.response?.status ||
163
- e.response?.statusCode ||
164
- e.response?.code ||
165
- 500
166
-
167
- if (that.options.getCodeMessageFromException) {
168
- const errorInfo = that.options.getCodeMessageFromException(e)
169
- message = errorInfo.message || message
170
- code = errorInfo.code || code
171
- }
172
-
173
- throw that.options.customThrowResponseError
174
- ? that.options.customThrowResponseError(e)
175
- : new RequestError(message, code, url, e)
176
- }
177
-
178
- const data = res.data
179
- if (!data) {
180
- return null
181
- }
182
-
183
- const transform =
184
- (Array.isArray(data) || isPlainObject(data)) &&
185
- that.options.transformResponse
186
- ? that.options.transformResponse(data)
187
- : data
188
-
189
- if (transform && typeof transform === 'object') {
190
- Object.defineProperty(transform, '$raw', {
191
- get() {
192
- return res
193
- },
194
- enumerable: false,
195
- configurable: false,
196
- })
197
-
198
- // attach request config onto response
199
-
200
- Object.defineProperty(transform, '$request', {
201
- get() {
202
- return {
203
- url,
204
- method: name,
205
- options,
206
- }
207
- },
208
- enumerable: false,
209
- })
210
- }
211
-
212
- return transform
213
- }
214
- }
215
- route.push(name)
216
- return new Proxy(noop, handler)
217
- },
218
- // @ts-ignore
219
- apply(target: any, _, args) {
220
- route.push(...args.filter((x: string) => x !== null))
221
- return new Proxy(noop, handler)
222
- },
223
- }
224
-
225
- return new Proxy(noop, handler) as any
226
- }
227
- }
228
- }
229
-
230
- export function createClient<T extends IRequestAdapter>(adapter: T) {
231
- return <
232
- ResponseWrapper = T extends { responseWrapper: infer Type }
233
- ? Type extends undefined
234
- ? unknown
235
- : Type
236
- : unknown,
237
- >(
238
- endpoint: string,
239
- options?: ClientOptions,
240
- ) => {
241
- const client = new HTTPClient<T, ResponseWrapper>(
242
- endpoint,
243
- adapter,
244
- options,
245
- )
246
- const { controllers } = options || {}
247
- if (controllers) {
248
- client.injectControllers(controllers)
249
- }
250
- return client
251
- }
252
- }
package/core/error.ts DELETED
@@ -1,10 +0,0 @@
1
- export class RequestError extends Error {
2
- constructor(
3
- message: string,
4
- public status: number,
5
- public path: string,
6
- public raw: any,
7
- ) {
8
- super(message)
9
- }
10
- }
package/core/index.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from './client'
2
- export * from './error'