u8-mqtt 0.6.3 → 0.6.4
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/cjs/basic-v4.cjs +1 -1
- package/cjs/basic-v5.cjs +1 -1
- package/cjs/full-v4.cjs +44 -30
- package/cjs/full-v4.cjs.map +1 -1
- package/cjs/full-v5.cjs +44 -30
- package/cjs/full-v5.cjs.map +1 -1
- package/cjs/index.cjs +44 -30
- package/cjs/index.cjs.map +1 -1
- package/cjs/v4.cjs +44 -30
- package/cjs/v4.cjs.map +1 -1
- package/cjs/v5.cjs +44 -30
- package/cjs/v5.cjs.map +1 -1
- package/code/router_path.jsy +39 -28
- package/code/with_topic_router.jsy +4 -1
- package/esm/basic-v4.js +1 -1
- package/esm/basic-v5.js +1 -1
- package/esm/deno/basic-v4.js +1 -1
- package/esm/deno/basic-v5.js +1 -1
- package/esm/deno/full-v4.js +44 -30
- package/esm/deno/full-v4.js.map +1 -1
- package/esm/deno/full-v5.js +44 -30
- package/esm/deno/full-v5.js.map +1 -1
- package/esm/deno/index.js +44 -30
- package/esm/deno/index.js.map +1 -1
- package/esm/deno/v4.js +44 -30
- package/esm/deno/v4.js.map +1 -1
- package/esm/deno/v5.js +44 -30
- package/esm/deno/v5.js.map +1 -1
- package/esm/full-v4.js +44 -30
- package/esm/full-v4.js.map +1 -1
- package/esm/full-v5.js +44 -30
- package/esm/full-v5.js.map +1 -1
- package/esm/index.js +44 -30
- package/esm/index.js.map +1 -1
- package/esm/node/basic-v4.js +1 -1
- package/esm/node/basic-v4.mjs +1 -1
- package/esm/node/basic-v5.js +1 -1
- package/esm/node/basic-v5.mjs +1 -1
- package/esm/node/full-v4.js +44 -30
- package/esm/node/full-v4.js.map +1 -1
- package/esm/node/full-v4.mjs +44 -30
- package/esm/node/full-v4.mjs.map +1 -1
- package/esm/node/full-v5.js +44 -30
- package/esm/node/full-v5.js.map +1 -1
- package/esm/node/full-v5.mjs +44 -30
- package/esm/node/full-v5.mjs.map +1 -1
- package/esm/node/index.js +44 -30
- package/esm/node/index.js.map +1 -1
- package/esm/node/index.mjs +44 -30
- package/esm/node/index.mjs.map +1 -1
- package/esm/node/v4.js +44 -30
- package/esm/node/v4.js.map +1 -1
- package/esm/node/v4.mjs +44 -30
- package/esm/node/v4.mjs.map +1 -1
- package/esm/node/v5.js +44 -30
- package/esm/node/v5.js.map +1 -1
- package/esm/node/v5.mjs +44 -30
- package/esm/node/v5.mjs.map +1 -1
- package/esm/v4.js +44 -30
- package/esm/v4.js.map +1 -1
- package/esm/v5.js +44 -30
- package/esm/v5.js.map +1 -1
- package/esm/web/basic-v4.js +1 -1
- package/esm/web/basic-v4.min.js +1 -1
- package/esm/web/basic-v4.min.js.br +0 -0
- package/esm/web/basic-v4.min.js.gz +0 -0
- package/esm/web/basic-v5.js +1 -1
- package/esm/web/basic-v5.min.js +1 -1
- package/esm/web/basic-v5.min.js.br +0 -0
- package/esm/web/basic-v5.min.js.gz +0 -0
- package/esm/web/full-v4.js +44 -30
- package/esm/web/full-v4.js.map +1 -1
- package/esm/web/full-v4.min.js +1 -1
- package/esm/web/full-v4.min.js.br +0 -0
- package/esm/web/full-v4.min.js.gz +0 -0
- package/esm/web/full-v5.js +44 -30
- package/esm/web/full-v5.js.map +1 -1
- package/esm/web/full-v5.min.js +1 -1
- package/esm/web/full-v5.min.js.br +0 -0
- package/esm/web/full-v5.min.js.gz +0 -0
- package/esm/web/index.js +44 -30
- package/esm/web/index.js.map +1 -1
- package/esm/web/index.min.js +1 -1
- package/esm/web/index.min.js.br +0 -0
- package/esm/web/index.min.js.gz +0 -0
- package/esm/web/v4.js +44 -30
- package/esm/web/v4.js.map +1 -1
- package/esm/web/v4.min.js +1 -1
- package/esm/web/v4.min.js.br +0 -0
- package/esm/web/v4.min.js.gz +0 -0
- package/esm/web/v5.js +44 -30
- package/esm/web/v5.js.map +1 -1
- package/esm/web/v5.min.js +1 -1
- package/esm/web/v5.min.js.br +0 -0
- package/esm/web/v5.min.js.gz +0 -0
- package/package.json +4 -4
package/cjs/full-v5.cjs
CHANGED
|
@@ -933,7 +933,10 @@ const with_topic_router = mqtt_topic_router =>
|
|
|
933
933
|
// alias: unsub_topic
|
|
934
934
|
unsubscribe_topic(topic_route, ...args) {
|
|
935
935
|
let router = this.router;
|
|
936
|
-
|
|
936
|
+
|
|
937
|
+
let fn = args.at(-1)?.call ? args.pop() : null;
|
|
938
|
+
router.remove(topic_route, true, fn);
|
|
939
|
+
|
|
937
940
|
let topic = router.mqtt_topic(topic_route);
|
|
938
941
|
return this.unsubscribe(topic, ...args ) }// topic_prefix
|
|
939
942
|
|
|
@@ -986,34 +989,38 @@ function mqtt_topic_path_router() {
|
|
|
986
989
|
if (fn) {throw new TypeError()}
|
|
987
990
|
fn = _ignore;}
|
|
988
991
|
|
|
989
|
-
let
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
pri_lsts[priority ? 0 : 1].push(rte);
|
|
992
|
+
let route = parse(as_topic_path(topic_route));
|
|
993
|
+
route.topic = topic_route;
|
|
994
|
+
route.tgt = fn;
|
|
995
|
+
pri_lsts[priority ? 0 : 1].push(route);
|
|
994
996
|
return this}
|
|
995
997
|
|
|
996
|
-
, remove(
|
|
997
|
-
let lst = pri_lsts
|
|
998
|
-
|
|
998
|
+
, remove(query, ...args) {
|
|
999
|
+
let lst = pri_lsts;
|
|
1000
|
+
if ('boolean' === typeof args[0]) {
|
|
1001
|
+
lst = [pri_lsts[args.shift() ? 0 : 1]];}
|
|
1002
|
+
|
|
1003
|
+
if ('string' === typeof query) {
|
|
1004
|
+
query ={topic: query, tgt: args.pop()}; }
|
|
1005
|
+
return _route_remove(lst, query)}
|
|
999
1006
|
|
|
1000
1007
|
, clear(priority) {
|
|
1001
|
-
pri_lsts[priority ? 0 : 1] = [];
|
|
1002
1008
|
if (null == priority) {
|
|
1003
|
-
pri_lsts
|
|
1009
|
+
pri_lsts = [[],[]]; }// null clears both lists
|
|
1010
|
+
else {
|
|
1011
|
+
pri_lsts[priority ? 0 : 1] = [];} }
|
|
1004
1012
|
|
|
1005
1013
|
, async invoke(pkt, ctx) {
|
|
1006
1014
|
ctx.idx = 0;
|
|
1007
1015
|
ctx.rm = rm;
|
|
1008
1016
|
|
|
1009
|
-
for (let [fn, params] of find(pkt.topic)) {
|
|
1017
|
+
for (let [fn, params, route] of find(pkt.topic)) {
|
|
1010
1018
|
let res = await fn(pkt, params, ctx);
|
|
1011
1019
|
|
|
1012
1020
|
if (rm === res) {
|
|
1013
|
-
_route_remove(pri_lsts,
|
|
1021
|
+
_route_remove(pri_lsts, route);}
|
|
1014
1022
|
|
|
1015
|
-
if (ctx.done) {
|
|
1016
|
-
break}
|
|
1023
|
+
if (ctx.done) {break}
|
|
1017
1024
|
else ctx.idx++;}
|
|
1018
1025
|
|
|
1019
1026
|
if (1 === pkt.qos) {
|
|
@@ -1023,28 +1030,35 @@ function mqtt_topic_path_router() {
|
|
|
1023
1030
|
function * _routes_iter(all_route_lists, topic) {
|
|
1024
1031
|
topic = topic.replace(/^[\/]*/, '/'); // ensure '/' prefix for regexparam library
|
|
1025
1032
|
for (let route_list of all_route_lists) {
|
|
1026
|
-
for (let
|
|
1027
|
-
let match = pattern.exec(topic);
|
|
1033
|
+
for (let route of route_list) {
|
|
1034
|
+
let match = route.pattern.exec(topic);
|
|
1028
1035
|
if (match) {
|
|
1029
|
-
let params = keys
|
|
1030
|
-
? keys.reduce(
|
|
1036
|
+
let params = route.keys
|
|
1037
|
+
? route.keys.reduce(
|
|
1031
1038
|
(o, k, i) => (o[k] = match[1+i], o)
|
|
1032
1039
|
, {})
|
|
1033
1040
|
: match.groups ?? match;
|
|
1034
|
-
yield [tgt, params];} } } }
|
|
1041
|
+
yield [route.tgt, params, route];} } } }
|
|
1035
1042
|
|
|
1036
1043
|
|
|
1037
1044
|
function _route_remove(all_route_lists, query) {
|
|
1038
|
-
let
|
|
1039
|
-
route===query
|
|
1040
|
-
|| route.tgt===query
|
|
1041
|
-
|| route.key===query);
|
|
1045
|
+
let ans = false;
|
|
1042
1046
|
for (let lst of all_route_lists) {
|
|
1043
|
-
let
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1047
|
+
let idx_tip = 0;
|
|
1048
|
+
for (let route of lst) {
|
|
1049
|
+
// skip matching routes to remove from compacted list
|
|
1050
|
+
if (route === query) continue
|
|
1051
|
+
if (route.topic === query.topic) {
|
|
1052
|
+
if (null == query.tgt) continue
|
|
1053
|
+
if (route.tgt === query.tgt) continue}
|
|
1054
|
+
|
|
1055
|
+
lst[idx_tip++] = route;}
|
|
1056
|
+
|
|
1057
|
+
// truncate remaining list
|
|
1058
|
+
if (lst.splice(idx_tip).length)
|
|
1059
|
+
ans = true;}
|
|
1060
|
+
|
|
1061
|
+
return ans}
|
|
1048
1062
|
|
|
1049
1063
|
function decode_varint(u8, i0=0, invalid) {
|
|
1050
1064
|
let shift=0, i=i0, b=u8[i++], n=(b & 0x7f);
|
|
@@ -1659,7 +1673,7 @@ class MQTTCore extends MQTTBase {
|
|
|
1659
1673
|
|
|
1660
1674
|
return this} }
|
|
1661
1675
|
|
|
1662
|
-
const version = '0.6.
|
|
1676
|
+
const version = '0.6.4-node';
|
|
1663
1677
|
|
|
1664
1678
|
const MQTTClient_v4 = /* #__PURE__ */
|
|
1665
1679
|
with_topic_path_router(
|