@mx-space/api-client 0.7.0-alpha.1 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) 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 +570 -0
  32. package/coverage/coverage-final.json +30 -0
  33. package/coverage/lcov-report/adaptors/axios.ts.html +199 -0
  34. package/coverage/lcov-report/adaptors/index.html +131 -0
  35. package/coverage/lcov-report/adaptors/umi-request.ts.html +184 -0
  36. package/coverage/lcov-report/auto-bind.ts.html +229 -0
  37. package/coverage/lcov-report/base.css +224 -0
  38. package/coverage/lcov-report/block-navigation.js +87 -0
  39. package/coverage/lcov-report/controllers/aggregate.ts.html +292 -0
  40. package/coverage/lcov-report/controllers/base.ts.html +181 -0
  41. package/coverage/lcov-report/controllers/category.ts.html +439 -0
  42. package/coverage/lcov-report/controllers/comment.ts.html +289 -0
  43. package/coverage/lcov-report/controllers/index.html +326 -0
  44. package/coverage/lcov-report/controllers/index.ts.html +283 -0
  45. package/coverage/lcov-report/controllers/link.ts.html +169 -0
  46. package/coverage/lcov-report/controllers/note.ts.html +373 -0
  47. package/coverage/lcov-report/controllers/page.ts.html +277 -0
  48. package/coverage/lcov-report/controllers/post.ts.html +367 -0
  49. package/coverage/lcov-report/controllers/project.ts.html +166 -0
  50. package/coverage/lcov-report/controllers/recently.ts.html +244 -0
  51. package/coverage/lcov-report/controllers/say.ts.html +205 -0
  52. package/coverage/lcov-report/controllers/search.ts.html +409 -0
  53. package/coverage/lcov-report/controllers/snippet.ts.html +193 -0
  54. package/coverage/lcov-report/controllers/user.ts.html +238 -0
  55. package/coverage/lcov-report/core/attach-request.ts.html +214 -0
  56. package/coverage/lcov-report/core/client.ts.html +802 -0
  57. package/coverage/lcov-report/core/error.ts.html +115 -0
  58. package/coverage/lcov-report/core/index.html +161 -0
  59. package/coverage/lcov-report/core/index.ts.html +91 -0
  60. package/coverage/lcov-report/favicon.png +0 -0
  61. package/coverage/lcov-report/index.html +191 -0
  62. package/coverage/lcov-report/index.ts.html +244 -0
  63. package/coverage/lcov-report/models/aggregate.ts.html +298 -0
  64. package/coverage/lcov-report/models/category.ts.html +160 -0
  65. package/coverage/lcov-report/models/index.html +131 -0
  66. package/coverage/lcov-report/prettify.css +1 -0
  67. package/coverage/lcov-report/prettify.js +2 -0
  68. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  69. package/coverage/lcov-report/sorter.js +196 -0
  70. package/coverage/lcov-report/utils/auto-bind.ts.html +229 -0
  71. package/coverage/lcov-report/utils/index.html +131 -0
  72. package/coverage/lcov-report/utils/index.ts.html +244 -0
  73. package/coverage/lcov.info +1164 -0
  74. package/esm/adaptors/axios.d.ts +2 -2
  75. package/esm/adaptors/axios.js +1 -0
  76. package/esm/adaptors/axios.js.map +1 -1
  77. package/esm/adaptors/umi-request.d.ts +2 -2
  78. package/esm/adaptors/umi-request.js +1 -0
  79. package/esm/adaptors/umi-request.js.map +1 -1
  80. package/esm/controllers/aggregate.d.ts +25 -8
  81. package/esm/controllers/aggregate.js.map +1 -1
  82. package/esm/controllers/base.d.ts +17 -5
  83. package/esm/controllers/category.d.ts +64 -13
  84. package/esm/controllers/category.js.map +1 -1
  85. package/esm/controllers/comment.d.ts +42 -10
  86. package/esm/controllers/comment.js.map +1 -1
  87. package/esm/controllers/link.d.ts +5 -4
  88. package/esm/controllers/link.js.map +1 -1
  89. package/esm/controllers/note.d.ts +42 -12
  90. package/esm/controllers/note.js.map +1 -1
  91. package/esm/controllers/page.d.ts +22 -8
  92. package/esm/controllers/page.js.map +1 -1
  93. package/esm/controllers/post.d.ts +24 -11
  94. package/esm/controllers/post.js.map +1 -1
  95. package/esm/controllers/project.d.ts +4 -3
  96. package/esm/controllers/project.js.map +1 -1
  97. package/esm/controllers/recently.d.ts +30 -8
  98. package/esm/controllers/recently.js.map +1 -1
  99. package/esm/controllers/say.d.ts +15 -5
  100. package/esm/controllers/say.js.map +1 -1
  101. package/esm/controllers/search.d.ts +168 -9
  102. package/esm/controllers/search.js.map +1 -1
  103. package/esm/controllers/snippet.d.ts +16 -6
  104. package/esm/controllers/snippet.js.map +1 -1
  105. package/esm/controllers/user.d.ts +28 -8
  106. package/esm/controllers/user.js.map +1 -1
  107. package/esm/core/attach-request.d.ts +1 -1
  108. package/esm/core/attach-request.js.map +1 -1
  109. package/esm/core/client.d.ts +9 -6
  110. package/esm/core/client.js +13 -32
  111. package/esm/core/client.js.map +1 -1
  112. package/esm/index.d.ts +2 -1
  113. package/esm/index.js +1 -1
  114. package/esm/index.js.map +1 -1
  115. package/esm/interfaces/adapter.d.ts +9 -8
  116. package/esm/interfaces/client.d.ts +1 -1
  117. package/esm/interfaces/request.d.ts +22 -13
  118. package/esm/interfaces/types.d.ts +2 -0
  119. package/esm/interfaces/types.js +2 -0
  120. package/esm/interfaces/types.js.map +1 -0
  121. package/esm/models/post.d.ts +0 -1
  122. package/index.ts +2 -1
  123. package/interfaces/adapter.ts +29 -24
  124. package/interfaces/client.ts +1 -1
  125. package/interfaces/request.ts +45 -20
  126. package/{types/helper.d.ts → interfaces/types.ts} +0 -0
  127. package/jest.config.js +12 -0
  128. package/lib/adaptors/axios.d.ts +2 -2
  129. package/lib/adaptors/axios.js +1 -0
  130. package/lib/adaptors/axios.js.map +1 -1
  131. package/lib/adaptors/umi-request.d.ts +2 -2
  132. package/lib/adaptors/umi-request.js +1 -0
  133. package/lib/adaptors/umi-request.js.map +1 -1
  134. package/lib/controllers/aggregate.d.ts +25 -8
  135. package/lib/controllers/aggregate.js.map +1 -1
  136. package/lib/controllers/base.d.ts +17 -5
  137. package/lib/controllers/category.d.ts +64 -13
  138. package/lib/controllers/category.js.map +1 -1
  139. package/lib/controllers/comment.d.ts +42 -10
  140. package/lib/controllers/comment.js.map +1 -1
  141. package/lib/controllers/link.d.ts +5 -4
  142. package/lib/controllers/link.js.map +1 -1
  143. package/lib/controllers/note.d.ts +42 -12
  144. package/lib/controllers/note.js.map +1 -1
  145. package/lib/controllers/page.d.ts +22 -8
  146. package/lib/controllers/page.js.map +1 -1
  147. package/lib/controllers/post.d.ts +24 -11
  148. package/lib/controllers/post.js.map +1 -1
  149. package/lib/controllers/project.d.ts +4 -3
  150. package/lib/controllers/project.js.map +1 -1
  151. package/lib/controllers/recently.d.ts +30 -8
  152. package/lib/controllers/recently.js.map +1 -1
  153. package/lib/controllers/say.d.ts +15 -5
  154. package/lib/controllers/say.js.map +1 -1
  155. package/lib/controllers/search.d.ts +168 -9
  156. package/lib/controllers/search.js.map +1 -1
  157. package/lib/controllers/snippet.d.ts +16 -6
  158. package/lib/controllers/snippet.js.map +1 -1
  159. package/lib/controllers/user.d.ts +28 -8
  160. package/lib/controllers/user.js.map +1 -1
  161. package/lib/core/attach-request.d.ts +1 -1
  162. package/lib/core/attach-request.js.map +1 -1
  163. package/lib/core/client.d.ts +9 -6
  164. package/lib/core/client.js +13 -33
  165. package/lib/core/client.js.map +1 -1
  166. package/lib/core/index.js +5 -1
  167. package/lib/core/index.js.map +1 -1
  168. package/lib/index.d.ts +2 -1
  169. package/lib/index.js +6 -3
  170. package/lib/index.js.map +1 -1
  171. package/lib/interfaces/adapter.d.ts +9 -8
  172. package/lib/interfaces/client.d.ts +1 -1
  173. package/lib/interfaces/request.d.ts +22 -13
  174. package/lib/interfaces/types.d.ts +2 -0
  175. package/lib/interfaces/types.js +3 -0
  176. package/lib/interfaces/types.js.map +1 -0
  177. package/lib/models/index.js +5 -1
  178. package/lib/models/index.js.map +1 -1
  179. package/lib/models/post.d.ts +0 -1
  180. package/models/post.ts +0 -1
  181. package/package.json +12 -12
  182. package/tsconfig.json +25 -4
  183. package/tsconfig.types.json +18 -0
  184. package/types/adaptors/axios.d.ts +3 -0
  185. package/types/adaptors/umi-request.d.ts +3 -0
  186. package/types/controllers/aggregate.d.ts +64 -0
  187. package/types/controllers/base.d.ts +39 -0
  188. package/types/controllers/category.d.ts +114 -0
  189. package/types/controllers/comment.d.ts +81 -0
  190. package/types/controllers/index.d.ts +16 -0
  191. package/types/controllers/link.d.ts +16 -0
  192. package/types/controllers/note.d.ts +94 -0
  193. package/types/controllers/page.d.ts +59 -0
  194. package/types/controllers/post.d.ts +72 -0
  195. package/types/controllers/project.d.ts +15 -0
  196. package/types/controllers/recently.d.ts +61 -0
  197. package/types/controllers/say.d.ts +37 -0
  198. package/types/controllers/search.d.ts +247 -0
  199. package/types/controllers/snippet.d.ts +33 -0
  200. package/types/controllers/user.d.ts +54 -0
  201. package/types/core/attach-request.d.ts +2 -0
  202. package/types/core/client.d.ts +29 -0
  203. package/types/core/error.d.ts +6 -0
  204. package/types/core/index.d.ts +2 -0
  205. package/types/dtos/comment.d.ts +6 -0
  206. package/types/index.d.ts +7 -0
  207. package/types/interfaces/adapter.d.ts +14 -0
  208. package/types/interfaces/client.d.ts +5 -0
  209. package/types/interfaces/controller.d.ts +4 -0
  210. package/types/interfaces/instance.d.ts +7 -0
  211. package/types/interfaces/options.d.ts +1 -0
  212. package/types/interfaces/params.d.ts +4 -0
  213. package/types/interfaces/request.d.ts +43 -0
  214. package/types/interfaces/types.d.ts +2 -0
  215. package/types/models/aggregate.d.ts +53 -0
  216. package/types/models/base.d.ts +37 -0
  217. package/types/models/category.d.ts +22 -0
  218. package/types/models/comment.d.ts +34 -0
  219. package/types/models/index.d.ts +14 -0
  220. package/types/models/link.d.ts +20 -0
  221. package/types/models/note.d.ts +30 -0
  222. package/types/models/page.d.ts +14 -0
  223. package/types/models/post.d.ts +14 -0
  224. package/types/models/project.d.ts +11 -0
  225. package/types/models/recently.d.ts +6 -0
  226. package/types/models/say.d.ts +6 -0
  227. package/types/models/setting.d.ts +66 -0
  228. package/types/models/snippet.d.ts +16 -0
  229. package/types/models/user.d.ts +21 -0
  230. package/types/utils/auto-bind.d.ts +4 -0
  231. package/types/utils/index.d.ts +5 -0
