@lark-apaas/dataloom 0.1.3-alpha.9 → 0.1.3-beta.0
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/lib/service/index.d.ts +17 -1
- package/lib/service/index.d.ts.map +1 -1
- package/lib/service/index.js +2 -28
- package/package.json +1 -1
package/lib/service/index.d.ts
CHANGED
|
@@ -3,7 +3,23 @@ export interface DataloomServiceOptions {
|
|
|
3
3
|
accountServices?: AccountServicesInjection;
|
|
4
4
|
}
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* DataloomService —— 账号相关服务(user / session)的承载壳。
|
|
7
|
+
*
|
|
8
|
+
* 历史背景:
|
|
9
|
+
* - 早期 user/session 的实现内置在 dataloom 内部;后续抽离到 `@lark-apaas/auth-sdk`,
|
|
10
|
+
* dataloom 不再持有具体实现,只通过依赖注入(DI)拿到 authClient.user / authClient.session。
|
|
11
|
+
*
|
|
12
|
+
* 注入路径:
|
|
13
|
+
* client-toolkit / client-toolkit-lite
|
|
14
|
+
* → createClient(url, key, { global: { accountServices: { user, session } } })
|
|
15
|
+
* → new DataloomClient(...)
|
|
16
|
+
* → new DataloomService({ accountServices })
|
|
17
|
+
*
|
|
18
|
+
* 设计要点:
|
|
19
|
+
* - 依赖方向单向:dataloom 不 import auth-sdk,只声明 `*ServiceShape` 形状契约。
|
|
20
|
+
* - 未注入时不抛错:把字段降级为空对象占位,让存在性检查(如 `if (service.user)`)
|
|
21
|
+
* 与对象探测保持中性;具体方法是否可用由调用方在使用点感知(拿到 undefined / TypeError)。
|
|
22
|
+
* - 仅作"中转字段",不做任何运行时逻辑封装。
|
|
7
23
|
*/
|
|
8
24
|
export default class DataloomService {
|
|
9
25
|
readonly user: UserServiceShape;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,sBAAsB;IACrC,eAAe,CAAC,EAAE,wBAAwB,CAAC;CAC5C;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,sBAAsB;IACrC,eAAe,CAAC,EAAE,wBAAwB,CAAC;CAC5C;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;gBAE1B,OAAO,EAAE,sBAAsB;CAM5C;AAED,YAAY,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,CAAC"}
|
package/lib/service/index.js
CHANGED
|
@@ -1,34 +1,8 @@
|
|
|
1
|
-
const MIGRATION_HINT = "[dataloom] service.user / service.session has moved to @lark-apaas/auth-sdk\nUse `authClient` from @lark-apaas/client-toolkit/auth (or @lark-apaas/auth-sdk), e.g.:\n import { authClient } from '@lark-apaas/client-toolkit/auth';\n await authClient.user.search({ name: 'zhangsan' });\nIf you really need to keep using dataloom.service.*, ensure client-toolkit injects accountServices when constructing DataloomClient.";
|
|
2
|
-
const ALLOWED_REFLECTION_KEYS = new Set([
|
|
3
|
-
'constructor',
|
|
4
|
-
'then',
|
|
5
|
-
'toJSON',
|
|
6
|
-
'toString',
|
|
7
|
-
'asymmetricMatch',
|
|
8
|
-
'nodeType',
|
|
9
|
-
'tagName',
|
|
10
|
-
'Symbol(Symbol.toPrimitive)',
|
|
11
|
-
'$$typeof'
|
|
12
|
-
]);
|
|
13
|
-
const createUninjectedStub = (key)=>new Proxy({}, {
|
|
14
|
-
get (_target, prop) {
|
|
15
|
-
if ('symbol' == typeof prop) return;
|
|
16
|
-
if (ALLOWED_REFLECTION_KEYS.has(prop)) return;
|
|
17
|
-
return (..._args)=>{
|
|
18
|
-
throw new Error(`[dataloom] service.${key}.${String(prop)} ${MIGRATION_HINT}`);
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
1
|
class DataloomService {
|
|
23
2
|
constructor(options){
|
|
24
3
|
const injected = options.accountServices;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
this.session = injected.session;
|
|
28
|
-
} else {
|
|
29
|
-
this.user = createUninjectedStub('user');
|
|
30
|
-
this.session = createUninjectedStub('session');
|
|
31
|
-
}
|
|
4
|
+
this.user = injected?.user ?? {};
|
|
5
|
+
this.session = injected?.session ?? {};
|
|
32
6
|
}
|
|
33
7
|
}
|
|
34
8
|
export { DataloomService as default };
|