@mx-space/api-client 0.6.3 → 0.7.1

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 (334) hide show
  1. package/adaptors/axios.ts +38 -0
  2. package/adaptors/umi-request.ts +33 -0
  3. package/build/index.cjs.js +28 -27
  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 +29 -27
  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 +28 -27
  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 +69 -0
  16. package/controllers/base.ts +32 -0
  17. package/controllers/category.ts +118 -0
  18. package/controllers/comment.ts +68 -0
  19. package/controllers/index.ts +66 -0
  20. package/controllers/link.ts +28 -0
  21. package/controllers/note.ts +96 -0
  22. package/controllers/page.ts +64 -0
  23. package/controllers/post.ts +94 -0
  24. package/controllers/project.ts +27 -0
  25. package/controllers/recently.ts +53 -0
  26. package/controllers/say.ts +40 -0
  27. package/controllers/search.ts +108 -0
  28. package/controllers/snippet.ts +36 -0
  29. package/controllers/user.ts +51 -0
  30. package/core/attach-request.ts +43 -0
  31. package/core/client.ts +239 -0
  32. package/core/error.ts +10 -0
  33. package/core/index.ts +2 -0
  34. package/coverage/clover.xml +570 -0
  35. package/coverage/coverage-final.json +30 -0
  36. package/coverage/lcov-report/adaptors/axios.ts.html +199 -0
  37. package/coverage/lcov-report/adaptors/index.html +131 -0
  38. package/coverage/lcov-report/adaptors/umi-request.ts.html +184 -0
  39. package/coverage/lcov-report/auto-bind.ts.html +229 -0
  40. package/coverage/lcov-report/base.css +224 -0
  41. package/coverage/lcov-report/block-navigation.js +87 -0
  42. package/coverage/lcov-report/controllers/aggregate.ts.html +292 -0
  43. package/coverage/lcov-report/controllers/base.ts.html +181 -0
  44. package/coverage/lcov-report/controllers/category.ts.html +439 -0
  45. package/coverage/lcov-report/controllers/comment.ts.html +289 -0
  46. package/coverage/lcov-report/controllers/index.html +326 -0
  47. package/coverage/lcov-report/controllers/index.ts.html +283 -0
  48. package/coverage/lcov-report/controllers/link.ts.html +169 -0
  49. package/coverage/lcov-report/controllers/note.ts.html +373 -0
  50. package/coverage/lcov-report/controllers/page.ts.html +277 -0
  51. package/coverage/lcov-report/controllers/post.ts.html +367 -0
  52. package/coverage/lcov-report/controllers/project.ts.html +166 -0
  53. package/coverage/lcov-report/controllers/recently.ts.html +244 -0
  54. package/coverage/lcov-report/controllers/say.ts.html +205 -0
  55. package/coverage/lcov-report/controllers/search.ts.html +409 -0
  56. package/coverage/lcov-report/controllers/snippet.ts.html +193 -0
  57. package/coverage/lcov-report/controllers/user.ts.html +238 -0
  58. package/coverage/lcov-report/core/attach-request.ts.html +214 -0
  59. package/coverage/lcov-report/core/client.ts.html +802 -0
  60. package/coverage/lcov-report/core/error.ts.html +115 -0
  61. package/coverage/lcov-report/core/index.html +161 -0
  62. package/coverage/lcov-report/core/index.ts.html +91 -0
  63. package/coverage/lcov-report/favicon.png +0 -0
  64. package/coverage/lcov-report/index.html +191 -0
  65. package/coverage/lcov-report/index.ts.html +244 -0
  66. package/coverage/lcov-report/models/aggregate.ts.html +298 -0
  67. package/coverage/lcov-report/models/category.ts.html +160 -0
  68. package/coverage/lcov-report/models/index.html +131 -0
  69. package/coverage/lcov-report/prettify.css +1 -0
  70. package/coverage/lcov-report/prettify.js +2 -0
  71. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  72. package/coverage/lcov-report/sorter.js +196 -0
  73. package/coverage/lcov-report/utils/auto-bind.ts.html +229 -0
  74. package/coverage/lcov-report/utils/index.html +131 -0
  75. package/coverage/lcov-report/utils/index.ts.html +244 -0
  76. package/coverage/lcov.info +1164 -0
  77. package/dtos/comment.ts +9 -0
  78. package/esm/adaptors/axios.d.ts +3 -3
  79. package/esm/adaptors/axios.js +5 -17
  80. package/esm/adaptors/axios.js.map +1 -1
  81. package/esm/adaptors/umi-request.d.ts +3 -3
  82. package/esm/adaptors/umi-request.js +1 -0
  83. package/esm/adaptors/umi-request.js.map +1 -1
  84. package/esm/controllers/aggregate.d.ts +32 -10
  85. package/esm/controllers/aggregate.js +2 -2
  86. package/esm/controllers/aggregate.js.map +1 -1
  87. package/esm/controllers/base.d.ts +19 -7
  88. package/esm/controllers/base.js +1 -1
  89. package/esm/controllers/base.js.map +1 -1
  90. package/esm/controllers/category.d.ts +68 -12
  91. package/esm/controllers/category.js +3 -3
  92. package/esm/controllers/category.js.map +1 -1
  93. package/esm/controllers/comment.d.ts +49 -12
  94. package/esm/controllers/comment.js +1 -1
  95. package/esm/controllers/comment.js.map +1 -1
  96. package/esm/controllers/index.js.map +1 -1
  97. package/esm/controllers/link.d.ts +9 -2
  98. package/esm/controllers/link.js +1 -1
  99. package/esm/controllers/link.js.map +1 -1
  100. package/esm/controllers/note.d.ts +48 -13
  101. package/esm/controllers/note.js +2 -2
  102. package/esm/controllers/note.js.map +1 -1
  103. package/esm/controllers/page.d.ts +28 -9
  104. package/esm/controllers/page.js +2 -2
  105. package/esm/controllers/page.js.map +1 -1
  106. package/esm/controllers/post.d.ts +30 -12
  107. package/esm/controllers/post.js +2 -2
  108. package/esm/controllers/post.js.map +1 -1
  109. package/esm/controllers/project.d.ts +8 -2
  110. package/esm/controllers/project.js +1 -1
  111. package/esm/controllers/project.js.map +1 -1
  112. package/esm/controllers/recently.d.ts +35 -7
  113. package/esm/controllers/recently.js +1 -1
  114. package/esm/controllers/recently.js.map +1 -1
  115. package/esm/controllers/say.d.ts +20 -5
  116. package/esm/controllers/say.js +1 -1
  117. package/esm/controllers/say.js.map +1 -1
  118. package/esm/controllers/search.d.ts +178 -14
  119. package/esm/controllers/search.js +3 -3
  120. package/esm/controllers/search.js.map +1 -1
  121. package/esm/controllers/snippet.d.ts +21 -6
  122. package/esm/controllers/snippet.js +1 -1
  123. package/esm/controllers/snippet.js.map +1 -1
  124. package/esm/controllers/user.d.ts +33 -7
  125. package/esm/controllers/user.js +1 -1
  126. package/esm/controllers/user.js.map +1 -1
  127. package/esm/core/attach-request.d.ts +1 -1
  128. package/esm/core/attach-request.js.map +1 -1
  129. package/esm/core/client.d.ts +12 -28
  130. package/esm/core/client.js +23 -21
  131. package/esm/core/client.js.map +1 -1
  132. package/esm/core/error.js.map +1 -1
  133. package/esm/core/index.js.map +1 -1
  134. package/esm/dtos/comment.js.map +1 -1
  135. package/esm/index.d.ts +2 -1
  136. package/esm/index.js +1 -1
  137. package/esm/index.js.map +1 -1
  138. package/esm/interfaces/adapter.d.ts +9 -8
  139. package/esm/interfaces/adapter.js.map +1 -1
  140. package/esm/interfaces/client.d.ts +1 -1
  141. package/esm/interfaces/client.js.map +1 -1
  142. package/esm/interfaces/controller.js.map +1 -1
  143. package/esm/interfaces/instance.js.map +1 -1
  144. package/esm/interfaces/options.js.map +1 -1
  145. package/esm/interfaces/params.js.map +1 -1
  146. package/esm/interfaces/request.d.ts +22 -13
  147. package/esm/interfaces/request.js.map +1 -1
  148. package/esm/interfaces/types.d.ts +2 -0
  149. package/esm/interfaces/types.js +2 -0
  150. package/esm/interfaces/types.js.map +1 -0
  151. package/esm/models/aggregate.js.map +1 -1
  152. package/esm/models/base.js.map +1 -1
  153. package/esm/models/category.js.map +1 -1
  154. package/esm/models/comment.js.map +1 -1
  155. package/esm/models/index.js.map +1 -1
  156. package/esm/models/link.js.map +1 -1
  157. package/esm/models/note.js.map +1 -1
  158. package/esm/models/page.js.map +1 -1
  159. package/esm/models/post.js.map +1 -1
  160. package/esm/models/project.js.map +1 -1
  161. package/esm/models/recently.js.map +1 -1
  162. package/esm/models/say.js.map +1 -1
  163. package/esm/models/setting.js.map +1 -1
  164. package/esm/models/snippet.js.map +1 -1
  165. package/esm/models/user.js.map +1 -1
  166. package/esm/utils/auto-bind.js.map +1 -1
  167. package/esm/utils/index.d.ts +1 -1
  168. package/esm/utils/index.js +2 -2
  169. package/esm/utils/index.js.map +1 -1
  170. package/index.ts +13 -0
  171. package/interfaces/adapter.ts +35 -0
  172. package/interfaces/client.ts +6 -0
  173. package/interfaces/controller.ts +5 -0
  174. package/interfaces/instance.ts +8 -0
  175. package/interfaces/options.ts +1 -0
  176. package/interfaces/params.ts +4 -0
  177. package/interfaces/request.ts +82 -0
  178. package/interfaces/types.ts +3 -0
  179. package/jest.config.js +12 -0
  180. package/lib/adaptors/axios.d.ts +3 -3
  181. package/lib/adaptors/axios.js +5 -17
  182. package/lib/adaptors/axios.js.map +1 -1
  183. package/lib/adaptors/umi-request.d.ts +3 -3
  184. package/lib/adaptors/umi-request.js +1 -0
  185. package/lib/adaptors/umi-request.js.map +1 -1
  186. package/lib/controllers/aggregate.d.ts +32 -10
  187. package/lib/controllers/aggregate.js.map +1 -1
  188. package/lib/controllers/base.d.ts +19 -7
  189. package/lib/controllers/base.js.map +1 -1
  190. package/lib/controllers/category.d.ts +68 -12
  191. package/lib/controllers/category.js +1 -1
  192. package/lib/controllers/category.js.map +1 -1
  193. package/lib/controllers/comment.d.ts +49 -12
  194. package/lib/controllers/comment.js.map +1 -1
  195. package/lib/controllers/index.js.map +1 -1
  196. package/lib/controllers/link.d.ts +9 -2
  197. package/lib/controllers/link.js.map +1 -1
  198. package/lib/controllers/note.d.ts +48 -13
  199. package/lib/controllers/note.js +1 -1
  200. package/lib/controllers/note.js.map +1 -1
  201. package/lib/controllers/page.d.ts +28 -9
  202. package/lib/controllers/page.js +1 -1
  203. package/lib/controllers/page.js.map +1 -1
  204. package/lib/controllers/post.d.ts +30 -12
  205. package/lib/controllers/post.js +1 -1
  206. package/lib/controllers/post.js.map +1 -1
  207. package/lib/controllers/project.d.ts +8 -2
  208. package/lib/controllers/project.js.map +1 -1
  209. package/lib/controllers/recently.d.ts +35 -7
  210. package/lib/controllers/recently.js.map +1 -1
  211. package/lib/controllers/say.d.ts +20 -5
  212. package/lib/controllers/say.js.map +1 -1
  213. package/lib/controllers/search.d.ts +178 -14
  214. package/lib/controllers/search.js +2 -2
  215. package/lib/controllers/search.js.map +1 -1
  216. package/lib/controllers/snippet.d.ts +21 -6
  217. package/lib/controllers/snippet.js.map +1 -1
  218. package/lib/controllers/user.d.ts +33 -7
  219. package/lib/controllers/user.js.map +1 -1
  220. package/lib/core/attach-request.d.ts +1 -1
  221. package/lib/core/attach-request.js.map +1 -1
  222. package/lib/core/client.d.ts +12 -28
  223. package/lib/core/client.js +21 -20
  224. package/lib/core/client.js.map +1 -1
  225. package/lib/core/error.js.map +1 -1
  226. package/lib/core/index.js.map +1 -1
  227. package/lib/dtos/comment.js.map +1 -1
  228. package/lib/index.d.ts +2 -1
  229. package/lib/index.js +1 -2
  230. package/lib/index.js.map +1 -1
  231. package/lib/interfaces/adapter.d.ts +9 -8
  232. package/lib/interfaces/adapter.js.map +1 -1
  233. package/lib/interfaces/client.d.ts +1 -1
  234. package/lib/interfaces/client.js.map +1 -1
  235. package/lib/interfaces/controller.js.map +1 -1
  236. package/lib/interfaces/instance.js.map +1 -1
  237. package/lib/interfaces/options.js.map +1 -1
  238. package/lib/interfaces/params.js.map +1 -1
  239. package/lib/interfaces/request.d.ts +22 -13
  240. package/lib/interfaces/request.js.map +1 -1
  241. package/lib/interfaces/types.d.ts +2 -0
  242. package/lib/interfaces/types.js +3 -0
  243. package/lib/interfaces/types.js.map +1 -0
  244. package/lib/models/aggregate.js.map +1 -1
  245. package/lib/models/base.js.map +1 -1
  246. package/lib/models/category.js.map +1 -1
  247. package/lib/models/comment.js.map +1 -1
  248. package/lib/models/index.js.map +1 -1
  249. package/lib/models/link.js.map +1 -1
  250. package/lib/models/note.js.map +1 -1
  251. package/lib/models/page.js.map +1 -1
  252. package/lib/models/post.js.map +1 -1
  253. package/lib/models/project.js.map +1 -1
  254. package/lib/models/recently.js.map +1 -1
  255. package/lib/models/say.js.map +1 -1
  256. package/lib/models/setting.js.map +1 -1
  257. package/lib/models/snippet.js.map +1 -1
  258. package/lib/models/user.js.map +1 -1
  259. package/lib/utils/auto-bind.js.map +1 -1
  260. package/lib/utils/index.d.ts +1 -1
  261. package/lib/utils/index.js +2 -2
  262. package/lib/utils/index.js.map +1 -1
  263. package/models/aggregate.ts +71 -0
  264. package/models/base.ts +43 -0
  265. package/models/category.ts +25 -0
  266. package/models/comment.ts +37 -0
  267. package/models/index.ts +14 -0
  268. package/models/link.ts +23 -0
  269. package/models/note.ts +37 -0
  270. package/models/page.ts +20 -0
  271. package/models/post.ts +16 -0
  272. package/models/project.ts +12 -0
  273. package/models/recently.ts +7 -0
  274. package/models/say.ts +7 -0
  275. package/models/setting.ts +68 -0
  276. package/models/snippet.ts +18 -0
  277. package/models/user.ts +27 -0
  278. package/package.json +10 -44
  279. package/tsconfig.build.json +6 -0
  280. package/tsconfig.cjs.json +7 -0
  281. package/tsconfig.json +13 -11
  282. package/tsconfig.types.json +18 -0
  283. package/types/adaptors/axios.d.ts +3 -0
  284. package/types/adaptors/umi-request.d.ts +3 -0
  285. package/types/controllers/aggregate.d.ts +64 -0
  286. package/types/controllers/base.d.ts +39 -0
  287. package/types/controllers/category.d.ts +114 -0
  288. package/types/controllers/comment.d.ts +81 -0
  289. package/types/controllers/index.d.ts +16 -0
  290. package/types/controllers/link.d.ts +16 -0
  291. package/types/controllers/note.d.ts +94 -0
  292. package/types/controllers/page.d.ts +59 -0
  293. package/types/controllers/post.d.ts +72 -0
  294. package/types/controllers/project.d.ts +15 -0
  295. package/types/controllers/recently.d.ts +61 -0
  296. package/types/controllers/say.d.ts +37 -0
  297. package/types/controllers/search.d.ts +247 -0
  298. package/types/controllers/snippet.d.ts +33 -0
  299. package/types/controllers/user.d.ts +54 -0
  300. package/types/core/attach-request.d.ts +2 -0
  301. package/types/core/client.d.ts +29 -0
  302. package/types/core/error.d.ts +6 -0
  303. package/types/core/index.d.ts +2 -0
  304. package/types/dtos/comment.d.ts +6 -0
  305. package/types/index.d.ts +7 -0
  306. package/types/interfaces/adapter.d.ts +14 -0
  307. package/types/interfaces/client.d.ts +5 -0
  308. package/types/interfaces/controller.d.ts +4 -0
  309. package/types/interfaces/instance.d.ts +7 -0
  310. package/types/interfaces/options.d.ts +1 -0
  311. package/types/interfaces/params.d.ts +4 -0
  312. package/types/interfaces/request.d.ts +43 -0
  313. package/types/interfaces/types.d.ts +2 -0
  314. package/types/models/aggregate.d.ts +53 -0
  315. package/types/models/base.d.ts +37 -0
  316. package/types/models/category.d.ts +22 -0
  317. package/types/models/comment.d.ts +34 -0
  318. package/types/models/index.d.ts +14 -0
  319. package/types/models/link.d.ts +20 -0
  320. package/types/models/note.d.ts +30 -0
  321. package/types/models/page.d.ts +14 -0
  322. package/types/models/post.d.ts +15 -0
  323. package/types/models/project.d.ts +11 -0
  324. package/types/models/recently.d.ts +6 -0
  325. package/types/models/say.d.ts +6 -0
  326. package/types/models/setting.d.ts +66 -0
  327. package/types/models/snippet.d.ts +16 -0
  328. package/types/models/user.d.ts +21 -0
  329. package/types/utils/auto-bind.d.ts +4 -0
  330. package/types/utils/index.d.ts +5 -0
  331. package/utils/auto-bind.ts +48 -0
  332. package/utils/index.ts +53 -0
  333. package/build/index.d.ts +0 -932
  334. package/readme.md +0 -84
