apifm-admin 26.6.13 → 26.6.14

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.
package/README.md CHANGED
@@ -24,6 +24,28 @@ const res = await apifmAdmin.loginAdminMobile({
24
24
  })
25
25
  ```
26
26
 
27
+ ## 动态获取 x-token
28
+
29
+ 如果每个项目保存 token 的位置不同,不需要重写请求适配器,只注入获取 token 的方法即可:
30
+
31
+ ```js
32
+ import apifmAdmin from 'apifm-admin'
33
+
34
+ apifmAdmin.setTokenGetter(() => {
35
+ return uni.getStorageSync('tokenData')?.token || ''
36
+ })
37
+ ```
38
+
39
+ 也可以通过 `setConfig` 一起配置:
40
+
41
+ ```js
42
+ apifmAdmin.setConfig({
43
+ tokenGetter: () => uni.getStorageSync('tokenData')?.token || ''
44
+ })
45
+ ```
46
+
47
+ SDK 会在每次请求前调用 `tokenGetter`,并自动写入 `X-Token` 和 `x-token` 请求头。
48
+
27
49
  ## 跨端请求适配
28
50
 
29
51
  默认优先使用:
@@ -32,7 +54,7 @@ const res = await apifmAdmin.loginAdminMobile({
32
54
  2. `wx.request`
33
55
  3. `fetch`
34
56
 
35
- 也可以手动注入请求适配器:
57
+ 只有在需要完全接管请求行为时,才需要手动注入请求适配器:
36
58
 
37
59
  ```js
38
60
  import apifmAdmin from 'apifm-admin'
