@mx-space/api-client 0.7.0 → 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 (216) hide show
  1. package/adaptors/axios.ts +34 -32
  2. package/adaptors/umi-request.ts +25 -22
  3. package/build/index.cjs.js +12 -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 +13 -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 +12 -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/link.ts +11 -4
  20. package/controllers/note.ts +11 -7
  21. package/controllers/page.ts +10 -5
  22. package/controllers/post.ts +15 -8
  23. package/controllers/project.ts +10 -3
  24. package/controllers/recently.ts +10 -5
  25. package/controllers/say.ts +10 -5
  26. package/controllers/search.ts +14 -7
  27. package/controllers/snippet.ts +9 -4
  28. package/controllers/user.ts +10 -5
  29. package/core/attach-request.ts +1 -1
  30. package/core/client.ts +37 -47
  31. package/coverage/clover.xml +281 -274
  32. package/coverage/coverage-final.json +20 -20
  33. package/coverage/lcov-report/adaptors/axios.ts.html +48 -42
  34. package/coverage/lcov-report/adaptors/index.html +24 -24
  35. package/coverage/lcov-report/adaptors/umi-request.ts.html +42 -33
  36. package/coverage/lcov-report/auto-bind.ts.html +229 -0
  37. package/coverage/lcov-report/controllers/aggregate.ts.html +20 -8
  38. package/coverage/lcov-report/controllers/base.ts.html +4 -4
  39. package/coverage/lcov-report/controllers/category.ts.html +43 -10
  40. package/coverage/lcov-report/controllers/comment.ts.html +21 -9
  41. package/coverage/lcov-report/controllers/index.html +1 -1
  42. package/coverage/lcov-report/controllers/index.ts.html +2 -2
  43. package/coverage/lcov-report/controllers/link.ts.html +28 -7
  44. package/coverage/lcov-report/controllers/note.ts.html +21 -9
  45. package/coverage/lcov-report/controllers/page.ts.html +22 -7
  46. package/coverage/lcov-report/controllers/post.ts.html +37 -16
  47. package/coverage/lcov-report/controllers/project.ts.html +27 -6
  48. package/coverage/lcov-report/controllers/recently.ts.html +23 -8
  49. package/coverage/lcov-report/controllers/say.ts.html +23 -8
  50. package/coverage/lcov-report/controllers/search.ts.html +31 -10
  51. package/coverage/lcov-report/controllers/snippet.ts.html +22 -7
  52. package/coverage/lcov-report/controllers/user.ts.html +23 -8
  53. package/coverage/lcov-report/core/attach-request.ts.html +13 -13
  54. package/coverage/lcov-report/core/client.ts.html +120 -150
  55. package/coverage/lcov-report/core/error.ts.html +1 -1
  56. package/coverage/lcov-report/core/index.html +18 -18
  57. package/coverage/lcov-report/core/index.ts.html +1 -1
  58. package/coverage/lcov-report/index.html +26 -26
  59. package/coverage/lcov-report/index.ts.html +244 -0
  60. package/coverage/lcov-report/models/aggregate.ts.html +1 -1
  61. package/coverage/lcov-report/models/category.ts.html +1 -1
  62. package/coverage/lcov-report/models/index.html +1 -1
  63. package/coverage/lcov-report/utils/auto-bind.ts.html +18 -18
  64. package/coverage/lcov-report/utils/index.html +1 -1
  65. package/coverage/lcov-report/utils/index.ts.html +3 -3
  66. package/coverage/lcov.info +496 -485
  67. package/esm/adaptors/axios.d.ts +2 -2
  68. package/esm/adaptors/axios.js +1 -0
  69. package/esm/adaptors/axios.js.map +1 -1
  70. package/esm/adaptors/umi-request.d.ts +2 -2
  71. package/esm/adaptors/umi-request.js +1 -0
  72. package/esm/adaptors/umi-request.js.map +1 -1
  73. package/esm/controllers/aggregate.d.ts +25 -8
  74. package/esm/controllers/aggregate.js.map +1 -1
  75. package/esm/controllers/base.d.ts +17 -5
  76. package/esm/controllers/category.d.ts +64 -13
  77. package/esm/controllers/category.js.map +1 -1
  78. package/esm/controllers/comment.d.ts +42 -10
  79. package/esm/controllers/comment.js.map +1 -1
  80. package/esm/controllers/link.d.ts +5 -4
  81. package/esm/controllers/link.js.map +1 -1
  82. package/esm/controllers/note.d.ts +42 -12
  83. package/esm/controllers/note.js.map +1 -1
  84. package/esm/controllers/page.d.ts +22 -8
  85. package/esm/controllers/page.js.map +1 -1
  86. package/esm/controllers/post.d.ts +24 -11
  87. package/esm/controllers/post.js.map +1 -1
  88. package/esm/controllers/project.d.ts +4 -3
  89. package/esm/controllers/project.js.map +1 -1
  90. package/esm/controllers/recently.d.ts +30 -8
  91. package/esm/controllers/recently.js.map +1 -1
  92. package/esm/controllers/say.d.ts +15 -5
  93. package/esm/controllers/say.js.map +1 -1
  94. package/esm/controllers/search.d.ts +168 -9
  95. package/esm/controllers/search.js.map +1 -1
  96. package/esm/controllers/snippet.d.ts +16 -6
  97. package/esm/controllers/snippet.js.map +1 -1
  98. package/esm/controllers/user.d.ts +28 -8
  99. package/esm/controllers/user.js.map +1 -1
  100. package/esm/core/attach-request.d.ts +1 -1
  101. package/esm/core/attach-request.js.map +1 -1
  102. package/esm/core/client.d.ts +9 -6
  103. package/esm/core/client.js +13 -32
  104. package/esm/core/client.js.map +1 -1
  105. package/esm/index.d.ts +2 -1
  106. package/esm/index.js +1 -1
  107. package/esm/index.js.map +1 -1
  108. package/esm/interfaces/adapter.d.ts +9 -8
  109. package/esm/interfaces/client.d.ts +1 -1
  110. package/esm/interfaces/request.d.ts +22 -13
  111. package/esm/interfaces/types.d.ts +2 -0
  112. package/esm/interfaces/types.js +2 -0
  113. package/esm/interfaces/types.js.map +1 -0
  114. package/index.ts +2 -1
  115. package/interfaces/adapter.ts +29 -24
  116. package/interfaces/client.ts +1 -1
  117. package/interfaces/request.ts +45 -20
  118. package/{types/helper.d.ts → interfaces/types.ts} +0 -0
  119. package/lib/adaptors/axios.d.ts +2 -2
  120. package/lib/adaptors/axios.js +1 -0
  121. package/lib/adaptors/axios.js.map +1 -1
  122. package/lib/adaptors/umi-request.d.ts +2 -2
  123. package/lib/adaptors/umi-request.js +1 -0
  124. package/lib/adaptors/umi-request.js.map +1 -1
  125. package/lib/controllers/aggregate.d.ts +25 -8
  126. package/lib/controllers/aggregate.js.map +1 -1
  127. package/lib/controllers/base.d.ts +17 -5
  128. package/lib/controllers/category.d.ts +64 -13
  129. package/lib/controllers/category.js.map +1 -1
  130. package/lib/controllers/comment.d.ts +42 -10
  131. package/lib/controllers/comment.js.map +1 -1
  132. package/lib/controllers/link.d.ts +5 -4
  133. package/lib/controllers/link.js.map +1 -1
  134. package/lib/controllers/note.d.ts +42 -12
  135. package/lib/controllers/note.js.map +1 -1
  136. package/lib/controllers/page.d.ts +22 -8
  137. package/lib/controllers/page.js.map +1 -1
  138. package/lib/controllers/post.d.ts +24 -11
  139. package/lib/controllers/post.js.map +1 -1
  140. package/lib/controllers/project.d.ts +4 -3
  141. package/lib/controllers/project.js.map +1 -1
  142. package/lib/controllers/recently.d.ts +30 -8
  143. package/lib/controllers/recently.js.map +1 -1
  144. package/lib/controllers/say.d.ts +15 -5
  145. package/lib/controllers/say.js.map +1 -1
  146. package/lib/controllers/search.d.ts +168 -9
  147. package/lib/controllers/search.js.map +1 -1
  148. package/lib/controllers/snippet.d.ts +16 -6
  149. package/lib/controllers/snippet.js.map +1 -1
  150. package/lib/controllers/user.d.ts +28 -8
  151. package/lib/controllers/user.js.map +1 -1
  152. package/lib/core/attach-request.d.ts +1 -1
  153. package/lib/core/attach-request.js.map +1 -1
  154. package/lib/core/client.d.ts +9 -6
  155. package/lib/core/client.js +13 -33
  156. package/lib/core/client.js.map +1 -1
  157. package/lib/index.d.ts +2 -1
  158. package/lib/index.js +1 -2
  159. package/lib/index.js.map +1 -1
  160. package/lib/interfaces/adapter.d.ts +9 -8
  161. package/lib/interfaces/client.d.ts +1 -1
  162. package/lib/interfaces/request.d.ts +22 -13
  163. package/lib/interfaces/types.d.ts +2 -0
  164. package/lib/interfaces/types.js +3 -0
  165. package/lib/interfaces/types.js.map +1 -0
  166. package/package.json +5 -5
  167. package/tsconfig.json +25 -4
  168. package/tsconfig.types.json +18 -0
  169. package/types/adaptors/axios.d.ts +3 -0
  170. package/types/adaptors/umi-request.d.ts +3 -0
  171. package/types/controllers/aggregate.d.ts +64 -0
  172. package/types/controllers/base.d.ts +39 -0
  173. package/types/controllers/category.d.ts +114 -0
  174. package/types/controllers/comment.d.ts +81 -0
  175. package/types/controllers/index.d.ts +16 -0
  176. package/types/controllers/link.d.ts +16 -0
  177. package/types/controllers/note.d.ts +94 -0
  178. package/types/controllers/page.d.ts +59 -0
  179. package/types/controllers/post.d.ts +72 -0
  180. package/types/controllers/project.d.ts +15 -0
  181. package/types/controllers/recently.d.ts +61 -0
  182. package/types/controllers/say.d.ts +37 -0
  183. package/types/controllers/search.d.ts +247 -0
  184. package/types/controllers/snippet.d.ts +33 -0
  185. package/types/controllers/user.d.ts +54 -0
  186. package/types/core/attach-request.d.ts +2 -0
  187. package/types/core/client.d.ts +29 -0
  188. package/types/core/error.d.ts +6 -0
  189. package/types/core/index.d.ts +2 -0
  190. package/types/dtos/comment.d.ts +6 -0
  191. package/types/index.d.ts +7 -0
  192. package/types/interfaces/adapter.d.ts +14 -0
  193. package/types/interfaces/client.d.ts +5 -0
  194. package/types/interfaces/controller.d.ts +4 -0
  195. package/types/interfaces/instance.d.ts +7 -0
  196. package/types/interfaces/options.d.ts +1 -0
  197. package/types/interfaces/params.d.ts +4 -0
  198. package/types/interfaces/request.d.ts +43 -0
  199. package/types/interfaces/types.d.ts +2 -0
  200. package/types/models/aggregate.d.ts +53 -0
  201. package/types/models/base.d.ts +37 -0
  202. package/types/models/category.d.ts +22 -0
  203. package/types/models/comment.d.ts +34 -0
  204. package/types/models/index.d.ts +14 -0
  205. package/types/models/link.d.ts +20 -0
  206. package/types/models/note.d.ts +30 -0
  207. package/types/models/page.d.ts +14 -0
  208. package/types/models/post.d.ts +15 -0
  209. package/types/models/project.d.ts +11 -0
  210. package/types/models/recently.d.ts +6 -0
  211. package/types/models/say.d.ts +6 -0
  212. package/types/models/setting.d.ts +66 -0
  213. package/types/models/snippet.d.ts +16 -0
  214. package/types/models/user.d.ts +21 -0
  215. package/types/utils/auto-bind.d.ts +4 -0
  216. package/types/utils/index.d.ts +5 -0
