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