@byted-apaas/server-sdk-node 1.1.26-beta.2 → 1.1.27-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.
@@ -424,26 +424,24 @@ async function handleLookupCondition(conditions) {
424
424
  let lookupMap = new Map(), dateSet = new Set();
425
425
  let firstObjApiName = conditions[0].left.settings.fieldPath[0].objectApiName;
426
426
  let fields = [];
427
- let needReadCache = server_common_node_1.utils.getLaneID() !== ''; // 仅打包发布 2.0 支持走 cache
428
- let cacheResult = null;
429
- if (needReadCache) { // 打包发布 2.0 读缓存
430
- cacheResult = getLookupObjectAPINamesFromCache(firstObjApiName, queryMap);
431
- // todo wby 方便 qa 测试的日志
432
- console.log(`\n=====>[handleLookupCondition] getLookupObjectAPINamesFromCache: ${JSON.stringify(cacheResult)}\n`);
433
- }
434
- // 命中缓存
435
- if (cacheResult !== null && cacheResult.missFields.length === 0) {
436
- fields = cacheResult.successFields;
437
- }
438
- // 未命中缓存 / 不读缓存
439
- if ((cacheResult !== null && cacheResult.missFields.length === 1) || (!needReadCache && queryMap.size === 1)) {
440
- if (cacheResult !== null && cacheResult.missFields.length === 1) {
441
- fieldName = cacheResult.missFields[0];
427
+ // 未命中缓存的字段
428
+ let missFields = [...queryMap.keys()];
429
+ const needReadCache = server_common_node_1.utils.getLaneID() !== ''; // 仅打包发布 2.0 支持走 cache
430
+ if (needReadCache) {
431
+ const cacheResult = getLookupObjectAPINamesFromCache(firstObjApiName, queryMap);
432
+ if (cacheResult) {
433
+ fields = cacheResult.successFields;
434
+ missFields = cacheResult.missFields;
442
435
  }
443
- fields.push(await Request.GetInstance().getField(firstObjApiName, fieldName));
444
436
  }
445
- if ((cacheResult !== null && cacheResult.missFields.length > 1) || (!needReadCache && queryMap.size > 1)) {
446
- fields = await Request.GetInstance().getFields(firstObjApiName);
437
+ // 获取未命中缓存的字段,通过 API 获取
438
+ if (missFields.length === 1) { // 单个获取
439
+ fields.push(await Request.GetInstance().getField(firstObjApiName, missFields[0]));
440
+ }
441
+ else if (missFields.length > 1) { // 批量获取
442
+ const allFields = await Request.GetInstance().getFields(firstObjApiName);
443
+ const fetchSet = new Set(missFields);
444
+ fields.push(...allFields.filter((f) => fetchSet.has(f.api_name)));
447
445
  }
448
446
  for (const field of fields) {
449
447
  parseFieldInfo(field, lookupMap, dateSet);
@@ -594,7 +592,7 @@ function setFieldCache(objectApiName, fieldName, field) {
594
592
  localCache.set(getFieldCacheKey(objectApiName, fieldName), field, 60); // 缓存60s
595
593
  }
596
594
  function getFieldCache(objectApiName, fieldName) {
597
- let field = localCache.get(getFieldCacheKey(objectApiName, fieldName));
595
+ const field = localCache.get(getFieldCacheKey(objectApiName, fieldName));
598
596
  return field;
599
597
  }
600
598
  function getFieldCacheKey(objectApiName, fieldName) {
@@ -603,8 +601,8 @@ function getFieldCacheKey(objectApiName, fieldName) {
603
601
  function getLookupObjectAPINamesFromCache(firstObjApiName, queryMap) {
604
602
  var missFields = [];
605
603
  var successFields = [];
606
- for (const [fieldName, _] of queryMap) {
607
- let field = getFieldCache(firstObjApiName, fieldName);
604
+ for (const [fieldName] of queryMap) {
605
+ const field = getFieldCache(firstObjApiName, fieldName);
608
606
  if (field) {
609
607
  successFields.push(field);
610
608
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@byted-apaas/server-sdk-node",
3
- "version": "1.1.26-beta.2",
3
+ "version": "1.1.27-beta.0",
4
4
  "description": "aPaaS Server SDK",
5
5
  "author": "zhouwexin <zhouwexin@bytedance.com>",
6
6
  "homepage": "",