@mx-space/api-client 0.7.0 → 0.7.3

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 (239) hide show
  1. package/adaptors/axios.ts +34 -32
  2. package/adaptors/umi-request.ts +25 -22
  3. package/build/index.cjs.js +30 -32
  4. package/build/index.cjs.js.map +1 -1
  5. package/build/index.cjs.min.js +1 -1
  6. package/build/index.cjs.min.js.map +1 -1
  7. package/build/index.esm.js +30 -32
  8. package/build/index.esm.js.map +1 -1
  9. package/build/index.esm.min.js +1 -1
  10. package/build/index.esm.min.js.map +1 -1
  11. package/build/index.umd.js +30 -32
  12. package/build/index.umd.js.map +1 -1
  13. package/build/index.umd.min.js +1 -1
  14. package/build/index.umd.min.js.map +1 -1
  15. package/controllers/aggregate.ts +9 -5
  16. package/controllers/base.ts +3 -3
  17. package/controllers/category.ts +18 -7
  18. package/controllers/comment.ts +10 -6
  19. package/controllers/index.ts +4 -0
  20. package/controllers/link.ts +11 -4
  21. package/controllers/note.ts +11 -7
  22. package/controllers/page.ts +10 -5
  23. package/controllers/post.ts +15 -8
  24. package/controllers/project.ts +10 -3
  25. package/controllers/recently.ts +10 -5
  26. package/controllers/say.ts +10 -5
  27. package/controllers/search.ts +14 -7
  28. package/controllers/severless.ts +31 -0
  29. package/controllers/snippet.ts +11 -6
  30. package/controllers/user.ts +10 -5
  31. package/core/attach-request.ts +1 -1
  32. package/core/client.ts +37 -47
  33. package/coverage/clover.xml +357 -337
  34. package/coverage/coverage-final.json +27 -26
  35. package/coverage/lcov-report/adaptors/axios.ts.html +50 -44
  36. package/coverage/lcov-report/adaptors/index.html +24 -24
  37. package/coverage/lcov-report/adaptors/umi-request.ts.html +42 -33
  38. package/coverage/lcov-report/auto-bind.ts.html +229 -0
  39. package/coverage/lcov-report/controllers/aggregate.ts.html +23 -11
  40. package/coverage/lcov-report/controllers/base.ts.html +6 -6
  41. package/coverage/lcov-report/controllers/category.ts.html +48 -15
  42. package/coverage/lcov-report/controllers/comment.ts.html +23 -11
  43. package/coverage/lcov-report/controllers/index.html +26 -11
  44. package/coverage/lcov-report/controllers/index.ts.html +40 -28
  45. package/coverage/lcov-report/controllers/link.ts.html +31 -10
  46. package/coverage/lcov-report/controllers/note.ts.html +24 -12
  47. package/coverage/lcov-report/controllers/page.ts.html +25 -10
  48. package/coverage/lcov-report/controllers/post.ts.html +39 -18
  49. package/coverage/lcov-report/controllers/project.ts.html +30 -9
  50. package/coverage/lcov-report/controllers/recently.ts.html +25 -10
  51. package/coverage/lcov-report/controllers/say.ts.html +26 -11
  52. package/coverage/lcov-report/controllers/search.ts.html +33 -12
  53. package/coverage/lcov-report/controllers/severless.ts.html +178 -0
  54. package/coverage/lcov-report/controllers/snippet.ts.html +26 -11
  55. package/coverage/lcov-report/controllers/user.ts.html +25 -10
  56. package/coverage/lcov-report/core/attach-request.ts.html +14 -14
  57. package/coverage/lcov-report/core/client.ts.html +120 -150
  58. package/coverage/lcov-report/core/error.ts.html +2 -2
  59. package/coverage/lcov-report/core/index.html +18 -18
  60. package/coverage/lcov-report/core/index.ts.html +3 -3
  61. package/coverage/lcov-report/index.html +34 -34
  62. package/coverage/lcov-report/index.ts.html +244 -0
  63. package/coverage/lcov-report/models/aggregate.ts.html +1 -1
  64. package/coverage/lcov-report/models/category.ts.html +4 -4
  65. package/coverage/lcov-report/models/index.html +1 -1
  66. package/coverage/lcov-report/utils/auto-bind.ts.html +20 -20
  67. package/coverage/lcov-report/utils/index.html +1 -1
  68. package/coverage/lcov-report/utils/index.ts.html +7 -7
  69. package/coverage/lcov.info +615 -577
  70. package/esm/adaptors/axios.d.ts +2 -2
  71. package/esm/adaptors/axios.js +1 -0
  72. package/esm/adaptors/axios.js.map +1 -1
  73. package/esm/adaptors/umi-request.d.ts +2 -2
  74. package/esm/adaptors/umi-request.js +1 -0
  75. package/esm/adaptors/umi-request.js.map +1 -1
  76. package/esm/controllers/aggregate.d.ts +25 -8
  77. package/esm/controllers/aggregate.js.map +1 -1
  78. package/esm/controllers/base.d.ts +17 -5
  79. package/esm/controllers/category.d.ts +64 -13
  80. package/esm/controllers/category.js.map +1 -1
  81. package/esm/controllers/comment.d.ts +42 -10
  82. package/esm/controllers/comment.js.map +1 -1
  83. package/esm/controllers/index.d.ts +4 -3
  84. package/esm/controllers/index.js +4 -1
  85. package/esm/controllers/index.js.map +1 -1
  86. package/esm/controllers/link.d.ts +5 -4
  87. package/esm/controllers/link.js.map +1 -1
  88. package/esm/controllers/note.d.ts +42 -12
  89. package/esm/controllers/note.js.map +1 -1
  90. package/esm/controllers/page.d.ts +22 -8
  91. package/esm/controllers/page.js.map +1 -1
  92. package/esm/controllers/post.d.ts +24 -11
  93. package/esm/controllers/post.js.map +1 -1
  94. package/esm/controllers/project.d.ts +4 -3
  95. package/esm/controllers/project.js.map +1 -1
  96. package/esm/controllers/recently.d.ts +30 -8
  97. package/esm/controllers/recently.js.map +1 -1
  98. package/esm/controllers/say.d.ts +15 -5
  99. package/esm/controllers/say.js.map +1 -1
  100. package/esm/controllers/search.d.ts +168 -9
  101. package/esm/controllers/search.js.map +1 -1
  102. package/esm/controllers/severless.d.ts +24 -0
  103. package/esm/controllers/severless.js +16 -0
  104. package/esm/controllers/severless.js.map +1 -0
  105. package/esm/controllers/snippet.d.ts +17 -7
  106. package/esm/controllers/snippet.js.map +1 -1
  107. package/esm/controllers/user.d.ts +28 -8
  108. package/esm/controllers/user.js.map +1 -1
  109. package/esm/core/attach-request.d.ts +1 -1
  110. package/esm/core/attach-request.js.map +1 -1
  111. package/esm/core/client.d.ts +9 -6
  112. package/esm/core/client.js +13 -32
  113. package/esm/core/client.js.map +1 -1
  114. package/esm/index.d.ts +2 -1
  115. package/esm/index.js +1 -1
  116. package/esm/index.js.map +1 -1
  117. package/esm/interfaces/adapter.d.ts +9 -8
  118. package/esm/interfaces/client.d.ts +1 -1
  119. package/esm/interfaces/request.d.ts +22 -13
  120. package/esm/interfaces/types.d.ts +2 -0
  121. package/esm/interfaces/types.js +2 -0
  122. package/esm/interfaces/types.js.map +1 -0
  123. package/esm/models/post.d.ts +0 -1
  124. package/index.ts +2 -1
  125. package/interfaces/adapter.ts +29 -24
  126. package/interfaces/client.ts +1 -1
  127. package/interfaces/request.ts +45 -20
  128. package/{types/helper.d.ts → interfaces/types.ts} +0 -0
  129. package/lib/adaptors/axios.d.ts +2 -2
  130. package/lib/adaptors/axios.js +1 -0
  131. package/lib/adaptors/axios.js.map +1 -1
  132. package/lib/adaptors/umi-request.d.ts +2 -2
  133. package/lib/adaptors/umi-request.js +1 -0
  134. package/lib/adaptors/umi-request.js.map +1 -1
  135. package/lib/controllers/aggregate.d.ts +25 -8
  136. package/lib/controllers/aggregate.js.map +1 -1
  137. package/lib/controllers/base.d.ts +17 -5
  138. package/lib/controllers/category.d.ts +64 -13
  139. package/lib/controllers/category.js.map +1 -1
  140. package/lib/controllers/comment.d.ts +42 -10
  141. package/lib/controllers/comment.js.map +1 -1
  142. package/lib/controllers/index.d.ts +4 -3
  143. package/lib/controllers/index.js +5 -1
  144. package/lib/controllers/index.js.map +1 -1
  145. package/lib/controllers/link.d.ts +5 -4
  146. package/lib/controllers/link.js.map +1 -1
  147. package/lib/controllers/note.d.ts +42 -12
  148. package/lib/controllers/note.js.map +1 -1
  149. package/lib/controllers/page.d.ts +22 -8
  150. package/lib/controllers/page.js.map +1 -1
  151. package/lib/controllers/post.d.ts +24 -11
  152. package/lib/controllers/post.js.map +1 -1
  153. package/lib/controllers/project.d.ts +4 -3
  154. package/lib/controllers/project.js.map +1 -1
  155. package/lib/controllers/recently.d.ts +30 -8
  156. package/lib/controllers/recently.js.map +1 -1
  157. package/lib/controllers/say.d.ts +15 -5
  158. package/lib/controllers/say.js.map +1 -1
  159. package/lib/controllers/search.d.ts +168 -9
  160. package/lib/controllers/search.js.map +1 -1
  161. package/lib/controllers/severless.d.ts +24 -0
  162. package/lib/controllers/severless.js +20 -0
  163. package/lib/controllers/severless.js.map +1 -0
  164. package/lib/controllers/snippet.d.ts +17 -7
  165. package/lib/controllers/snippet.js.map +1 -1
  166. package/lib/controllers/user.d.ts +28 -8
  167. package/lib/controllers/user.js.map +1 -1
  168. package/lib/core/attach-request.d.ts +1 -1
  169. package/lib/core/attach-request.js.map +1 -1
  170. package/lib/core/client.d.ts +9 -6
  171. package/lib/core/client.js +13 -33
  172. package/lib/core/client.js.map +1 -1
  173. package/lib/core/index.js +5 -1
  174. package/lib/core/index.js.map +1 -1
  175. package/lib/index.d.ts +2 -1
  176. package/lib/index.js +6 -3
  177. package/lib/index.js.map +1 -1
  178. package/lib/interfaces/adapter.d.ts +9 -8
  179. package/lib/interfaces/client.d.ts +1 -1
  180. package/lib/interfaces/request.d.ts +22 -13
  181. package/lib/interfaces/types.d.ts +2 -0
  182. package/lib/interfaces/types.js +3 -0
  183. package/lib/interfaces/types.js.map +1 -0
  184. package/lib/models/index.js +5 -1
  185. package/lib/models/index.js.map +1 -1
  186. package/lib/models/post.d.ts +0 -1
  187. package/models/post.ts +0 -1
  188. package/package.json +12 -12
  189. package/tsconfig.json +25 -4
  190. package/tsconfig.types.json +18 -0
  191. package/types/adaptors/axios.d.ts +3 -0
  192. package/types/adaptors/umi-request.d.ts +3 -0
  193. package/types/controllers/aggregate.d.ts +64 -0
  194. package/types/controllers/base.d.ts +39 -0
  195. package/types/controllers/category.d.ts +114 -0
  196. package/types/controllers/comment.d.ts +81 -0
  197. package/types/controllers/index.d.ts +17 -0
  198. package/types/controllers/link.d.ts +16 -0
  199. package/types/controllers/note.d.ts +94 -0
  200. package/types/controllers/page.d.ts +59 -0
  201. package/types/controllers/post.d.ts +72 -0
  202. package/types/controllers/project.d.ts +15 -0
  203. package/types/controllers/recently.d.ts +61 -0
  204. package/types/controllers/say.d.ts +37 -0
  205. package/types/controllers/search.d.ts +247 -0
  206. package/types/controllers/severless.d.ts +24 -0
  207. package/types/controllers/snippet.d.ts +33 -0
  208. package/types/controllers/user.d.ts +54 -0
  209. package/types/core/attach-request.d.ts +2 -0
  210. package/types/core/client.d.ts +29 -0
  211. package/types/core/error.d.ts +6 -0
  212. package/types/core/index.d.ts +2 -0
  213. package/types/dtos/comment.d.ts +6 -0
  214. package/types/index.d.ts +7 -0
  215. package/types/interfaces/adapter.d.ts +14 -0
  216. package/types/interfaces/client.d.ts +5 -0
  217. package/types/interfaces/controller.d.ts +4 -0
  218. package/types/interfaces/instance.d.ts +7 -0
  219. package/types/interfaces/options.d.ts +1 -0
  220. package/types/interfaces/params.d.ts +4 -0
  221. package/types/interfaces/request.d.ts +43 -0
  222. package/types/interfaces/types.d.ts +2 -0
  223. package/types/models/aggregate.d.ts +53 -0
  224. package/types/models/base.d.ts +37 -0
  225. package/types/models/category.d.ts +22 -0
  226. package/types/models/comment.d.ts +34 -0
  227. package/types/models/index.d.ts +14 -0
  228. package/types/models/link.d.ts +20 -0
  229. package/types/models/note.d.ts +30 -0
  230. package/types/models/page.d.ts +14 -0
  231. package/types/models/post.d.ts +14 -0
  232. package/types/models/project.d.ts +11 -0
  233. package/types/models/recently.d.ts +6 -0
  234. package/types/models/say.d.ts +6 -0
  235. package/types/models/setting.d.ts +66 -0
  236. package/types/models/snippet.d.ts +16 -0
  237. package/types/models/user.d.ts +21 -0
  238. package/types/utils/auto-bind.d.ts +4 -0
  239. package/types/utils/index.d.ts +5 -0
