mm_cachebase 2.0.3 → 2.0.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mm_cachebase",
3
- "version": "2.0.3",
3
+ "version": "2.0.5",
4
4
  "description": "一个轻量级的本地缓存类库,接口与 mm_redis 完全对齐:全异步API、冒号风格事件、统一签名与返回值,支持字符串、哈希、列表、集合、有序集合、发布订阅。",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -11,6 +11,9 @@
11
11
  "url": "git+https://gitee.com/qiuwenwu91/mm_cachebase.git"
12
12
  },
13
13
  "keywords": [
14
+ "mm_mod",
15
+ "mm_port",
16
+ "mm_cache",
14
17
  "cachebase",
15
18
  "redis",
16
19
  "cache",
@@ -32,6 +35,8 @@
32
35
  "persist",
33
36
  "scope"
34
37
  ],
38
+ "layer": "port",
39
+ "group": "cache",
35
40
  "author": "邱文武",
36
41
  "license": "MIT",
37
42
  "bugs": {
@@ -39,6 +44,7 @@
39
44
  },
40
45
  "homepage": "https://gitee.com/qiuwenwu91/mm_cachebase#readme",
41
46
  "dependencies": {
42
- "mm_expand": "^2.5.4"
47
+ "mm_corejs": "^1.1.5",
48
+ "mm_helper": "^1.0.1"
43
49
  }
44
50
  }
package/test.js CHANGED
@@ -1,3 +1,16 @@
1
+ // 独立运行时补充全局 $ 对象(mm_os 宿主环境已提供,npm 包测试需自备)
2
+ if (!global.$) {
3
+ global.$ = {
4
+ log: {
5
+ debug: console.debug ? console.debug.bind(console) : console.log.bind(console),
6
+ info: console.info ? console.info.bind(console) : console.log.bind(console),
7
+ warn: console.warn ? console.warn.bind(console) : console.log.bind(console),
8
+ error: console.error ? console.error.bind(console) : console.log.bind(console),
9
+ success: console.log.bind(console)
10
+ }
11
+ };
12
+ }
13
+
1
14
  const assert = require('assert');
2
15
  const { CacheBase, cachebaseAdmin } = require('./index.js');
3
16
 
@@ -618,55 +631,54 @@ async function test() {
618
631
  const eventCache = new CacheBase({ scope: 'test_event' });
619
632
 
620
633
  await runner.runTest('set事件触发(冒号风格)', async () => {
621
- return new Promise(async (resolve, reject) => {
622
- let beforeTriggered = false;
623
- let afterTriggered = false;
624
-
625
- // 事件名改为冒号风格,对齐 mm_redis
626
- eventCache.once('set:before', (data) => {
627
- if (data.key === 'event_key' && data.value === 'event_value') {
628
- beforeTriggered = true;
629
- }
630
- });
631
-
632
- eventCache.once('set:after', (data) => {
633
- if (data.key === 'event_key' && data.value === 'event_value' && data.success === true) {
634
- afterTriggered = true;
635
- setTimeout(() => {
636
- if (beforeTriggered && afterTriggered) {
637
- resolve();
638
- } else {
639
- reject(new Error('set事件未全部触发'));
640
- }
641
- }, 10);
642
- }
643
- });
644
-
645
- await eventCache.set('event_key', 'event_value');
634
+ let beforeTriggered = false;
635
+ let afterTriggered = false;
636
+
637
+ // 事件名改为冒号风格,对齐 mm_redis
638
+ eventCache.once('set:before', (data) => {
639
+ if (data.key === 'event_key' && data.value === 'event_value') {
640
+ beforeTriggered = true;
641
+ }
646
642
  });
643
+
644
+ eventCache.once('set:after', (data) => {
645
+ if (data.key === 'event_key' && data.value === 'event_value' && data.success === true) {
646
+ afterTriggered = true;
647
+ }
648
+ });
649
+
650
+ await eventCache.set('event_key', 'event_value');
651
+
652
+ // 事件为同步触发,等待一个宏任务后校验两个事件均已触发
653
+ await new Promise(resolve => setTimeout(resolve, 10));
654
+ if (!beforeTriggered || !afterTriggered) {
655
+ throw new Error('set事件未全部触发');
656
+ }
647
657
  });
648
658
 
649
659
  await runner.runTest('error事件触发(冒号风格)', async () => {
650
- return new Promise(async (resolve, reject) => {
651
- // 事件名改为冒号风格
660
+ // 事件名改为冒号风格
661
+ const errorPromise = new Promise((resolve, reject) => {
662
+ // 超时保护,若事件未触发则失败
663
+ const timer = setTimeout(() => reject(new Error('mset:error事件未触发')), 100);
652
664
  eventCache.once('mset:error', (data) => {
665
+ clearTimeout(timer);
653
666
  if (data.error) {
654
667
  resolve();
655
668
  } else {
656
669
  reject(new Error('mset:error事件触发但数据不正确'));
657
670
  }
658
671
  });
659
-
660
- // 传入非法参数触发错误,mset 内部 catch 后返回 false 并触发 mset:error 事件
661
- const result = await eventCache.mset(null);
662
- if (result !== false) {
663
- reject(new Error(`mset应返回false但返回: ${result}`));
664
- }
665
- // 超时保护,若事件未触发则失败
666
- setTimeout(() => {
667
- reject(new Error('mset:error事件未触发'));
668
- }, 100);
669
672
  });
673
+
674
+ // 传入非法参数触发错误,mset 内部 catch 后返回 false 并触发 mset:error 事件
675
+ const result = await eventCache.mset(null);
676
+ if (result !== false) {
677
+ throw new Error(`mset应返回false但返回: ${result}`);
678
+ }
679
+
680
+ // 等待 mset:error 事件触发
681
+ await errorPromise;
670
682
  });
671
683
 
672
684
  // 测试管理功能