@@ -0,0 +1,20 @@
1
+ import { BaseModel } from './base';
2
+ export declare enum LinkType {
3
+ Friend = 0,
4
+ Collection = 1
5
+ }
6
+ export declare enum LinkState {
7
+ Pass = 0,
8
+ Audit = 1,
9
+ Outdate = 2,
10
+ Banned = 3
11
+ }
12
+ export interface LinkModel extends BaseModel {
13
+ name: string;
14
+ url: string;
15
+ avatar: string;
16
+ description?: string;
17
+ type: LinkType;
18
+ state: LinkState;
19
+ hide: boolean;
20
+ }
@@ -0,0 +1,30 @@
1
+ import { TextBaseModel } from './base';
2
+ export interface NoteModel extends TextBaseModel {
3
+ hide: boolean;
4
+ count: {
5
+ read: number;
6
+ like: number;
7
+ };
8
+ mood?: string;
9
+ weather?: string;
10
+ hasMemory?: boolean;
11
+ secret?: Date;
12
+ password?: string | null;
13
+ nid: number;
14
+ music?: NoteMusicRecord[];
15
+ location?: string;
16
+ coordinates?: Coordinate;
17
+ }
18
+ export interface NoteMusicRecord {
19
+ type: string;
20
+ id: string;
21
+ }
22
+ export interface Coordinate {
23
+ latitude: number;
24
+ longitude: number;
25
+ }
26
+ export interface NoteWrappedPayload {
27
+ data: NoteModel;
28
+ next?: Partial<NoteModel>;
29
+ prev?: Partial<NoteModel>;
30
+ }
@@ -0,0 +1,14 @@
1
+ import { TextBaseModel } from './base';
2
+ export declare enum EnumPageType {
3
+ 'md' = "md",
4
+ 'html' = "html",
5
+ 'frame' = "frame"
6
+ }
7
+ export interface PageModel extends TextBaseModel {
8
+ created: string;
9
+ slug: string;
10
+ subtitle?: string;
11
+ order?: number;
12
+ type?: EnumPageType;
13
+ options?: object;
14
+ }
@@ -0,0 +1,15 @@
1
+ import { Count, Image, TextBaseModel } from './base';
2
+ import { CategoryModel } from './category';
3
+ export interface PostModel extends TextBaseModel {
4
+ summary?: string;
5
+ hide: boolean;
6
+ copyright: boolean;
7
+ tags: string[];
8
+ count: Count;
9
+ text: string;
10
+ title: string;
11
+ slug: string;
12
+ categoryId: string;
13
+ images: Image[];
14
+ category: CategoryModel;
15
+ }
@@ -0,0 +1,11 @@
1
+ import { BaseModel } from './base';
2
+ export interface ProjectModel extends BaseModel {
3
+ name: string;
4
+ previewUrl?: string;
5
+ docUrl?: string;
6
+ projectUrl?: string;
7
+ images?: string[];
8
+ description: string;
9
+ avatar?: string;
10
+ text: string;
11
+ }
@@ -0,0 +1,6 @@
1
+ import { BaseModel } from './base';
2
+ export interface RecentlyModel extends BaseModel {
3
+ content: string;
4
+ project?: string;
5
+ language?: string;
6
+ }
@@ -0,0 +1,6 @@
1
+ import { BaseModel } from './base';
2
+ export interface SayModel extends BaseModel {
3
+ text: string;
4
+ source?: string;
5
+ author?: string;
6
+ }
@@ -0,0 +1,66 @@
1
+ export declare class SeoOptionModel {
2
+ title: string;
3
+ description: string;
4
+ icon?: string;
5
+ keywords?: string[];
6
+ }
7
+ export declare class UrlOptionModel {
8
+ webUrl: string;
9
+ adminUrl: string;
10
+ serverUrl: string;
11
+ wsUrl: string;
12
+ }
13
+ declare class MailOptionModel {
14
+ port: number;
15
+ host: string;
16
+ }
17
+ export declare class MailOptionsModel {
18
+ enable: boolean;
19
+ user: string;
20
+ pass: string;
21
+ options?: MailOptionModel;
22
+ }
23
+ export declare class CommentOptionsModel {
24
+ antiSpam: boolean;
25
+ spamKeywords?: string[];
26
+ blockIps?: string[];
27
+ disableNoChinese?: boolean;
28
+ }
29
+ export declare class BackupOptionsModel {
30
+ enable: boolean;
31
+ secretId?: string;
32
+ secretKey?: string;
33
+ bucket?: string;
34
+ region: string;
35
+ }
36
+ export declare class BaiduSearchOptionsModel {
37
+ enable: boolean;
38
+ token?: string;
39
+ }
40
+ export declare class AlgoliaSearchOptionsModel {
41
+ enable: boolean;
42
+ apiKey?: string;
43
+ appId?: string;
44
+ indexName?: string;
45
+ }
46
+ export declare class AdminExtraModel {
47
+ background?: string;
48
+ gaodemapKey?: string;
49
+ title?: string;
50
+ /**
51
+ * 是否开启后台反代访问
52
+ */
53
+ enableAdminProxy?: boolean;
54
+ }
55
+ export interface IConfig {
56
+ seo: SeoOptionModel;
57
+ url: UrlOptionModel;
58
+ mailOptions: MailOptionsModel;
59
+ commentOptions: CommentOptionsModel;
60
+ backupOptions: BackupOptionsModel;
61
+ baiduSearchOptions: BaiduSearchOptionsModel;
62
+ algoliaSearchOptions: AlgoliaSearchOptionsModel;
63
+ adminExtra: AdminExtraModel;
64
+ }
65
+ export declare type IConfigKeys = keyof IConfig;
66
+ export {};
@@ -0,0 +1,16 @@
1
+ import { BaseModel } from './base';
2
+ export declare enum SnippetType {
3
+ JSON = "json",
4
+ Text = "text",
5
+ YAML = "yaml"
6
+ }
7
+ export interface SnippetModel<T = unknown> extends BaseModel {
8
+ type: SnippetType;
9
+ private: boolean;
10
+ raw: string;
11
+ name: string;
12
+ reference: string;
13
+ comment?: string;
14
+ metatype?: string;
15
+ data: T;
16
+ }
@@ -0,0 +1,21 @@
1
+ import { BaseModel } from './base';
2
+ export interface UserModel extends BaseModel {
3
+ introduce: string;
4
+ mail: string;
5
+ url: string;
6
+ name: string;
7
+ socialIds: Record<string, string>;
8
+ username: string;
9
+ modified: string;
10
+ v: number;
11
+ lastLoginTime: string;
12
+ lastLoginIp?: string;
13
+ avatar: string;
14
+ postID: string;
15
+ }
16
+ export declare type TLogin = {
17
+ token: string;
18
+ expiresIn: number;
19
+ lastLoginTime: null | string;
20
+ lastLoginIp?: null | string;
21
+ } & Pick<UserModel, 'name' | 'username' | 'created' | 'url' | 'mail' | 'avatar' | 'id'>;
@@ -0,0 +1,4 @@
1
+ export declare function autoBind(self: any, { include, exclude }?: {
2
+ include: any;
3
+ exclude: any;
4
+ }): any;
@@ -0,0 +1,5 @@
1
+ import { SortOrder } from '../interfaces/options';
2
+ export declare const isPlainObject: (obj: any) => any;
3
+ export declare const sortOrderToNumber: (order: SortOrder) => number;
4
+ export declare const destructureData: (payload: any) => any;
5
+ export declare const attachRawFromOneToAnthor: (from: any, to: any) => void;
@@ -0,0 +1,48 @@
1
+ // @ts-nocheck
2
+ // @copy: https://github.com/sindresorhus/auto-bind/blob/main/index.js
3
+
4
+ // Gets all non-builtin properties up the prototype chain.
5
+ const getAllProperties = (object) => {
6
+ const properties = new Set()
7
+
8
+ do {
9
+ for (const key of Reflect.ownKeys(object)) {
10
+ properties.add([object, key])
11
+ }
12
+ } while (
13
+ (object = Reflect.getPrototypeOf(object)) &&
14
+ object !== Object.prototype
15
+ )
16
+
17
+ return properties
18
+ }
19
+
20
+ export function autoBind(self, { include, exclude } = {}) {
21
+ const filter = (key) => {
22
+ const match = (pattern) =>
23
+ typeof pattern === 'string' ? key === pattern : pattern.test(key)
24
+
25
+ if (include) {
26
+ return include.some(match)
27
+ }
28
+
29
+ if (exclude) {
30
+ return !exclude.some(match)
31
+ }
32
+
33
+ return true
34
+ }
35
+
36
+ for (const [object, key] of getAllProperties(self.constructor.prototype)) {
37
+ if (key === 'constructor' || !filter(key)) {
38
+ continue
39
+ }
40
+
41
+ const descriptor = Reflect.getOwnPropertyDescriptor(object, key)
42
+ if (descriptor && typeof descriptor.value === 'function') {
43
+ self[key] = self[key].bind(self)
44
+ }
45
+ }
46
+
47
+ return self
48
+ }
package/utils/index.ts ADDED
@@ -0,0 +1,53 @@
1
+ import { SortOrder } from '~/interfaces/options'
2
+
3
+ export const isPlainObject = (obj: any) =>
4
+ isObject(obj) &&
5
+ Object.prototype.toString.call(obj) === '[object Object]' &&
6
+ Object.getPrototypeOf(obj) === Object.prototype
7
+
8
+ export const sortOrderToNumber = (order: SortOrder) => {
9
+ return (
10
+ {
11
+ asc: 1,
12
+ desc: -1,
13
+ }[order] || 1
14
+ )
15
+ }
16
+ const isObject = (obj: any) => obj && typeof obj === 'object'
17
+ export const destructureData = (payload: any) => {
18
+ if (typeof payload !== 'object') {
19
+ return payload
20
+ }
21
+ if (payload === null) {
22
+ return payload
23
+ }
24
+
25
+ const data = payload.data
26
+
27
+ const dataIsPlainObject = isPlainObject(data)
28
+
29
+ if (dataIsPlainObject && Object.keys(payload).length === 1) {
30
+ const d = Object.assign({}, data)
31
+ // attach raw onto new data
32
+ attachRawFromOneToAnthor(payload, d)
33
+ return d
34
+ }
35
+
36
+ return payload
37
+ }
38
+
39
+ export const attachRawFromOneToAnthor = (from: any, to: any) => {
40
+ if (!from || !isObject(to)) {
41
+ return
42
+ }
43
+ from.$raw &&
44
+ Object.defineProperty(to, '$raw', {
45
+ value: { ...from.$raw },
46
+ enumerable: false,
47
+ })
48
+ from.$request &&
49
+ Object.defineProperty(to, '$request', {
50
+ value: { ...from.$request },
51
+ enumerable: false,
52
+ })
53
+ }