@@ -0,0 +1,72 @@
1
+ import { IRequestAdapter } from '../interfaces/adapter';
2
+ import { IController } from '../interfaces/controller';
3
+ import { IRequestHandler, RequestProxyResult } from '../interfaces/request';
4
+ import { SelectFields } from '../interfaces/types';
5
+ import { PaginateResult } from '../models/base';
6
+ import { PostModel } from '../models/post';
7
+ import { HTTPClient } from '../core/client';
8
+ declare module '../core/client' {
9
+ interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
10
+ post: PostController<ResponseWrapper>;
11
+ }
12
+ }
13
+ export declare type PostListOptions = {
14
+ select?: SelectFields<keyof PostModel>;
15
+ year?: number;
16
+ sortBy?: 'categoryId' | 'title' | 'created' | 'modified';
17
+ sortOrder?: 1 | -1;
18
+ };
19
+ export declare class PostController<ResponseWrapper> implements IController {
20
+ private client;
21
+ constructor(client: HTTPClient);
22
+ base: string;
23
+ name: string;
24
+ get proxy(): IRequestHandler<ResponseWrapper>;
25
+ /**
26
+ * 获取文章列表分页
27
+ * @param page
28
+ * @param perPage
29
+ * @returns
30
+ */
31
+ getList(page?: number, perPage?: number, options?: PostListOptions): RequestProxyResult<PaginateResult<PostModel>, ResponseWrapper, ResponseWrapper extends unknown ? {
32
+ [key: string]: any;
33
+ data: PaginateResult<PostModel>;
34
+ } : ResponseWrapper extends {
35
+ data: PaginateResult<PostModel>;
36
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
37
+ data: PaginateResult<PostModel>;
38
+ }>;
39
+ /**
40
+ * 根据分类和路径查找文章
41
+ * @param categoryName
42
+ * @param slug
43
+ */
44
+ getPost(categoryName: string, slug: string): RequestProxyResult<PostModel, ResponseWrapper>;
45
+ /**
46
+ * 根据 ID 查找文章
47
+ * @param id
48
+ */
49
+ getPost(id: string): RequestProxyResult<PostModel, ResponseWrapper>;
50
+ /**
51
+ * 获取最新的文章
52
+ */
53
+ getLatest(): RequestProxyResult<PostModel, ResponseWrapper, ResponseWrapper extends unknown ? {
54
+ [key: string]: any;
55
+ data: PostModel;
56
+ } : ResponseWrapper extends {
57
+ data: PostModel;
58
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
59
+ data: PostModel;
60
+ }>;
61
+ /**
62
+ * 点赞
63
+ */
64
+ thumbsUp(id: string): RequestProxyResult<void, ResponseWrapper, ResponseWrapper extends unknown ? {
65
+ [key: string]: any;
66
+ data: void;
67
+ } : ResponseWrapper extends {
68
+ data: void;
69
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
70
+ data: void;
71
+ }>;
72
+ }
@@ -0,0 +1,15 @@
1
+ import { IRequestAdapter } from '../interfaces/adapter';
2
+ import { ProjectModel } from '../models/project';
3
+ import { HTTPClient } from '../core';
4
+ import { BaseCrudController } from './base';
5
+ declare module '../core/client' {
6
+ interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
7
+ project: ProjectController<ResponseWrapper>;
8
+ }
9
+ }
10
+ export declare class ProjectController<ResponseWrapper> extends BaseCrudController<ProjectModel, ResponseWrapper> {
11
+ protected readonly client: HTTPClient;
12
+ constructor(client: HTTPClient);
13
+ base: string;
14
+ name: string;
15
+ }
@@ -0,0 +1,61 @@
1
+ import { IRequestAdapter } from '../interfaces/adapter';
2
+ import { IController } from '../interfaces/controller';
3
+ import { IRequestHandler } from '../interfaces/request';
4
+ import { RecentlyModel } from '../models/recently';
5
+ import { HTTPClient } from '../core';
6
+ declare module '../core/client' {
7
+ interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
8
+ recently: RecentlyController<ResponseWrapper>;
9
+ shorthand: RecentlyController<ResponseWrapper>;
10
+ }
11
+ }
12
+ export declare class RecentlyController<ResponseWrapper> implements IController {
13
+ private readonly client;
14
+ base: string;
15
+ name: string[];
16
+ constructor(client: HTTPClient);
17
+ get proxy(): IRequestHandler<ResponseWrapper>;
18
+ /**
19
+ * 获取最新一条
20
+ */
21
+ getLatestOne(): import("../interfaces/request").RequestProxyResult<RecentlyModel, ResponseWrapper, ResponseWrapper extends unknown ? {
22
+ [key: string]: any;
23
+ data: RecentlyModel;
24
+ } : ResponseWrapper extends {
25
+ data: RecentlyModel;
26
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
27
+ data: RecentlyModel;
28
+ }>;
29
+ getAll(): import("../interfaces/request").RequestProxyResult<{
30
+ data: RecentlyModel[];
31
+ }, ResponseWrapper, ResponseWrapper extends unknown ? {
32
+ [key: string]: any;
33
+ data: {
34
+ data: RecentlyModel[];
35
+ };
36
+ } : ResponseWrapper extends {
37
+ data: {
38
+ data: RecentlyModel[];
39
+ };
40
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
41
+ data: {
42
+ data: RecentlyModel[];
43
+ };
44
+ }>;
45
+ getList(before?: string | undefined, after?: string | undefined, size?: number | number): import("../interfaces/request").RequestProxyResult<{
46
+ data: RecentlyModel[];
47
+ }, ResponseWrapper, ResponseWrapper extends unknown ? {
48
+ [key: string]: any;
49
+ data: {
50
+ data: RecentlyModel[];
51
+ };
52
+ } : ResponseWrapper extends {
53
+ data: {
54
+ data: RecentlyModel[];
55
+ };
56
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
57
+ data: {
58
+ data: RecentlyModel[];
59
+ };
60
+ }>;
61
+ }
@@ -0,0 +1,37 @@
1
+ import { IRequestAdapter } from '../interfaces/adapter';
2
+ import { IController } from '../interfaces/controller';
3
+ import { IRequestHandler } from '../interfaces/request';
4
+ import { SayModel } from '../models/say';
5
+ import { HTTPClient } from '../core';
6
+ import { BaseCrudController } from './base';
7
+ declare module '../core/client' {
8
+ interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
9
+ say: SayController<ResponseWrapper>;
10
+ }
11
+ }
12
+ export declare class SayController<ResponseWrapper> extends BaseCrudController<SayModel, ResponseWrapper> implements IController {
13
+ protected client: HTTPClient;
14
+ base: string;
15
+ name: string;
16
+ constructor(client: HTTPClient);
17
+ get proxy(): IRequestHandler<ResponseWrapper>;
18
+ /**
19
+ * 获取随机一条
20
+ */
21
+ getRandom(): import("../interfaces/request").RequestProxyResult<{
22
+ data: SayModel | null;
23
+ }, ResponseWrapper, ResponseWrapper extends unknown ? {
24
+ [key: string]: any;
25
+ data: {
26
+ data: SayModel | null;
27
+ };
28
+ } : ResponseWrapper extends {
29
+ data: {
30
+ data: SayModel | null;
31
+ };
32
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
33
+ data: {
34
+ data: SayModel | null;
35
+ };
36
+ }>;
37
+ }
@@ -0,0 +1,247 @@
1
+ import { IRequestAdapter } from '../interfaces/adapter';
2
+ import { IController } from '../interfaces/controller';
3
+ import { IRequestHandler, RequestProxyResult } from '../interfaces/request';
4
+ import { PaginateResult } from '../models/base';
5
+ import { NoteModel } from '../models/note';
6
+ import { PostModel } from '../models/post';
7
+ import { PageModel } from '..';
8
+ import { HTTPClient } from '../core';
9
+ declare module '../core/client' {
10
+ interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
11
+ search: SearchController<ResponseWrapper>;
12
+ }
13
+ }
14
+ export declare type SearchType = 'post' | 'note';
15
+ export declare type SearchOption = {
16
+ orderBy?: string;
17
+ order?: number;
18
+ rawAlgolia?: boolean;
19
+ };
20
+ export declare class SearchController<ResponseWrapper> implements IController {
21
+ private readonly client;
22
+ base: string;
23
+ name: string;
24
+ constructor(client: HTTPClient);
25
+ get proxy(): IRequestHandler<ResponseWrapper>;
26
+ search(type: 'note', keyword: string, options?: Omit<SearchOption, 'rawAlgolia'>): Promise<RequestProxyResult<PaginateResult<Pick<NoteModel, 'modified' | 'id' | 'title' | 'created' | 'nid'>>, ResponseWrapper>>;
27
+ search(type: 'post', keyword: string, options?: Omit<SearchOption, 'rawAlgolia'>): Promise<RequestProxyResult<PaginateResult<Pick<PostModel, 'modified' | 'id' | 'title' | 'created' | 'slug' | 'category'>>, ResponseWrapper>>;
28
+ /**
29
+ * 从 algolya 搜索
30
+ * https://www.algolia.com/doc/api-reference/api-methods/search/
31
+ * @param keyword
32
+ * @param options
33
+ * @returns
34
+ */
35
+ searchByAlgolia(keyword: string, options?: SearchOption): RequestProxyResult<RequestProxyResult<PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
36
+ type: 'post';
37
+ }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
38
+ type: 'note';
39
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
40
+ type: 'page';
41
+ })> & {
42
+ /**
43
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
44
+ */
45
+ raw?: any;
46
+ }, ResponseWrapper, ResponseWrapper extends unknown ? {
47
+ [key: string]: any;
48
+ data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
49
+ type: 'post';
50
+ }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
51
+ type: 'note';
52
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
53
+ type: 'page';
54
+ })> & {
55
+ /**
56
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
57
+ */
58
+ raw?: any;
59
+ };
60
+ } : ResponseWrapper extends {
61
+ data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
62
+ type: 'post';
63
+ }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
64
+ type: 'note';
65
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
66
+ type: 'page';
67
+ })> & {
68
+ /**
69
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
70
+ */
71
+ raw?: any;
72
+ };
73
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
74
+ data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
75
+ type: 'post';
76
+ }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
77
+ type: 'note';
78
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
79
+ type: 'page';
80
+ })> & {
81
+ /**
82
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
83
+ */
84
+ raw?: any;
85
+ };
86
+ }>, ResponseWrapper, ResponseWrapper extends unknown ? {
87
+ [key: string]: any;
88
+ data: RequestProxyResult<PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
89
+ type: 'post';
90
+ }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
91
+ type: 'note';
92
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
93
+ type: 'page';
94
+ })> & {
95
+ /**
96
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
97
+ */
98
+ raw?: any;
99
+ }, ResponseWrapper, ResponseWrapper extends unknown ? {
100
+ [key: string]: any;
101
+ data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
102
+ type: 'post';
103
+ }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
104
+ type: 'note';
105
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
106
+ type: 'page';
107
+ })> & {
108
+ /**
109
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
110
+ */
111
+ raw?: any;
112
+ };
113
+ } : ResponseWrapper extends {
114
+ data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
115
+ type: 'post';
116
+ }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
117
+ type: 'note';
118
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
119
+ type: 'page';
120
+ })> & {
121
+ /**
122
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
123
+ */
124
+ raw?: any;
125
+ };
126
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
127
+ data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
128
+ type: 'post';
129
+ }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
130
+ type: 'note';
131
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
132
+ type: 'page';
133
+ })> & {
134
+ /**
135
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
136
+ */
137
+ raw?: any;
138
+ };
139
+ }>;
140
+ } : ResponseWrapper extends {
141
+ data: RequestProxyResult<PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
142
+ type: 'post';
143
+ }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
144
+ type: 'note';
145
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
146
+ type: 'page';
147
+ })> & {
148
+ /**
149
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
150
+ */
151
+ raw?: any;
152
+ }, ResponseWrapper, ResponseWrapper extends unknown ? {
153
+ [key: string]: any;
154
+ data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
155
+ type: 'post';
156
+ }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
157
+ type: 'note';
158
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
159
+ type: 'page';
160
+ })> & {
161
+ /**
162
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
163
+ */
164
+ raw?: any;
165
+ };
166
+ } : ResponseWrapper extends {
167
+ data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
168
+ type: 'post';
169
+ }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
170
+ type: 'note';
171
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
172
+ type: 'page';
173
+ })> & {
174
+ /**
175
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
176
+ */
177
+ raw?: any;
178
+ };
179
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
180
+ data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
181
+ type: 'post';
182
+ }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
183
+ type: 'note';
184
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
185
+ type: 'page';
186
+ })> & {
187
+ /**
188
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
189
+ */
190
+ raw?: any;
191
+ };
192
+ }>;
193
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
194
+ data: RequestProxyResult<PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
195
+ type: 'post';
196
+ }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
197
+ type: 'note';
198
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
199
+ type: 'page';
200
+ })> & {
201
+ /**
202
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
203
+ */
204
+ raw?: any;
205
+ }, ResponseWrapper, ResponseWrapper extends unknown ? {
206
+ [key: string]: any;
207
+ data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
208
+ type: 'post';
209
+ }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
210
+ type: 'note';
211
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
212
+ type: 'page';
213
+ })> & {
214
+ /**
215
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
216
+ */
217
+ raw?: any;
218
+ };
219
+ } : ResponseWrapper extends {
220
+ data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
221
+ type: 'post';
222
+ }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
223
+ type: 'note';
224
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
225
+ type: 'page';
226
+ })> & {
227
+ /**
228
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
229
+ */
230
+ raw?: any;
231
+ };
232
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
233
+ data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
234
+ type: 'post';
235
+ }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
236
+ type: 'note';
237
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
238
+ type: 'page';
239
+ })> & {
240
+ /**
241
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
242
+ */
243
+ raw?: any;
244
+ };
245
+ }>;
246
+ }>;
247
+ }
@@ -0,0 +1,33 @@
1
+ import { IRequestAdapter } from '../interfaces/adapter';
2
+ import { IController } from '../interfaces/controller';
3
+ import { IRequestHandler } from '../interfaces/request';
4
+ import { SnippetModel } from '../models/snippet';
5
+ import { HTTPClient } from '../core';
6
+ declare module '../core/client' {
7
+ interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
8
+ snippet: SnippetController<ResponseWrapper>;
9
+ }
10
+ }
11
+ export declare class SnippetController<ResponseWrapper> implements IController {
12
+ protected client: HTTPClient;
13
+ base: string;
14
+ name: string;
15
+ constructor(client: HTTPClient);
16
+ get proxy(): IRequestHandler<ResponseWrapper>;
17
+ getById<T = unknown>(id: string): import("../interfaces/request").RequestProxyResult<SnippetModel<T>, ResponseWrapper, ResponseWrapper extends unknown ? {
18
+ [key: string]: any;
19
+ data: SnippetModel<T>;
20
+ } : ResponseWrapper extends {
21
+ data: SnippetModel<T>;
22
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
23
+ data: SnippetModel<T>;
24
+ }>;
25
+ getByReferenceAndName<T = unknown>(reference: string, name: string): import("../interfaces/request").RequestProxyResult<T, ResponseWrapper, ResponseWrapper extends unknown ? {
26
+ [key: string]: any;
27
+ data: T;
28
+ } : ResponseWrapper extends {
29
+ data: T;
30
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
31
+ data: T;
32
+ }>;
33
+ }
@@ -0,0 +1,54 @@
1
+ import { IRequestAdapter } from '../interfaces/adapter';
2
+ import { IController } from '../interfaces/controller';
3
+ import { IRequestHandler } from '../interfaces/request';
4
+ import { TLogin, UserModel } from '../models/user';
5
+ import { HTTPClient } from '../core';
6
+ declare module '../core/client' {
7
+ interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
8
+ user: UserController<ResponseWrapper>;
9
+ master: UserController<ResponseWrapper>;
10
+ }
11
+ }
12
+ export declare class UserController<ResponseWrapper> implements IController {
13
+ private readonly client;
14
+ constructor(client: HTTPClient);
15
+ base: string;
16
+ name: string[];
17
+ get proxy(): IRequestHandler<ResponseWrapper>;
18
+ getMasterInfo(): import("../interfaces/request").RequestProxyResult<UserModel, ResponseWrapper, ResponseWrapper extends unknown ? {
19
+ [key: string]: any;
20
+ data: UserModel;
21
+ } : ResponseWrapper extends {
22
+ data: UserModel;
23
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
24
+ data: UserModel;
25
+ }>;
26
+ login(username: string, password: string): import("../interfaces/request").RequestProxyResult<TLogin, ResponseWrapper, ResponseWrapper extends unknown ? {
27
+ [key: string]: any;
28
+ data: TLogin;
29
+ } : ResponseWrapper extends {
30
+ data: TLogin;
31
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
32
+ data: TLogin;
33
+ }>;
34
+ checkTokenValid(token: string): import("../interfaces/request").RequestProxyResult<{
35
+ ok: number;
36
+ isGuest: boolean;
37
+ }, ResponseWrapper, ResponseWrapper extends unknown ? {
38
+ [key: string]: any;
39
+ data: {
40
+ ok: number;
41
+ isGuest: boolean;
42
+ };
43
+ } : ResponseWrapper extends {
44
+ data: {
45
+ ok: number;
46
+ isGuest: boolean;
47
+ };
48
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
49
+ data: {
50
+ ok: number;
51
+ isGuest: boolean;
52
+ };
53
+ }>;
54
+ }
@@ -0,0 +1,2 @@
1
+ import type { HTTPClient } from '.';
2
+ export declare function attachRequestMethod<T extends HTTPClient<any, any>>(target: T): void;
@@ -0,0 +1,29 @@
1
+ import { IAdaptorRequestResponseType, IRequestAdapter } from '../interfaces/adapter';
2
+ import { ClientOptions } from '../interfaces/client';
3
+ import { IController } from '../interfaces/controller';
4
+ import { IRequestHandler } from '../interfaces/request';
5
+ import { Class } from '../interfaces/types';
6
+ export type { HTTPClient };
7
+ declare class HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
8
+ private _endpoint;
9
+ private _adaptor;
10
+ private _proxy;
11
+ constructor(_endpoint: string, _adaptor: T);
12
+ private initGetClient;
13
+ injectControllers(...Controller: Class<IController>[]): void;
14
+ injectControllers(Controller: Class<IController>[]): void;
15
+ get endpoint(): string;
16
+ get instance(): T;
17
+ request(options: {
18
+ url: string;
19
+ method?: string;
20
+ data?: any;
21
+ params?: any;
22
+ }): Promise<IAdaptorRequestResponseType<any>>;
23
+ get proxy(): IRequestHandler<ResponseWrapper>;
24
+ private resolveFullPath;
25
+ private buildRoute;
26
+ }
27
+ export declare function createClient<T extends IRequestAdapter>(adapter: T): <ResponseWrapper = T extends {
28
+ responseWrapper: infer Type;
29
+ } ? Type extends undefined ? unknown : Type : unknown>(endpoint: string, options?: ClientOptions | undefined) => HTTPClient<T, ResponseWrapper>;
@@ -0,0 +1,6 @@
1
+ export declare class RequestError extends Error {
2
+ status: number;
3
+ path: string;
4
+ raw: any;
5
+ constructor(message: string, status: number, path: string, raw: any);
6
+ }
@@ -0,0 +1,2 @@
1
+ export * from './client';
2
+ export * from './error';
@@ -0,0 +1,6 @@
1
+ export declare class CommentDto {
2
+ author: string;
3
+ text: string;
4
+ mail: string;
5
+ url?: string;
6
+ }
@@ -0,0 +1,7 @@
1
+ import _camelcaseKeys from 'camelcase-keys';
2
+ export * from './controllers';
3
+ export { createClient, RequestError } from './core';
4
+ export type { HTTPClient } from './core';
5
+ export * from './models';
6
+ export declare const camelcaseKeysDeep: <T>(obj: T) => T;
7
+ export declare const camelcaseKeys: typeof _camelcaseKeys;
@@ -0,0 +1,14 @@
1
+ import { RequestOptions } from './instance';
2
+ export declare type IAdaptorRequestResponseType<P> = Promise<Record<string, any> & {
3
+ data: P;
4
+ }>;
5
+ export declare type IRequestAdapter<T = any, Response = undefined> = Readonly<(Response extends undefined ? {} : {
6
+ responseWrapper: Response;
7
+ }) & {
8
+ default: T;
9
+ get<P = unknown>(url: string, options?: Omit<RequestOptions, 'data'>): IAdaptorRequestResponseType<P>;
10
+ post<P = unknown>(url: string, options: Partial<RequestOptions>): IAdaptorRequestResponseType<P>;
11
+ patch<P = unknown>(url: string, options: Partial<RequestOptions>): IAdaptorRequestResponseType<P>;
12
+ delete<P = unknown>(url: string, options?: Omit<RequestOptions, 'data'>): IAdaptorRequestResponseType<P>;
13
+ put<P = unknown>(url: string, options: Partial<RequestOptions>): IAdaptorRequestResponseType<P>;
14
+ }>;
@@ -0,0 +1,5 @@
1
+ import { IController } from './controller';
2
+ import { Class } from './types';
3
+ export declare type ClientOptions = {
4
+ controllers?: Class<IController>[];
5
+ };
@@ -0,0 +1,4 @@
1
+ export interface IController {
2
+ base: string;
3
+ name: string | string[];
4
+ }
@@ -0,0 +1,7 @@
1
+ export interface RequestOptions {
2
+ method?: string;
3
+ data?: Record<string, any>;
4
+ params?: Record<string, any> | URLSearchParams;
5
+ headers?: Record<string, string>;
6
+ [key: string]: any;
7
+ }
@@ -0,0 +1 @@
1
+ export declare type SortOrder = 'asc' | 'desc';
@@ -0,0 +1,4 @@
1
+ export interface PaginationParams {
2
+ size?: number;
3
+ page?: number;
4
+ }