@@ -98,19 +98,29 @@
98
98
  <a name='L33'></a><a href='#L33'>33</a>
99
99
  <a name='L34'></a><a href='#L34'>34</a>
100
100
  <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
102
107
  <span class="cline-any cline-neutral">&nbsp;</span>
103
- <span class="cline-any cline-yes">15x</span>
104
108
  <span class="cline-any cline-neutral">&nbsp;</span>
105
- <span class="cline-any cline-yes">15x</span>
106
109
  <span class="cline-any cline-neutral">&nbsp;</span>
110
+ <span class="cline-any cline-yes">16x</span>
107
111
  <span class="cline-any cline-neutral">&nbsp;</span>
112
+ <span class="cline-any cline-yes">16x</span>
108
113
  <span class="cline-any cline-neutral">&nbsp;</span>
109
114
  <span class="cline-any cline-neutral">&nbsp;</span>
110
115
  <span class="cline-any cline-neutral">&nbsp;</span>
111
116
  <span class="cline-any cline-neutral">&nbsp;</span>
112
117
  <span class="cline-any cline-neutral">&nbsp;</span>
113
- <span class="cline-any cline-yes">15x</span>
118
+ <span class="cline-any cline-neutral">&nbsp;</span>
119
+ <span class="cline-any cline-neutral">&nbsp;</span>
120
+ <span class="cline-any cline-neutral">&nbsp;</span>
121
+ <span class="cline-any cline-neutral">&nbsp;</span>
122
+ <span class="cline-any cline-neutral">&nbsp;</span>
123
+ <span class="cline-any cline-yes">16x</span>
114
124
  <span class="cline-any cline-neutral">&nbsp;</span>