@@ -66,6 +88,7 @@ apifmAdmin.setConfig({
66
88
 
67
89
  ```js
68
90
  apifmAdmin.setToken('xtoken')
91
+ apifmAdmin.setTokenGetter(() => uni.getStorageSync('tokenData')?.token || '')
69
92
  apifmAdmin.setHeader('tenant-id', '1001')
70
93
  apifmAdmin.setDomain('common', 'https://common.apifm.com')
71
94
  ```
package/dist/index.cjs CHANGED
@@ -38321,6 +38321,7 @@ const DEFAULT_DOMAINS = {
38321
38321
 
38322
38322
  const state = {
38323
38323
  token: '',
38324
+ tokenGetter: null,
38324
38325
  headers: {},
38325
38326
  domains: { ...DEFAULT_DOMAINS },
38326
38327
  requestAdapter: null
@@ -38361,7 +38362,8 @@ function mergeHeaders(headers) {
38361
38362
  ...state.headers,
38362
38363
  ...headers
38363
38364
  }
38364
- const token = headers?.['X-Token'] || headers?.['x-token'] || state.token
38365
+ const dynamicToken = typeof state.tokenGetter === 'function' ? state.tokenGetter() : ''
38366
+ const token = headers?.['X-Token'] || headers?.['x-token'] || dynamicToken || state.token
38365
38367
  if (token) {
38366
38368
  merged['X-Token'] = token
38367
38369
  merged['x-token'] = token
@@ -38466,6 +38468,7 @@ const sdk = {
38466
38468
  getConfig() {
38467
38469
  return {
38468
38470
  token: state.token,
38471
+ tokenGetter: state.tokenGetter,
38469
38472
  headers: { ...state.headers },
38470
38473
  domains: { ...state.domains }
38471
38474
  }
@@ -38474,6 +38477,9 @@ const sdk = {
38474
38477
  if (config.token !== undefined) {
38475
38478
  state.token = config.token || ''
38476
38479
  }
38480
+ if (config.tokenGetter !== undefined) {
38481
+ state.tokenGetter = typeof config.tokenGetter === 'function' ? config.tokenGetter : null
38482
+ }
38477
38483
  if (config.headers) {
38478
38484
  state.headers = { ...state.headers, ...config.headers }
38479
38485
  }
@@ -38489,6 +38495,10 @@ const sdk = {
38489
38495
  state.token = token || ''
38490
38496
  return sdk
38491
38497
  },
38498
+ setTokenGetter(tokenGetter) {
38499
+ state.tokenGetter = typeof tokenGetter === 'function' ? tokenGetter : null
38500
+ return sdk
38501
+ },
38492
38502
  setHeader(name, value) {
38493
38503
  if (isNil(value)) {
38494
38504
  delete state.headers[name]
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export interface RequestOptions {
4
4
 
5
5
  export interface SDKConfig {
6
6
  token?: string;
7
+ tokenGetter?: () => string;
7
8
  headers?: Record<string, string>;
8
9
  domains?: Record<string, string>;
9
10
  requestAdapter?: (options: RequestAdapterOptions) => Promise<any>;
@@ -13255,9 +13256,10 @@ export interface YuyueJoinSuccessPayload {
13255
13256
  }
13256
13257
 
13257
13258
  declare const sdk: {
13258
- getConfig(): { token: string; headers: Record<string, string>; domains: Record<string, string> };
13259
+ getConfig(): { token: string; tokenGetter: (() => string) | null; headers: Record<string, string>; domains: Record<string, string> };
13259
13260
  setConfig(config?: SDKConfig): typeof sdk;
13260
13261
  setToken(token: string): typeof sdk;
13262
+ setTokenGetter(tokenGetter?: () => string): typeof sdk;
13261
13263
  setHeader(name: string, value?: string): typeof sdk;
13262
13264
  setHeaders(headers?: Record<string, string>): typeof sdk;
13263
13265
  setDomain(domainKey: string, domainValue: string): typeof sdk;
package/dist/index.js CHANGED
@@ -38321,6 +38321,7 @@ const DEFAULT_DOMAINS = {
38321
38321
 
38322
38322
  const state = {
38323
38323
  token: '',
38324
+ tokenGetter: null,
38324
38325
  headers: {},
38325
38326
  domains: { ...DEFAULT_DOMAINS },
38326
38327
  requestAdapter: null
@@ -38361,7 +38362,8 @@ function mergeHeaders(headers) {
38361
38362
  ...state.headers,
38362
38363
  ...headers
38363
38364
  }
38364
- const token = headers?.['X-Token'] || headers?.['x-token'] || state.token
38365
+ const dynamicToken = typeof state.tokenGetter === 'function' ? state.tokenGetter() : ''
38366
+ const token = headers?.['X-Token'] || headers?.['x-token'] || dynamicToken || state.token
38365
38367
  if (token) {
38366
38368
  merged['X-Token'] = token
38367
38369
  merged['x-token'] = token
@@ -38466,6 +38468,7 @@ const sdk = {
38466
38468
  getConfig() {
38467
38469
  return {
38468
38470
  token: state.token,
38471
+ tokenGetter: state.tokenGetter,
38469
38472
  headers: { ...state.headers },
38470
38473
  domains: { ...state.domains }
38471
38474
  }
@@ -38474,6 +38477,9 @@ const sdk = {
38474
38477
  if (config.token !== undefined) {
38475
38478
  state.token = config.token || ''
38476
38479
  }
38480
+ if (config.tokenGetter !== undefined) {
38481
+ state.tokenGetter = typeof config.tokenGetter === 'function' ? config.tokenGetter : null
38482
+ }
38477
38483
  if (config.headers) {
38478
38484
  state.headers = { ...state.headers, ...config.headers }
38479
38485
  }
@@ -38489,6 +38495,10 @@ const sdk = {
38489
38495
  state.token = token || ''
38490
38496
  return sdk
38491
38497
  },
38498
+ setTokenGetter(tokenGetter) {
38499
+ state.tokenGetter = typeof tokenGetter === 'function' ? tokenGetter : null
38500
+ return sdk
38501
+ },
38492
38502
  setHeader(name, value) {
38493
38503
  if (isNil(value)) {
38494
38504
  delete state.headers[name]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apifm-admin",
3
- "version": "26.6.13",
3
+ "version": "26.6.14",
4
4
  "description": "API 工厂后台接口 SDK,支持 Web、uni-app、微信小程序",
5
5
  "license": "MIT",
6
6
  "author": "",