@@ -1,13 +1,14 @@
1
1
  import { RequestOptions } from './instance';
2
- declare type RequestResponseType<P> = Promise<Record<string, any> & {
2
+ export declare type IAdaptorRequestResponseType<P> = Promise<Record<string, any> & {
3
3
  data: P;
4
4
  }>;
5
- export declare type IRequestAdapter<T = any> = Readonly<{
5
+ export declare type IRequestAdapter<T = any, Response = undefined> = Readonly<(Response extends undefined ? {} : {
6
+ responseWrapper: Response;
7
+ }) & {
6
8
  default: T;
7
- get<P = unknown>(url: string, options?: Omit<RequestOptions, 'data'>): RequestResponseType<P>;
8
- post<P = unknown>(url: string, options: Partial<RequestOptions>): RequestResponseType<P>;
9
- patch<P = unknown>(url: string, options: Partial<RequestOptions>): RequestResponseType<P>;
10
- delete<P = unknown>(url: string, options?: Omit<RequestOptions, 'data'>): RequestResponseType<P>;
11
- put<P = unknown>(url: string, options: Partial<RequestOptions>): RequestResponseType<P>;
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>;
12
14
  }>;
13
- export {};
@@ -1,5 +1,5 @@
1
- import { Class } from '../types/helper';
2
1
  import { IController } from './controller';
2
+ import { Class } from './types';
3
3
  export declare type ClientOptions = {
4
4
  controllers?: Class<IController>[];
5
5
  };
@@ -3,25 +3,33 @@ declare type NoStringIndex<T> = {
3
3
  [K in keyof T as string extends K ? never : K]: T[K];
4
4
  };
5
5
  export declare type Method = 'get' | 'delete' | 'post' | 'put' | 'patch';
6
- export interface IRequestHandler {
7
- (path?: string | number): IRequestHandler;
8
- get<P = unknown>(options?: Omit<NoStringIndex<RequestOptions>, 'data'>): RequestProxyResult<P>;
9
- post<P = unknown>(options?: RequestOptions): RequestProxyResult<P>;
10
- patch<P = unknown>(options?: RequestOptions): RequestProxyResult<P>;
11
- delete<P = unknown>(options?: Omit<NoStringIndex<RequestOptions>, 'data'>): RequestProxyResult<P>;
12
- put<P = unknown>(options?: RequestOptions): RequestProxyResult<P>;
13
- [key: string]: IRequestHandler;
6
+ export interface IRequestHandler<ResponseWrapper> {
7
+ (path?: string | number): IRequestHandler<ResponseWrapper>;
8
+ get<P = unknown>(options?: Omit<NoStringIndex<RequestOptions>, 'data'>): RequestProxyResult<P, ResponseWrapper>;
9
+ post<P = unknown>(options?: RequestOptions): RequestProxyResult<P, ResponseWrapper>;
10
+ patch<P = unknown>(options?: RequestOptions): RequestProxyResult<P, ResponseWrapper>;
11
+ delete<P = unknown>(options?: Omit<NoStringIndex<RequestOptions>, 'data'>): RequestProxyResult<P, ResponseWrapper>;
12
+ put<P = unknown>(options?: RequestOptions): RequestProxyResult<P, ResponseWrapper>;
13
+ toString(withBase?: boolean): string;
14
+ valueOf(withBase?: boolean): string;
15
+ [key: string]: IRequestHandler<ResponseWrapper>;
14
16
  }
15
- export declare type RequestProxyResult<T, R = {
17
+ export declare type RequestProxyResult<T, ResponseWrapper, R = ResponseWrapper extends unknown ? {
16
18
  data: T;
17
19
  [key: string]: any;
18
- }> = Promise<ResponseProxyExtraRaw<T, R>>;
20
+ } : ResponseWrapper extends {
21
+ data: T;
22
+ } ? ResponseWrapper : Omit<ResponseWrapper, 'data'> & {
23
+ data: T;
24
+ }> = Promise<ResponseProxyExtraRaw<T, R, ResponseWrapper>>;
19
25
  declare type CamelToSnake<T extends string, P extends string = ''> = string extends T ? string : T extends `${infer C0}${infer R}` ? CamelToSnake<R, `${P}${C0 extends Lowercase<C0> ? '' : '_'}${Lowercase<C0>}`> : P;
20
26
  declare type CamelKeysToSnake<T> = {
21
27
  [K in keyof T as CamelToSnake<Extract<K, string>>]: T[K];
22
28
  };
23
- export declare type ResponseProxyExtraRaw<T, RawData = unknown, Response = unknown> = T extends object ? T & {
24
- $raw: Response extends unknown ? {
29
+ declare type ResponseWrapperType<Response, RawData, T> = {
30
+ $raw: Response extends {
31
+ data: infer T;
32
+ } ? Response : Response extends unknown ? {
25
33
  [i: string]: any;
26
34
  data: RawData extends unknown ? CamelKeysToSnake<T> : RawData;
27
35
  } : Response;
@@ -30,5 +38,6 @@ export declare type ResponseProxyExtraRaw<T, RawData = unknown, Response = unkno
30
38
  method: string;
31
39
  [k: string]: string;
32
40
  };
33
- } : T;
41
+ };
42
+ export declare type ResponseProxyExtraRaw<T, RawData = unknown, Response = unknown> = T extends object ? T & ResponseWrapperType<Response, RawData, T> : T extends unknown ? T & ResponseWrapperType<Response, RawData, T> : unknown;
34
43
  export {};
@@ -0,0 +1,2 @@
1
+ export declare type Class<T> = new (...args: any[]) => T;
2
+ export declare type SelectFields<T extends string> = `${'+' | '-' | ''}${T}`[];
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../interfaces/types.ts"],"names":[],"mappings":""}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA2B;AAC3B,yCAAsB;AACtB,6CAA0B;AAC1B,4CAAyB;AACzB,yCAAsB;AACtB,yCAAsB;AACtB,yCAAsB;AACtB,yCAAsB;AACtB,4CAAyB;AACzB,6CAA0B;AAC1B,wCAAqB;AACrB,4CAAyB;AACzB,4CAAyB;AACzB,yCAAsB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,yCAAsB;AACtB,6CAA0B;AAC1B,4CAAyB;AACzB,yCAAsB;AACtB,yCAAsB;AACtB,yCAAsB;AACtB,yCAAsB;AACtB,4CAAyB;AACzB,6CAA0B;AAC1B,wCAAqB;AACrB,4CAAyB;AACzB,4CAAyB;AACzB,yCAAsB"}
@@ -2,7 +2,6 @@ import { Count, Image, TextBaseModel } from './base';
2
2
  import { CategoryModel } from './category';
3
3
  export interface PostModel extends TextBaseModel {
4
4
  summary?: string;
5
- hide: boolean;
6
5
  copyright: boolean;
7
6
  tags: string[];
8
7
  count: Count;
package/models/post.ts CHANGED
@@ -3,7 +3,6 @@ import { CategoryModel } from './category'
3
3
 
4
4
  export interface PostModel extends TextBaseModel {
5
5
  summary?: string
6
- hide: boolean
7
6
  copyright: boolean
8
7
  tags: string[]
9
8
  count: Count
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@mx-space/api-client",
3
- "version": "0.7.0-alpha.1",
3
+ "version": "0.7.2",
4
4
  "description": "A api client for mx-space server@next",
5
5
  "author": "Innei",
6
6
  "license": "MIT",
7
7
  "main": "build/index.cjs.js",
8
8
  "module": "build/index.esm.js",
9
- "types": "index.ts",
9
+ "types": "types/index.d.ts",
10
10
  "unpkg": "build/index.umd.min.js",
11
11
  "husky": {
12
12
  "hooks": {
@@ -33,10 +33,10 @@
33
33
  "pnpm": ">=6"
34
34
  },
35
35
  "scripts": {
36
- "predeploy": "rm -rf dist",
37
- "prebuild": "rm -rf rm -rf lib && rm -rf esm",
36
+ "prebuild": "rm -rf lib && rm -rf esm",
38
37
  "build": "tsc --build tsconfig.build.json && tsc --build tsconfig.cjs.json",
39
- "postbuild": "tsconfig-replace-paths -p tsconfig.build.json && tsconfig-replace-paths -p tsconfig.cjs.json",
38
+ "postbuild": "tsconfig-replace-paths -p tsconfig.build.json && tsconfig-replace-paths -p tsconfig.cjs.json && npm run types",
39
+ "types": "rm -rf types && tsc --build tsconfig.types.json && tsconfig-replace-paths -p tsconfig.types.json",
40
40
  "package": "NODE_ENV=production npm run build && rollup -c",
41
41
  "prepackage": "rm -rf build",
42
42
  "release": "vv",
@@ -45,16 +45,16 @@
45
45
  "version": "vv"
46
46
  },
47
47
  "devDependencies": {
48
- "@rollup/plugin-commonjs": "21.0.1",
48
+ "@rollup/plugin-commonjs": "21.0.2",
49
49
  "@rollup/plugin-node-resolve": "13.1.3",
50
- "@rollup/plugin-typescript": "8.3.0",
51
- "@types/jest": "27.4.0",
52
- "@types/lodash": "4.14.178",
53
- "@types/node": "16.11.22",
54
- "axios": "0.25.0",
50
+ "@rollup/plugin-typescript": "8.3.1",
51
+ "@types/jest": "27.4.1",
52
+ "@types/lodash": "4.14.179",
53
+ "@types/node": "16.11.26",
54
+ "axios": "0.26.0",
55
55
  "gh-pages": "3.2.3",
56
56
  "lodash": "4.17.21",
57
- "rollup": "2.66.1",
57
+ "rollup": "2.68.0",
58
58
  "rollup-plugin-peer-deps-external": "2.2.4",
59
59
  "rollup-plugin-terser": "7.0.2",
60
60
  "tsconfig-replace-paths": "0.0.11",
package/tsconfig.json CHANGED
@@ -1,12 +1,33 @@
1
1
  {
2
- "extends": "../tsconfig.json",
3
2
  "compilerOptions": {
4
3
  "declaration": true,
5
4
  "outDir": "./esm",
6
5
  "baseUrl": ".",
7
- "jsx": "react"
6
+ "jsx": "react",
7
+ "target": "ES2020",
8
+ "lib": [
9
+ "ESNext",
10
+ "DOM",
11
+ "DOM.Iterable"
12
+ ],
13
+ "module": "ESNext",
14
+ "moduleResolution": "node",
15
+ "strict": true,
16
+ "resolveJsonModule": true,
17
+ "esModuleInterop": true,
18
+ "skipLibCheck": true,
19
+ "forceConsistentCasingInFileNames": true,
20
+ "sourceMap": true,
21
+ "paths": {
22
+ "~/*": [
23
+ "*"
24
+ ]
25
+ }
8
26
  },
9
- "include": [
10
- "./**/*.ts"
27
+ "exclude": [
28
+ "esm/*",
29
+ "build/*",
30
+ "node_modules/*",
31
+ "lib/*"
11
32
  ]
12
33
  }
@@ -0,0 +1,18 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "module": "commonjs",
5
+ "rootDir": ".",
6
+ "outDir": "types",
7
+ "declaration": true,
8
+ "declarationMap": false,
9
+ "isolatedModules": false,
10
+ "noEmit": false,
11
+ "allowJs": false,
12
+ "emitDeclarationOnly": true
13
+ },
14
+ "exclude": [
15
+ "__tests__/**/*",
16
+ "**/*.test.ts"
17
+ ]
18
+ }
@@ -0,0 +1,3 @@
1
+ import { AxiosInstance, AxiosResponse } from 'axios';
2
+ import { IRequestAdapter } from '../interfaces/adapter';
3
+ export declare const axiosAdaptor: IRequestAdapter<AxiosInstance, AxiosResponse<unknown>>;
@@ -0,0 +1,3 @@
1
+ import { RequestMethod, RequestResponse } from 'umi-request';
2
+ import { IRequestAdapter } from '../interfaces/adapter';
3
+ export declare const umiAdaptor: IRequestAdapter<RequestMethod<true>, RequestResponse>;
@@ -0,0 +1,64 @@
1
+ import { IRequestAdapter } from '../interfaces/adapter';
2
+ import { IController } from '../interfaces/controller';
3
+ import { SortOrder } from '../interfaces/options';
4
+ import { IRequestHandler, RequestProxyResult } from '../interfaces/request';
5
+ import { AggregateRoot, AggregateStat, AggregateTop, TimelineData, TimelineType } from '../models/aggregate';
6
+ import { HTTPClient } from '../core';
7
+ declare module '../core/client' {
8
+ interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
9
+ aggregate: AggregateController<ResponseWrapper>;
10
+ }
11
+ }
12
+ export declare class AggregateController<ResponseWrapper> implements IController {
13
+ private client;
14
+ base: string;
15
+ name: string;
16
+ constructor(client: HTTPClient);
17
+ get proxy(): IRequestHandler<ResponseWrapper>;
18
+ /**
19
+ * 获取聚合数据
20
+ */
21
+ getAggregateData(): RequestProxyResult<AggregateRoot, ResponseWrapper>;
22
+ /**
23
+ * 获取最新发布的内容
24
+ */
25
+ getTop(size?: number): RequestProxyResult<AggregateTop, ResponseWrapper, ResponseWrapper extends unknown ? {
26
+ [key: string]: any;
27
+ data: AggregateTop;
28
+ } : ResponseWrapper extends {
29
+ data: AggregateTop;
30
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
31
+ data: AggregateTop;
32
+ }>;
33
+ getTimeline(options?: {
34
+ sort?: SortOrder;
35
+ type?: TimelineType;
36
+ year?: number;
37
+ }): RequestProxyResult<{
38
+ data: TimelineData;
39
+ }, ResponseWrapper, ResponseWrapper extends unknown ? {
40
+ [key: string]: any;
41
+ data: {
42
+ data: TimelineData;
43
+ };
44
+ } : ResponseWrapper extends {
45
+ data: {
46
+ data: TimelineData;
47
+ };
48
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
49
+ data: {
50
+ data: TimelineData;
51
+ };
52
+ }>;
53
+ /**
54
+ * 获取聚合数据统计
55
+ */
56
+ getStat(): RequestProxyResult<AggregateStat, ResponseWrapper, ResponseWrapper extends unknown ? {
57
+ [key: string]: any;
58
+ data: AggregateStat;
59
+ } : ResponseWrapper extends {
60
+ data: AggregateStat;
61
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
62
+ data: AggregateStat;
63
+ }>;
64
+ }
@@ -0,0 +1,39 @@
1
+ import { IRequestHandler, RequestProxyResult } from '../interfaces/request';
2
+ import { PaginateResult } from '../models/base';
3
+ import { HTTPClient } from '../core';
4
+ export declare abstract class BaseCrudController<T, ResponseWrapper> {
5
+ protected client: HTTPClient;
6
+ base: string;
7
+ constructor(client: HTTPClient);
8
+ get proxy(): IRequestHandler<ResponseWrapper>;
9
+ getById(id: string): RequestProxyResult<T, ResponseWrapper>;
10
+ getAll(): RequestProxyResult<{
11
+ data: T[];
12
+ }, ResponseWrapper, ResponseWrapper extends unknown ? {
13
+ [key: string]: any;
14
+ data: {
15
+ data: T[];
16
+ };
17
+ } : ResponseWrapper extends {
18
+ data: {
19
+ data: T[];
20
+ };
21
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
22
+ data: {
23
+ data: T[];
24
+ };
25
+ }>;
26
+ /**
27
+ * 带分页的查询
28
+ * @param page
29
+ * @param perPage
30
+ */
31
+ getAllPaginated(page?: number, perPage?: number): RequestProxyResult<PaginateResult<T>, ResponseWrapper, ResponseWrapper extends unknown ? {
32
+ [key: string]: any;
33
+ data: PaginateResult<T>;
34
+ } : ResponseWrapper extends {
35
+ data: PaginateResult<T>;
36
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
37
+ data: PaginateResult<T>;
38
+ }>;
39
+ }
@@ -0,0 +1,114 @@
1
+ import { IRequestAdapter } from '../interfaces/adapter';
2
+ import { IController } from '../interfaces/controller';
3
+ import { IRequestHandler, RequestProxyResult, ResponseProxyExtraRaw } from '../interfaces/request';
4
+ import { HTTPClient } from '../core/client';
5
+ import { CategoryModel, CategoryType, CategoryWithChildrenModel, TagModel } from '../models/category';
6
+ import { PostModel } from '../models/post';
7
+ declare module '../core/client' {
8
+ interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
9
+ category: CategoryController<ResponseWrapper>;
10
+ }
11
+ }
12
+ export declare class CategoryController<ResponseWrapper> implements IController {
13
+ private client;
14
+ name: string;
15
+ base: string;
16
+ constructor(client: HTTPClient);
17
+ get proxy(): IRequestHandler<ResponseWrapper>;
18
+ getAllCategories(): RequestProxyResult<{
19
+ data: CategoryModel[];
20
+ }, ResponseWrapper>;
21
+ getAllTags(): RequestProxyResult<{
22
+ data: TagModel[];
23
+ }, ResponseWrapper>;
24
+ getCategoryDetail(id: string): Promise<ResponseProxyExtraRaw<CategoryWithChildrenModel>>;
25
+ getCategoryDetail(ids: string[]): Promise<ResponseProxyExtraRaw<Map<string, CategoryWithChildrenModel>>>;
26
+ getCategoryByIdOrSlug(idOrSlug: string): Promise<CategoryModel & {
27
+ children: Pick<PostModel, "id" | "title" | "slug" | "modified" | "created">[];
28
+ } & {
29
+ $raw: ResponseWrapper extends {
30
+ data: infer T;
31
+ } ? ResponseWrapper : ResponseWrapper extends unknown ? {
32
+ [i: string]: any;
33
+ data: (ResponseWrapper extends unknown ? {
34
+ [key: string]: any;
35
+ data: CategoryWithChildrenModel;
36
+ } : ResponseWrapper extends {
37
+ data: CategoryWithChildrenModel;
38
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
39
+ data: CategoryWithChildrenModel;
40
+ }) extends unknown ? {
41
+ type: CategoryType;
42
+ count: number;
43
+ slug: string;
44
+ name: string;
45
+ created: string;
46
+ id: string;
47
+ children: Pick<PostModel, "id" | "title" | "slug" | "modified" | "created">[];
48
+ } : ResponseWrapper extends unknown ? {
49
+ [key: string]: any;
50
+ data: CategoryWithChildrenModel;
51
+ } : ResponseWrapper extends {
52
+ data: CategoryWithChildrenModel;
53
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
54
+ data: CategoryWithChildrenModel;
55
+ };
56
+ } : ResponseWrapper;
57
+ $request: {
58
+ [k: string]: string;
59
+ path: string;
60
+ method: string;
61
+ };
62
+ }>;
63
+ getTagByName(name: string): Promise<{
64
+ tag: string;
65
+ data: Pick<PostModel, 'id' | 'title' | 'slug' | 'category' | 'created'>[];
66
+ } & {
67
+ $raw: ResponseWrapper extends {
68
+ data: infer T;
69
+ } ? ResponseWrapper : ResponseWrapper extends unknown ? {
70
+ [i: string]: any;
71
+ data: (ResponseWrapper extends unknown ? {
72
+ [key: string]: any;
73
+ data: {
74
+ tag: string;
75
+ data: Pick<PostModel, 'id' | 'title' | 'slug' | 'category' | 'created'>[];
76
+ };
77
+ } : ResponseWrapper extends {
78
+ data: {
79
+ tag: string;
80
+ data: Pick<PostModel, 'id' | 'title' | 'slug' | 'category' | 'created'>[];
81
+ };
82
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
83
+ data: {
84
+ tag: string;
85
+ data: Pick<PostModel, 'id' | 'title' | 'slug' | 'category' | 'created'>[];
86
+ };
87
+ }) extends unknown ? {
88
+ tag: string;
89
+ data: Pick<PostModel, "id" | "title" | "slug" | "created" | "category">[];
90
+ } : ResponseWrapper extends unknown ? {
91
+ [key: string]: any;
92
+ data: {
93
+ tag: string;
94
+ data: Pick<PostModel, 'id' | 'title' | 'slug' | 'category' | 'created'>[];
95
+ };
96
+ } : ResponseWrapper extends {
97
+ data: {
98
+ tag: string;
99
+ data: Pick<PostModel, 'id' | 'title' | 'slug' | 'category' | 'created'>[];
100
+ };
101
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
102
+ data: {
103
+ tag: string;
104
+ data: Pick<PostModel, 'id' | 'title' | 'slug' | 'category' | 'created'>[];
105
+ };
106
+ };
107
+ } : ResponseWrapper;
108
+ $request: {
109
+ [k: string]: string;
110
+ path: string;
111
+ method: string;
112
+ };
113
+ }>;
114
+ }
@@ -0,0 +1,81 @@
1
+ import { IRequestAdapter } from '../interfaces/adapter';
2
+ import { IController } from '../interfaces/controller';
3
+ import { PaginationParams } from '../interfaces/params';
4
+ import { IRequestHandler } from '../interfaces/request';
5
+ import { PaginateResult } from '../models/base';
6
+ import { CommentModel } from '../models/comment';
7
+ import { HTTPClient } from '../core';
8
+ import { CommentDto } from '../dtos/comment';
9
+ declare module '../core/client' {
10
+ interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
11
+ comment: CommentController<ResponseWrapper>;
12
+ }
13
+ }
14
+ export declare class CommentController<ResponseWrapper> implements IController {
15
+ private readonly client;
16
+ base: string;
17
+ name: string;
18
+ constructor(client: HTTPClient);
19
+ get proxy(): IRequestHandler<ResponseWrapper>;
20
+ /**
21
+ * 根据 comment id 获取评论, 包括子评论
22
+ */
23
+ getById(id: string): import("../interfaces/request").RequestProxyResult<CommentModel & {
24
+ ref: string;
25
+ }, ResponseWrapper, ResponseWrapper extends unknown ? {
26
+ [key: string]: any;
27
+ data: CommentModel & {
28
+ ref: string;
29
+ };
30
+ } : ResponseWrapper extends {
31
+ data: CommentModel & {
32
+ ref: string;
33
+ };
34
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
35
+ data: CommentModel & {
36
+ ref: string;
37
+ };
38
+ }>;
39
+ /**
40
+ * 获取文章的评论列表
41
+ * @param refId 文章 Id
42
+ */
43
+ getByRefId(refId: string, pagination?: PaginationParams): import("../interfaces/request").RequestProxyResult<PaginateResult<CommentModel & {
44
+ ref: string;
45
+ }>, ResponseWrapper, ResponseWrapper extends unknown ? {
46
+ [key: string]: any;
47
+ data: PaginateResult<CommentModel & {
48
+ ref: string;
49
+ }>;
50
+ } : ResponseWrapper extends {
51
+ data: PaginateResult<CommentModel & {
52
+ ref: string;
53
+ }>;
54
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
55
+ data: PaginateResult<CommentModel & {
56
+ ref: string;
57
+ }>;
58
+ }>;
59
+ /**
60
+ * 评论
61
+ */
62
+ comment(refId: string, data: CommentDto): import("../interfaces/request").RequestProxyResult<CommentModel, ResponseWrapper, ResponseWrapper extends unknown ? {
63
+ [key: string]: any;
64
+ data: CommentModel;
65
+ } : ResponseWrapper extends {
66
+ data: CommentModel;
67
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
68
+ data: CommentModel;
69
+ }>;
70
+ /**
71
+ * 回复评论
72
+ */
73
+ reply(commentId: string, data: CommentDto): import("../interfaces/request").RequestProxyResult<CommentModel, ResponseWrapper, ResponseWrapper extends unknown ? {
74
+ [key: string]: any;
75
+ data: CommentModel;
76
+ } : ResponseWrapper extends {
77
+ data: CommentModel;
78
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
79
+ data: CommentModel;
80
+ }>;
81
+ }
@@ -0,0 +1,16 @@
1
+ import { AggregateController } from './aggregate';
2
+ import { CategoryController } from './category';
3
+ import { CommentController } from './comment';
4
+ import { LinkController } from './link';
5
+ import { NoteController } from './note';
6
+ import { PageController } from './page';
7
+ import { PostController } from './post';
8
+ import { ProjectController } from './project';
9
+ import { RecentlyController } from './recently';
10
+ import { SayController } from './say';
11
+ import { SearchController } from './search';
12
+ import { SnippetController } from './snippet';
13
+ import { UserController } from './user';
14
+ export declare const allControllers: (typeof AggregateController | typeof CategoryController | typeof CommentController | typeof LinkController | typeof NoteController | typeof PageController | typeof PostController | typeof ProjectController | typeof RecentlyController | typeof SayController | typeof SearchController | typeof SnippetController | typeof UserController)[];
15
+ export declare const allContollerNames: readonly ["aggregate", "category", "comment", "link", "note", "page", "post", "project", "recently", "say", "search", "snippet", "user", "friend", "master", "shorthand"];
16
+ export { AggregateController, CategoryController, CommentController, LinkController, NoteController, PageController, PostController, ProjectController, RecentlyController, SayController, SearchController, SnippetController, UserController, };
@@ -0,0 +1,16 @@
1
+ import { IRequestAdapter } from '../interfaces/adapter';
2
+ import { LinkModel } from '../models/link';
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
+ link: LinkController<ResponseWrapper>;
8
+ friend: LinkController<ResponseWrapper>;
9
+ }
10
+ }
11
+ export declare class LinkController<ResponseWrapper> extends BaseCrudController<LinkModel, ResponseWrapper> {
12
+ protected readonly client: HTTPClient;
13
+ constructor(client: HTTPClient);
14
+ name: string[];
15
+ base: string;
16
+ }