115
125
  <span class="cline-any cline-neutral">&nbsp;</span>
116
126
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -133,20 +143,25 @@
133
143
  <span class="cline-any cline-no">&nbsp;</span>
134
144
  <span class="cline-any cline-neutral">&nbsp;</span>
135
145
  <span class="cline-any cline-neutral">&nbsp;</span>
136
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { IController } from '~/interfaces/controller'
146
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { IRequestAdapter } from '~/interfaces/adapter'
147
+ import { IController } from '~/interfaces/controller'
148
+ import { IRequestHandler } from '~/interfaces/request'
137
149
  import { SayModel } from '~/models/say'
138
150
  import { autoBind } from '~/utils/auto-bind'
139
151
  import { HTTPClient } from '../core'
140
152
  import { BaseCrudController } from './base'
141
153
  &nbsp;
142
154
  declare module '../core/client' {
143
- interface HTTPClient {
144
- say: SayController
155
+ interface HTTPClient&lt;
156
+ T extends IRequestAdapter = IRequestAdapter,
157
+ ResponseWrapper = unknown,
158
+ &gt; {
159
+ say: SayController&lt;ResponseWrapper&gt;
145
160
  }
146
161
  }
147
162
  &nbsp;
148
- export class SayController
149
- extends BaseCrudController&lt;SayModel&gt;
163
+ export class SayController&lt;ResponseWrapper&gt;
164
+ extends BaseCrudController&lt;SayModel, ResponseWrapper&gt;
150
165
  implements IController
151
166
  {
152
167
  base = 'says'
@@ -157,7 +172,7 @@ export class SayController
157
172
  autoBind(this)
158
173
  }
159
174
  &nbsp;
160
- public get proxy() {
175
+ public get proxy(): IRequestHandler&lt;ResponseWrapper&gt; {
161
176
  return this.client.proxy(this.base)
162
177
  }
163
178
  &nbsp;
@@ -175,7 +190,7 @@ export class SayController
175
190
  <div class='footer quiet pad2 space-top1 center small'>
176
191
  Code coverage generated by
177
192
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
178
- at Mon Feb 07 2022 19:00:26 GMT+0800 (China Standard Time)
193
+ at Fri Mar 11 2022 21:47:32 GMT+0800 (China Standard Time)
179
194
  </div>
180
195
  <script src="../prettify.js"></script>
181
196
  <script>
@@ -164,13 +164,20 @@
164
164
  <a name='L99'></a><a href='#L99'>99</a>
165
165
  <a name='L100'></a><a href='#L100'>100</a>
166
166
  <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
168
175
  <span class="cline-any cline-neutral">&nbsp;</span>
169
176
  <span class="cline-any cline-neutral">&nbsp;</span>
170
177
  <span class="cline-any cline-neutral">&nbsp;</span>
171
178
  <span class="cline-any cline-neutral">&nbsp;</span>
172
- <span class="cline-any cline-yes">15x</span>
173
179
  <span class="cline-any cline-neutral">&nbsp;</span>
180
+ <span class="cline-any cline-yes">16x</span>
174
181
  <span class="cline-any cline-neutral">&nbsp;</span>
175
182
  <span class="cline-any cline-neutral">&nbsp;</span>
176
183
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -186,7 +193,11 @@
186
193
  <span class="cline-any cline-neutral">&nbsp;</span>
187
194
  <span class="cline-any cline-neutral">&nbsp;</span>
188
195
  <span class="cline-any cline-neutral">&nbsp;</span>
189
- <span class="cline-any cline-yes">15x</span>
196
+ <span class="cline-any cline-neutral">&nbsp;</span>
197
+ <span class="cline-any cline-neutral">&nbsp;</span>
198
+ <span class="cline-any cline-neutral">&nbsp;</span>
199
+ <span class="cline-any cline-neutral">&nbsp;</span>
200
+ <span class="cline-any cline-yes">16x</span>
190
201
  <span class="cline-any cline-yes">4x</span>
191
202
  <span class="cline-any cline-yes">4x</span>
192
203
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -228,6 +239,8 @@
228
239
  <span class="cline-any cline-neutral">&nbsp;</span>
229
240
  <span class="cline-any cline-neutral">&nbsp;</span>
230
241
  <span class="cline-any cline-neutral">&nbsp;</span>
242
+ <span class="cline-any cline-neutral">&nbsp;</span>
243
+ <span class="cline-any cline-neutral">&nbsp;</span>
231
244
  <span class="cline-any cline-yes">6x</span>
232
245
  <span class="cline-any cline-neutral">&nbsp;</span>
233
246
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -265,7 +278,9 @@
265
278
  <span class="cline-any cline-neutral">&nbsp;</span>
266
279
  <span class="cline-any cline-neutral">&nbsp;</span>
267
280
  <span class="cline-any cline-neutral">&nbsp;</span>
268
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { IController } from '~/interfaces/controller'
281
+ <span class="cline-any cline-neutral">&nbsp;</span>
282
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { IRequestAdapter } from '~/interfaces/adapter'
283
+ import { IController } from '~/interfaces/controller'
269
284
  import { IRequestHandler, RequestProxyResult } from '~/interfaces/request'
270
285
  import { PaginateResult } from '~/models/base'
271
286
  import { NoteModel } from '~/models/note'
@@ -275,8 +290,11 @@ import { PageModel } from '..'
275
290
  import { HTTPClient } from '../core'
276
291
  &nbsp;
277
292
  declare module '../core/client' {
278
- interface HTTPClient {
279
- search: SearchController
293
+ interface HTTPClient&lt;
294
+ T extends IRequestAdapter = IRequestAdapter,
295
+ ResponseWrapper = unknown,
296
+ &gt; {
297
+ search: SearchController&lt;ResponseWrapper&gt;
280
298
  }
281
299
  }
282
300
  &nbsp;
@@ -287,7 +305,7 @@ export type SearchOption = {
287
305
  order?: number
288
306
  rawAlgolia?: boolean
289
307
  }
290
- export class SearchController implements IController {
308
+ export class SearchController&lt;ResponseWrapper&gt; implements IController {
291
309
  base = 'search'
292
310
  name = 'search'
293
311
  &nbsp;
@@ -295,7 +313,7 @@ export class SearchController implements IController {
295
313
  autoBind(this)
296
314
  }
297
315
  &nbsp;
298
- get proxy(): IRequestHandler {
316
+ get proxy(): IRequestHandler&lt;ResponseWrapper&gt; {
299
317
  return this.client.proxy(this.base)
300
318
  }
301
319
  &nbsp;
@@ -307,7 +325,8 @@ export class SearchController implements IController {
307
325
  RequestProxyResult&lt;
308
326
  PaginateResult&lt;
309
327
  Pick&lt;NoteModel, 'modified' | 'id' | 'title' | 'created' | 'nid'&gt;
310
- &gt;
328
+ &gt;,
329
+ ResponseWrapper
311
330
  &gt;
312
331
  &gt;
313
332
  search(
@@ -321,7 +340,8 @@ export class SearchController implements IController {
321
340
  PostModel,
322
341
  'modified' | 'id' | 'title' | 'created' | 'slug' | 'category'
323
342
  &gt;
324
- &gt;
343
+ &gt;,
344
+ ResponseWrapper
325
345
  &gt;
326
346
  &gt;
327
347
  search(
@@ -361,7 +381,8 @@ export class SearchController implements IController {
361
381
  * @see: algoliasearch &lt;https://www.algolia.com/doc/api-reference/api-methods/search/&gt;
362
382
  */
363
383
  raw?: any
364
- }
384
+ },
385
+ ResponseWrapper
365
386
  &gt;
366
387
  &gt;({ params: { keyword, ...options } })
367
388
  }
@@ -373,7 +394,7 @@ export class SearchController implements IController {
373
394
  <div class='footer quiet pad2 space-top1 center small'>
374
395
  Code coverage generated by
375
396
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
376
- at Mon Feb 07 2022 19:00:26 GMT+0800 (China Standard Time)
397
+ at Fri Mar 11 2022 21:47:32 GMT+0800 (China Standard Time)
377
398
  </div>
378
399
  <script src="../prettify.js"></script>
379
400
  <script>
@@ -0,0 +1,178 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for controllers/severless.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">controllers</a> severless.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">100% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>8/8</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>3/3</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">100% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>8/8</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
98
+ <span class="cline-any cline-neutral">&nbsp;</span>
99
+ <span class="cline-any cline-neutral">&nbsp;</span>
100
+ <span class="cline-any cline-yes">16x</span>
101
+ <span class="cline-any cline-neutral">&nbsp;</span>
102
+ <span class="cline-any cline-neutral">&nbsp;</span>
103
+ <span class="cline-any cline-neutral">&nbsp;</span>
104
+ <span class="cline-any cline-neutral">&nbsp;</span>
105
+ <span class="cline-any cline-neutral">&nbsp;</span>
106
+ <span class="cline-any cline-neutral">&nbsp;</span>
107
+ <span class="cline-any cline-neutral">&nbsp;</span>
108
+ <span class="cline-any cline-neutral">&nbsp;</span>
109
+ <span class="cline-any cline-neutral">&nbsp;</span>
110
+ <span class="cline-any cline-neutral">&nbsp;</span>
111
+ <span class="cline-any cline-neutral">&nbsp;</span>
112
+ <span class="cline-any cline-yes">16x</span>
113
+ <span class="cline-any cline-yes">4x</span>
114
+ <span class="cline-any cline-yes">4x</span>
115
+ <span class="cline-any cline-neutral">&nbsp;</span>
116
+ <span class="cline-any cline-yes">4x</span>
117
+ <span class="cline-any cline-yes">4x</span>
118
+ <span class="cline-any cline-neutral">&nbsp;</span>
119
+ <span class="cline-any cline-neutral">&nbsp;</span>
120
+ <span class="cline-any cline-neutral">&nbsp;</span>
121
+ <span class="cline-any cline-yes">1x</span>
122
+ <span class="cline-any cline-neutral">&nbsp;</span>
123
+ <span class="cline-any cline-neutral">&nbsp;</span>
124
+ <span class="cline-any cline-neutral">&nbsp;</span>
125
+ <span class="cline-any cline-yes">1x</span>
126
+ <span class="cline-any cline-neutral">&nbsp;</span>
127
+ <span class="cline-any cline-neutral">&nbsp;</span>
128
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { IRequestAdapter } from '~/interfaces/adapter'
129
+ import { IController } from '~/interfaces/controller'
130
+ import { IRequestHandler } from '~/interfaces/request'
131
+ import { autoBind } from '~/utils/auto-bind'
132
+ import { HTTPClient } from '../core'
133
+ &nbsp;
134
+ declare module '../core/client' {
135
+ interface HTTPClient&lt;
136
+ T extends IRequestAdapter = IRequestAdapter,
137
+ ResponseWrapper = unknown,
138
+ &gt; {
139
+ serverless: ServerlessController&lt;ResponseWrapper&gt;
140
+ }
141
+ }
142
+ &nbsp;
143
+ export class ServerlessController&lt;ResponseWrapper&gt; implements IController {
144
+ base = 'serverless'
145
+ name = 'serverless'
146
+ &nbsp;
147
+ constructor(protected client: HTTPClient) {
148
+ autoBind(this)
149
+ }
150
+ &nbsp;
151
+ get proxy(): IRequestHandler&lt;ResponseWrapper&gt; {
152
+ return this.client.proxy(this.base)
153
+ }
154
+ &nbsp;
155
+ getByReferenceAndName&lt;T = unknown&gt;(reference: string, name: string) {
156
+ return this.proxy(reference)(name).get&lt;T&gt;()
157
+ }
158
+ }
159
+ &nbsp;</pre></td></tr></table></pre>
160
+
161
+ <div class='push'></div><!-- for sticky footer -->
162
+ </div><!-- /wrapper -->
163
+ <div class='footer quiet pad2 space-top1 center small'>
164
+ Code coverage generated by
165
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
166
+ at Fri Mar 11 2022 21:47:32 GMT+0800 (China Standard Time)
167
+ </div>
168
+ <script src="../prettify.js"></script>
169
+ <script>
170
+ window.onload = function () {
171
+ prettyPrint();
172
+ };
173
+ </script>
174
+ <script src="../sorter.js"></script>
175
+ <script src="../block-navigation.js"></script>
176
+ </body>
177
+ </html>
178
+
@@ -94,18 +94,28 @@
94
94
  <a name='L29'></a><a href='#L29'>29</a>
95
95
  <a name='L30'></a><a href='#L30'>30</a>
96
96
  <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
98
103
  <span class="cline-any cline-neutral">&nbsp;</span>
99
- <span class="cline-any cline-yes">15x</span>
100
104
  <span class="cline-any cline-neutral">&nbsp;</span>
101
105
  <span class="cline-any cline-neutral">&nbsp;</span>
106
+ <span class="cline-any cline-yes">16x</span>
102
107
  <span class="cline-any cline-neutral">&nbsp;</span>
103
108
  <span class="cline-any cline-neutral">&nbsp;</span>
104
109
  <span class="cline-any cline-neutral">&nbsp;</span>
105
110
  <span class="cline-any cline-neutral">&nbsp;</span>
106
111
  <span class="cline-any cline-neutral">&nbsp;</span>
107
112
  <span class="cline-any cline-neutral">&nbsp;</span>
108
- <span class="cline-any cline-yes">15x</span>
113
+ <span class="cline-any cline-neutral">&nbsp;</span>
114
+ <span class="cline-any cline-neutral">&nbsp;</span>
115
+ <span class="cline-any cline-neutral">&nbsp;</span>
116
+ <span class="cline-any cline-neutral">&nbsp;</span>
117
+ <span class="cline-any cline-neutral">&nbsp;</span>
118
+ <span class="cline-any cline-yes">16x</span>
109
119
  <span class="cline-any cline-yes">4x</span>
110
120
  <span class="cline-any cline-yes">4x</span>
111
121
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -125,18 +135,23 @@
125
135
  <span class="cline-any cline-yes">1x</span>
126
136
  <span class="cline-any cline-neutral">&nbsp;</span>
127
137
  <span class="cline-any cline-neutral">&nbsp;</span>
128
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { IController } from '~/interfaces/controller'
138
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { IRequestAdapter } from '~/interfaces/adapter'
139
+ import { IController } from '~/interfaces/controller'
140
+ import { IRequestHandler } from '~/interfaces/request'
129
141
  import { SnippetModel } from '~/models/snippet'
130
142
  import { autoBind } from '~/utils/auto-bind'
131
143
  import { HTTPClient } from '../core'
132
144
  &nbsp;
133
145
  declare module '../core/client' {
134
- interface HTTPClient {
135
- snippet: SnippetController
146
+ interface HTTPClient&lt;
147
+ T extends IRequestAdapter = IRequestAdapter,
148
+ ResponseWrapper = unknown,
149
+ &gt; {
150
+ snippet: SnippetController&lt;ResponseWrapper&gt;
136
151
  }
137
152
  }
138
153
  &nbsp;
139
- export class SnippetController implements IController {
154
+ export class SnippetController&lt;ResponseWrapper&gt; implements IController {
140
155
  base = 'snippets'
141
156
  name = 'snippet'
142
157
  &nbsp;
@@ -144,12 +159,12 @@ export class SnippetController implements IController {
144
159
  autoBind(this)
145
160
  }
146
161
  &nbsp;
147
- get proxy() {
162
+ get proxy(): IRequestHandler&lt;ResponseWrapper&gt; {
148
163
  return this.client.proxy(this.base)
149
164
  }
150
165
  &nbsp;
151
- getById&lt;T = unknown&gt;(id: string) {
152
- return this.proxy(id).get&lt;SnippetModel&lt;T&gt;&gt;()
166
+ getById(id: string) {
167
+ return this.proxy(id).get&lt;Omit&lt;SnippetModel, 'data'&gt;&gt;()
153
168
  }
154
169
  &nbsp;
155
170
  getByReferenceAndName&lt;T = unknown&gt;(reference: string, name: string) {
@@ -163,7 +178,7 @@ export class SnippetController implements IController {
163
178
  <div class='footer quiet pad2 space-top1 center small'>
164
179
  Code coverage generated by
165
180
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
166
- at Mon Feb 07 2022 19:00:26 GMT+0800 (China Standard Time)
181
+ at Fri Mar 11 2022 21:47:32 GMT+0800 (China Standard Time)
167
182
  </div>
168
183
  <script src="../prettify.js"></script>
169
184
  <script>
@@ -109,11 +109,16 @@
109
109
  <a name='L44'></a><a href='#L44'>44</a>
110
110
  <a name='L45'></a><a href='#L45'>45</a>
111
111
  <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
113
118
  <span class="cline-any cline-neutral">&nbsp;</span>
114
- <span class="cline-any cline-yes">15x</span>
115
119
  <span class="cline-any cline-neutral">&nbsp;</span>
116
120
  <span class="cline-any cline-neutral">&nbsp;</span>
121
+ <span class="cline-any cline-yes">16x</span>
117
122
  <span class="cline-any cline-neutral">&nbsp;</span>
118
123
  <span class="cline-any cline-neutral">&nbsp;</span>
119
124
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -121,7 +126,12 @@
121
126
  <span class="cline-any cline-neutral">&nbsp;</span>
122
127
  <span class="cline-any cline-neutral">&nbsp;</span>
123
128
  <span class="cline-any cline-neutral">&nbsp;</span>
124
- <span class="cline-any cline-yes">15x</span>
129
+ <span class="cline-any cline-neutral">&nbsp;</span>
130
+ <span class="cline-any cline-neutral">&nbsp;</span>
131
+ <span class="cline-any cline-neutral">&nbsp;</span>
132
+ <span class="cline-any cline-neutral">&nbsp;</span>
133
+ <span class="cline-any cline-neutral">&nbsp;</span>
134
+ <span class="cline-any cline-yes">16x</span>
125
135
  <span class="cline-any cline-yes">4x</span>
126
136
  <span class="cline-any cline-yes">4x</span>
127
137
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -155,19 +165,24 @@
155
165
  <span class="cline-any cline-neutral">&nbsp;</span>
156
166
  <span class="cline-any cline-neutral">&nbsp;</span>
157
167
  <span class="cline-any cline-neutral">&nbsp;</span>
158
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { IController } from '~/interfaces/controller'
168
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { IRequestAdapter } from '~/interfaces/adapter'
169
+ import { IController } from '~/interfaces/controller'
170
+ import { IRequestHandler } from '~/interfaces/request'
159
171
  import { TLogin, UserModel } from '~/models/user'
160
172
  import { autoBind } from '~/utils/auto-bind'
161
173
  import { HTTPClient } from '../core'
162
174
  &nbsp;
163
175
  declare module '../core/client' {
164
- interface HTTPClient {
165
- user: UserController
166
- master: UserController
176
+ interface HTTPClient&lt;
177
+ T extends IRequestAdapter = IRequestAdapter,
178
+ ResponseWrapper = unknown,
179
+ &gt; {
180
+ user: UserController&lt;ResponseWrapper&gt;
181
+ master: UserController&lt;ResponseWrapper&gt;
167
182
  }
168
183
  }
169
184
  &nbsp;
170
- export class UserController implements IController {
185
+ export class UserController&lt;ResponseWrapper&gt; implements IController {
171
186
  constructor(private readonly client: HTTPClient) {
172
187
  autoBind(this)
173
188
  }
@@ -176,7 +191,7 @@ export class UserController implements IController {
176
191
  &nbsp;
177
192
  name = ['user', 'master']
178
193
  &nbsp;
179
- public get proxy() {
194
+ public get proxy(): IRequestHandler&lt;ResponseWrapper&gt; {
180
195
  return this.client.proxy(this.base)
181
196
  }
182
197
  &nbsp;
@@ -208,7 +223,7 @@ export class UserController implements IController {
208
223
  <div class='footer quiet pad2 space-top1 center small'>
209
224
  Code coverage generated by
210
225
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
211
- at Mon Feb 07 2022 19:00:26 GMT+0800 (China Standard Time)
226
+ at Fri Mar 11 2022 21:47:32 GMT+0800 (China Standard Time)
212
227
  </div>
213
228
  <script src="../prettify.js"></script>
214
229
  <script>
@@ -108,18 +108,18 @@
108
108
  <a name='L43'></a><a href='#L43'>43</a>
109
109
  <a name='L44'></a><a href='#L44'>44</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
110
110
  <span class="cline-any cline-neutral">&nbsp;</span>
111
- <span class="cline-any cline-yes">15x</span>
112
- <span class="cline-any cline-yes">23x</span>
111
+ <span class="cline-any cline-yes">16x</span>
112
+ <span class="cline-any cline-yes">29x</span>
113
113
  <span class="cline-any cline-neutral">&nbsp;</span>
114
114
  <span class="cline-any cline-neutral">&nbsp;</span>
115
- <span class="cline-any cline-yes">66x</span>
116
- <span class="cline-any cline-yes">66x</span>
115
+ <span class="cline-any cline-yes">71x</span>
116
+ <span class="cline-any cline-yes">71x</span>
117
117
  <span class="cline-any cline-neutral">&nbsp;</span>
118
- <span class="cline-any cline-yes">66x</span>
118
+ <span class="cline-any cline-yes">71x</span>
119
119
  <span class="cline-any cline-neutral">&nbsp;</span>
120
120
  <span class="cline-any cline-neutral">&nbsp;</span>
121
- <span class="cline-any cline-yes">23x</span>
122
- <span class="cline-any cline-yes">92x</span>
121
+ <span class="cline-any cline-yes">29x</span>
122
+ <span class="cline-any cline-yes">116x</span>
123
123
  <span class="cline-any cline-neutral">&nbsp;</span>
124
124
  <span class="cline-any cline-yes">5x</span>
125
125
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -128,16 +128,16 @@
128
128
  <span class="cline-any cline-neutral">&nbsp;</span>
129
129
  <span class="cline-any cline-neutral">&nbsp;</span>
130
130
  <span class="cline-any cline-neutral">&nbsp;</span>
131
- <span class="cline-any cline-yes">66x</span>
131
+ <span class="cline-any cline-yes">71x</span>
132
132
  <span class="cline-any cline-no">&nbsp;</span>
133
133
  <span class="cline-any cline-neutral">&nbsp;</span>
134
134
  <span class="cline-any cline-neutral">&nbsp;</span>
135
- <span class="cline-any cline-yes">66x</span>
135
+ <span class="cline-any cline-yes">71x</span>
136
136
  <span class="cline-any cline-no">&nbsp;</span>
137
137
  <span class="cline-any cline-neutral">&nbsp;</span>
138
- <span class="cline-any cline-yes">66x</span>
138
+ <span class="cline-any cline-yes">71x</span>
139
139
  <span class="cline-any cline-neutral">&nbsp;</span>
140
- <span class="cline-any cline-yes">66x</span>
140
+ <span class="cline-any cline-yes">71x</span>
141
141
  <span class="cline-any cline-yes">73x</span>
142
142
  <span class="cline-any cline-neutral">&nbsp;</span>
143
143
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -147,11 +147,11 @@
147
147
  <span class="cline-any cline-yes">42x</span>
148
148
  <span class="cline-any cline-neutral">&nbsp;</span>
149
149
  <span class="cline-any cline-neutral">&nbsp;</span>
150
- <span class="cline-any cline-yes">66x</span>
150
+ <span class="cline-any cline-yes">71x</span>
151
151
  <span class="cline-any cline-neutral">&nbsp;</span>
152
152
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { HTTPClient } from '.'
153
153
  &nbsp;
154
- export function attachRequestMethod&lt;T extends HTTPClient&gt;(target: T) {
154
+ export function attachRequestMethod&lt;T extends HTTPClient&lt;any, any&gt;&gt;(target: T) {
155
155
  Object.defineProperty(target, '$$get', {
156
156
  value: function (url: string, options?: any) {
157
157
  // HINT: method get only accept search params;
@@ -199,7 +199,7 @@ function handleSearchParams(obj: URLSearchParams | Record&lt;string, string&gt;)
199
199
  <div class='footer quiet pad2 space-top1 center small'>
200
200
  Code coverage generated by
201
201
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
202
- at Mon Feb 07 2022 19:00:26 GMT+0800 (China Standard Time)
202
+ at Fri Mar 11 2022 21:47:32 GMT+0800 (China Standard Time)
203
203
  </div>
204
204
  <script src="../prettify.js"></script>
205
205
  <script>