@welshman/lib 0.0.11 → 0.0.13

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.
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.partition = exports.flatten = exports.fromPairs = exports.ensureNumber = exports.ensurePlural = exports.toIterable = exports.isIterable = exports.shuffle = exports.choice = exports.splitAt = exports.hash = exports.assoc = exports.prop = exports.ne = exports.eq = exports.nthEq = exports.nth = exports.tryCatch = exports.clamp = exports.toggle = exports.without = exports.remove = exports.difference = exports.intersection = exports.union = exports.append = exports.concat = exports.sleep = exports.stripProtocol = exports.randomId = exports.between = exports.mapVals = exports.mapKeys = exports.range = exports.pick = exports.omit = exports.take = exports.drop = exports.avg = exports.sum = exports.min = exports.max = exports.dec = exports.inc = exports.always = exports.identity = exports.last = exports.first = exports.now = exports.isNil = void 0;
4
- exports.bech32ToHex = exports.hexToBech32 = exports.pushToMapKey = exports.addToMapKey = exports.pushToKey = exports.addToKey = exports.batch = exports.once = exports.chunks = exports.chunk = exports.initArray = exports.sample = exports.indexBy = exports.groupBy = exports.sortBy = exports.sort = exports.uniqBy = exports.uniq = void 0;
3
+ exports.ensureNumber = exports.ensurePlural = exports.toIterable = exports.isIterable = exports.shuffle = exports.choice = exports.splitAt = exports.hash = exports.assoc = exports.prop = exports.ne = exports.eq = exports.nthEq = exports.nth = exports.equals = exports.tryCatch = exports.clamp = exports.toggle = exports.without = exports.remove = exports.difference = exports.intersection = exports.union = exports.append = exports.concat = exports.sleep = exports.stripProtocol = exports.randomId = exports.between = exports.mergeRight = exports.mergeLeft = exports.mapVals = exports.mapKeys = exports.range = exports.pick = exports.omit = exports.take = exports.drop = exports.avg = exports.sum = exports.min = exports.max = exports.dec = exports.inc = exports.always = exports.identity = exports.last = exports.first = exports.now = exports.isNil = void 0;
4
+ exports.bech32ToHex = exports.hexToBech32 = exports.uploadFile = exports.postJson = exports.fetchJson = exports.switcher = exports.pushToMapKey = exports.addToMapKey = exports.pushToKey = exports.addToKey = exports.batch = exports.once = exports.chunks = exports.chunk = exports.initArray = exports.sample = exports.indexBy = exports.groupBy = exports.sortBy = exports.sort = exports.uniqBy = exports.uniq = exports.partition = exports.flatten = exports.fromPairs = void 0;
5
5
  const throttle_debounce_1 = require("throttle-debounce");
6
6
  const base_1 = require("@scure/base");
7
7
  const isNil = (x) => [null, undefined].includes(x);
@@ -73,6 +73,10 @@ const mapVals = (f, x) => {
73
73
  return r;
74
74
  };
75
75
  exports.mapVals = mapVals;
76
+ const mergeLeft = (a, b) => ({ ...b, ...a });
77
+ exports.mergeLeft = mergeLeft;
78
+ const mergeRight = (a, b) => ({ ...a, ...b });
79
+ exports.mergeRight = mergeRight;
76
80
  const between = (low, high, n) => n > low && n < high;
77
81
  exports.between = between;
78
82
  const randomId = () => Math.random().toString().slice(2);
@@ -97,7 +101,7 @@ const difference = (a, b) => {
97
101
  return a.filter(x => !s.has(x));
98
102
  };
99
103
  exports.difference = difference;
100
- const remove = (a, b) => b.filter(x => x !== a);
104
+ const remove = (a, xs) => xs.filter(x => x !== a);
101
105
  exports.remove = remove;
102
106
  const without = (a, b) => b.filter(x => !a.includes(x));
103
107
  exports.without = without;
@@ -115,6 +119,36 @@ const tryCatch = async (f, onError) => {
115
119
  return undefined;
116
120
  };
117
121
  exports.tryCatch = tryCatch;
122
+ const equals = (a, b) => {
123
+ if (a === b)
124
+ return true;
125
+ if (Array.isArray(a)) {
126
+ if (!Array.isArray(b) || a.length !== b.length) {
127
+ return false;
128
+ }
129
+ for (let i = 0; i < a.length; i++) {
130
+ if (!(0, exports.equals)(a[i], b[i])) {
131
+ return false;
132
+ }
133
+ }
134
+ return true;
135
+ }
136
+ if (typeof a === 'object') {
137
+ const aKeys = Object.keys(a);
138
+ const bKeys = Object.keys(b);
139
+ if (typeof b !== 'object' || aKeys.length !== bKeys.length) {
140
+ return false;
141
+ }
142
+ for (const k of aKeys) {
143
+ if (!(0, exports.equals)(a[k], b[k])) {
144
+ return false;
145
+ }
146
+ }
147
+ return true;
148
+ }
149
+ return false;
150
+ };
151
+ exports.equals = equals;
118
152
  // Curried utils
119
153
  const nth = (i) => (xs, ...args) => xs[i];
120
154
  exports.nth = nth;
@@ -302,6 +336,36 @@ const pushToMapKey = (m, k, v) => {
302
336
  m.set(k, a);
303
337
  };
304
338
  exports.pushToMapKey = pushToMapKey;
339
+ const switcher = (k, m) => m[k] === undefined ? m.default : m[k];
340
+ exports.switcher = switcher;
341
+ const fetchJson = async (url, opts = {}) => {
342
+ if (!opts.headers) {
343
+ opts.headers = {};
344
+ }
345
+ opts.headers["Accept"] = "application/json";
346
+ const res = await fetch(url, opts);
347
+ const json = await res.json();
348
+ return json;
349
+ };
350
+ exports.fetchJson = fetchJson;
351
+ const postJson = async (url, data, opts = {}) => {
352
+ if (!opts.method) {
353
+ opts.method = "POST";
354
+ }
355
+ if (!opts.headers) {
356
+ opts.headers = {};
357
+ }
358
+ opts.headers["Content-Type"] = "application/json";
359
+ opts.body = JSON.stringify(data);
360
+ return (0, exports.fetchJson)(url, opts);
361
+ };
362
+ exports.postJson = postJson;
363
+ const uploadFile = (url, fileObj) => {
364
+ const body = new FormData();
365
+ body.append("file", fileObj);
366
+ return (0, exports.fetchJson)(url, { method: "POST", body });
367
+ };
368
+ exports.uploadFile = uploadFile;
305
369
  // Random obscure stuff
306
370
  const hexToBech32 = (prefix, url) => base_1.bech32.encode(prefix, base_1.bech32.toWords(base_1.utf8.decode(url)), false);
307
371
  exports.hexToBech32 = hexToBech32;
@@ -1 +1 @@
1
- {"version":3,"file":"Tools.cjs","sourceRoot":"","sources":["../../src/Tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tools.cjs","sourceRoot":"","sources":["../../src/Tools.ts"],"names":[],"mappings":";;;;AAAA,yDAA0C;AAC1C,sCAAwC;AAMjC,MAAM,KAAK,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAAjD,QAAA,KAAK,SAA4C;AAE9D,oBAAoB;AAEb,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;AAAzC,QAAA,GAAG,OAAsC;AAE/C,MAAM,KAAK,GAAG,CAAI,EAAO,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAAjD,QAAA,KAAK,SAA4C;AAEvD,MAAM,IAAI,GAAG,CAAI,EAAO,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAA5D,QAAA,IAAI,QAAwD;AAElE,MAAM,QAAQ,GAAG,CAAI,CAAI,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,CAAC,CAAA;AAA7C,QAAA,QAAQ,YAAqC;AAEnD,MAAM,MAAM,GAAG,CAAI,CAAI,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;AAAjD,QAAA,MAAM,UAA2C;AAEvD,MAAM,GAAG,GAAG,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;AAAvC,QAAA,GAAG,OAAoC;AAE7C,MAAM,GAAG,GAAG,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;AAAvC,QAAA,GAAG,OAAoC;AAE7C,MAAM,GAAG,GAAG,CAAC,EAAY,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAA9D,QAAA,GAAG,OAA2D;AAEpE,MAAM,GAAG,GAAG,CAAC,EAAY,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAA9D,QAAA,GAAG,OAA2D;AAEpE,MAAM,GAAG,GAAG,CAAC,EAAY,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;AAArD,QAAA,GAAG,OAAkD;AAE3D,MAAM,GAAG,GAAG,CAAC,EAAY,EAAE,EAAE,CAAC,IAAA,WAAG,EAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAA;AAA3C,QAAA,GAAG,OAAwC;AAEjD,MAAM,IAAI,GAAG,CAAI,CAAS,EAAE,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAA7C,QAAA,IAAI,QAAyC;AAEnD,MAAM,IAAI,GAAG,CAAI,CAAS,EAAE,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAAhD,QAAA,IAAI,QAA4C;AAEtD,MAAM,IAAI,GAAG,CAAgC,EAAY,EAAE,CAAI,EAAE,EAAE;IACxE,MAAM,CAAC,GAAM,EAAC,GAAG,CAAC,EAAC,CAAA;IAEnB,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE;QAClB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;KACZ;IAED,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AARY,QAAA,IAAI,QAQhB;AAEM,MAAM,IAAI,GAAG,CAAgC,EAAY,EAAE,CAAI,EAAE,EAAE;IACxE,MAAM,CAAC,GAAM,EAAC,GAAG,CAAC,EAAC,CAAA;IAEnB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAC9B,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YACnB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;SACZ;KACF;IAED,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAVY,QAAA,IAAI,QAUhB;AAED,QAAe,CAAC,CAAC,KAAK,CAAC,CAAS,EAAE,CAAS,EAAE,IAAI,GAAG,CAAC;IACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;QAChC,MAAM,CAAC,CAAA;KACR;AACH,CAAC;AAJD,sBAIC;AAEM,MAAM,OAAO,GAAG,CAAgC,CAAwB,EAAE,CAAI,EAAE,EAAE;IACvF,MAAM,CAAC,GAAwB,EAAE,CAAA;IAEjC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACtC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;KACZ;IAED,OAAO,CAAM,CAAA;AACf,CAAC,CAAA;AARY,QAAA,OAAO,WAQnB;AAEM,MAAM,OAAO,GAAG,CAAgC,CAAkB,EAAE,CAAI,EAAE,EAAE;IACjF,MAAM,CAAC,GAAwB,EAAE,CAAA;IAEjC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACtC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;KACZ;IAED,OAAO,CAAM,CAAA;AACf,CAAC,CAAA;AARY,QAAA,OAAO,WAQnB;AAEM,MAAM,SAAS,GAAG,CAAgC,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAC,CAAC,CAAA;AAAzE,QAAA,SAAS,aAAgE;AAE/E,MAAM,UAAU,GAAG,CAAgC,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAC,CAAC,CAAA;AAA1E,QAAA,UAAU,cAAgE;AAEhF,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;AAAvE,QAAA,OAAO,WAAgE;AAE7E,MAAM,QAAQ,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAA1D,QAAA,QAAQ,YAAkD;AAEhE,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;AAA3D,QAAA,aAAa,iBAA8C;AAEjE,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;AAArE,QAAA,KAAK,SAAgE;AAE3E,MAAM,MAAM,GAAG,CAAI,GAAG,EAAiB,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAA9D,QAAA,MAAM,UAAwD;AAEpE,MAAM,MAAM,GAAG,CAAI,CAAI,EAAE,EAAe,EAAE,EAAE,CAAC,IAAA,cAAM,EAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAAtD,QAAA,MAAM,UAAgD;AAE5D,MAAM,KAAK,GAAG,CAAI,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,IAAA,YAAI,EAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;AAAjD,QAAA,KAAK,SAA4C;AAEvD,MAAM,YAAY,GAAG,CAAI,CAAM,EAAE,CAAM,EAAE,EAAE;IAChD,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;IAEpB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC,CAAA;AAJY,QAAA,YAAY,gBAIxB;AAEM,MAAM,UAAU,GAAG,CAAI,CAAM,EAAE,CAAM,EAAE,EAAE;IAC9C,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;IAEpB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AACjC,CAAC,CAAA;AAJY,QAAA,UAAU,cAItB;AAEM,MAAM,MAAM,GAAG,CAAI,CAAI,EAAE,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;AAAtD,QAAA,MAAM,UAAgD;AAE5D,MAAM,OAAO,GAAG,CAAI,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AAA9D,QAAA,OAAO,WAAuD;AAEpE,MAAM,MAAM,GAAG,CAAI,CAAI,EAAE,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,cAAM,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAA,cAAM,EAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAA7E,QAAA,MAAM,UAAuE;AAEnF,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAmB,EAAE,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;AAApF,QAAA,KAAK,SAA+E;AAE1F,MAAM,QAAQ,GAAG,KAAK,EAAK,CAAqC,EAAE,OAA4B,EAAqB,EAAE;IAC1H,IAAI;QACF,OAAO,MAAM,CAAC,EAAE,CAAA;KACjB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,CAAU,CAAC,CAAA;KACtB;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AARY,QAAA,QAAQ,YAQpB;AAEM,MAAM,MAAM,GAAG,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE;IACvC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAExB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE;YAC9C,OAAO,KAAK,CAAA;SACb;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjC,IAAI,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBACvB,OAAO,KAAK,CAAA;aACb;SACF;QAED,OAAO,IAAI,CAAA;KACZ;IAED,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE5B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;YAC1D,OAAO,KAAK,CAAA;SACb;QAED,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;YACrB,IAAI,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBACvB,OAAO,KAAK,CAAA;aACb;SACF;QAED,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAnCY,QAAA,MAAM,UAmClB;AAED,gBAAgB;AAET,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAI,EAAO,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAA9D,QAAA,GAAG,OAA2D;AAEpE,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,EAAS,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AAA7E,QAAA,KAAK,SAAwE;AAEnF,MAAM,EAAE,GAAG,CAAI,CAAI,EAAE,EAAE,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;AAAnC,QAAA,EAAE,MAAiC;AAEzC,MAAM,EAAE,GAAG,CAAI,CAAI,EAAE,EAAE,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;AAAnC,QAAA,EAAE,MAAiC;AAEzC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAI,CAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAAvD,QAAA,IAAI,QAAmD;AAE7D,MAAM,KAAK,GAAG,CAAyB,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,CAAC,EAAE,CAAC,CAAM,CAAC,EAAE,CAAC,EAAC,CAAqB,CAAA;AAAnG,QAAA,KAAK,SAA8F;AAEzG,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAChC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;AAD/E,QAAA,IAAI,QAC2E;AAE5F,cAAc;AAEP,MAAM,OAAO,GAAG,CAAI,CAAS,EAAE,EAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAAlE,QAAA,OAAO,WAA2D;AAExE,MAAM,MAAM,GAAG,CAAI,EAAO,EAAK,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;AAArE,QAAA,MAAM,UAA+D;AAE3E,MAAM,OAAO,GAAG,CAAI,EAAe,EAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAA9F,QAAA,OAAO,WAAuF;AAEpG,MAAM,UAAU,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;AAArD,QAAA,UAAU,cAA2C;AAE3D,MAAM,UAAU,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,IAAA,kBAAU,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAAhD,QAAA,UAAU,cAAsC;AAEtD,MAAM,YAAY,GAAG,CAAI,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAAhE,QAAA,YAAY,gBAAoD;AAEtE,MAAM,YAAY,GAAG,CAAC,CAAkB,EAAE,EAAE,CAAC,UAAU,CAAC,CAAW,CAAC,CAAA;AAA9D,QAAA,YAAY,gBAAkD;AAEpE,MAAM,SAAS,GAAG,CAAI,KAAgD,EAAE,EAAE;IAC/E,MAAM,CAAC,GAAsB,EAAE,CAAA;IAE/B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,EAAE;QAC1B,IAAI,CAAC,IAAI,CAAC,EAAE;YACV,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;SACT;KACF;IAED,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAVY,QAAA,SAAS,aAUrB;AAEM,MAAM,OAAO,GAAG,CAAI,EAAS,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAQ,CAAC,CAAA;AAAhD,QAAA,OAAO,WAAyC;AAEtD,MAAM,SAAS,GAAG,CAAI,CAAoB,EAAE,EAAO,EAAE,EAAE;IAC5D,MAAM,CAAC,GAAQ,EAAE,CAAA;IACjB,MAAM,CAAC,GAAQ,EAAE,CAAA;IAEjB,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE;QAClB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YACR,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SACV;aAAM;YACL,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SACV;KACF;IAED,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACf,CAAC,CAAA;AAbY,QAAA,SAAS,aAarB;AAEM,MAAM,IAAI,GAAG,CAAI,EAAO,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;AAA9C,QAAA,IAAI,QAA0C;AAEpD,MAAM,MAAM,GAAG,CAAI,CAAgB,EAAE,EAAO,EAAE,EAAE;IACrD,MAAM,CAAC,GAAG,IAAI,GAAG,EAAO,CAAA;IACxB,MAAM,CAAC,GAAG,EAAE,CAAA;IAEZ,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE;QAClB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAEd,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACZ,SAAQ;SACT;QAED,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACR,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACV;IAED,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAhBY,QAAA,MAAM,UAgBlB;AAEM,MAAM,IAAI,GAAG,CAAI,EAAO,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;AAArC,QAAA,IAAI,QAAiC;AAE3C,MAAM,MAAM,GAAG,CAAI,CAAgB,EAAE,EAAO,EAAE,EAAE,CACrD,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE;IAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACd,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAEd,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACnC,CAAC,CAAC,CAAA;AANS,QAAA,MAAM,UAMf;AAEG,MAAM,OAAO,GAAG,CAAO,CAAc,EAAE,EAAO,EAAE,EAAE;IACvD,MAAM,CAAC,GAAG,IAAI,GAAG,EAAU,CAAA;IAE3B,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE;QAClB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACd,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAEhB,IAAI,CAAC,CAAC,EAAE;YACN,CAAC,GAAG,EAAE,CAAA;YACN,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;SACZ;QAED,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACV;IAED,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAhBY,QAAA,OAAO,WAgBnB;AAEM,MAAM,OAAO,GAAG,CAAO,CAAc,EAAE,EAAO,EAAE,EAAE;IACvD,MAAM,CAAC,GAAG,IAAI,GAAG,EAAQ,CAAA;IAEzB,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE;QAClB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;KACf;IAED,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AARY,QAAA,OAAO,WAQnB;AAEM,MAAM,MAAM,GAAG,CAAI,CAAS,EAAE,EAAO,EAAE,EAAE;IAC9C,MAAM,MAAM,GAAQ,EAAE,CAAA;IACtB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;IAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KACpE;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AATY,QAAA,MAAM,UASlB;AAEM,MAAM,SAAS,GAAG,CAAI,CAAS,EAAE,CAAU,EAAE,EAAE;IACpD,MAAM,MAAM,GAAG,EAAE,CAAA;IAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAA;KACjB;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AARY,QAAA,SAAS,aAQrB;AAEM,MAAM,KAAK,GAAG,CAAI,WAAmB,EAAE,EAAO,EAAE,EAAE;IACvD,MAAM,MAAM,GAAU,EAAE,CAAA;IACxB,MAAM,OAAO,GAAQ,EAAE,CAAA;IAEvB,KAAK,MAAM,IAAI,IAAI,EAAE,EAAE;QACrB,IAAI,OAAO,CAAC,MAAM,GAAG,WAAW,EAAE;YAChC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SACnB;aAAM;YACL,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;SAC/B;KACF;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KACrB;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAjBY,QAAA,KAAK,SAiBjB;AAEM,MAAM,MAAM,GAAG,CAAI,CAAS,EAAE,EAAO,EAAE,EAAE;IAC9C,MAAM,MAAM,GAAU,IAAA,iBAAS,EAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;IAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KAC1B;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AARY,QAAA,MAAM,UAQlB;AAEM,MAAM,IAAI,GAAG,CAAC,CAAyB,EAAE,EAAE;IAChD,IAAI,MAAM,GAAG,KAAK,CAAA;IAElB,OAAO,CAAC,GAAG,IAAS,EAAE,EAAE;QACtB,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,GAAG,IAAI,CAAA;YACb,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;SACX;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AATY,QAAA,IAAI,QAShB;AAEM,MAAM,KAAK,GAAG,CAAI,CAAS,EAAE,CAAoB,EAAE,EAAE;IAC1D,MAAM,EAAE,GAAQ,EAAE,CAAA;IAClB,MAAM,EAAE,GAAG,IAAA,4BAAQ,EAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAE9D,OAAO,CAAC,CAAI,EAAE,EAAE;QACd,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACV,EAAE,EAAE,CAAA;IACN,CAAC,CAAA;AACH,CAAC,CAAA;AARY,QAAA,KAAK,SAQjB;AAEM,MAAM,QAAQ,GAAG,CAAI,CAAyB,EAAE,CAAS,EAAE,CAAI,EAAE,EAAE;IACxE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,EAAK,CAAA;IAE9B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACR,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AACV,CAAC,CAAA;AALY,QAAA,QAAQ,YAKpB;AAEM,MAAM,SAAS,GAAG,CAAI,CAAsB,EAAE,CAAS,EAAE,CAAI,EAAE,EAAE;IACtE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAEpB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACT,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AACV,CAAC,CAAA;AALY,QAAA,SAAS,aAKrB;AAEM,MAAM,WAAW,GAAG,CAAO,CAAiB,EAAE,CAAI,EAAE,CAAI,EAAE,EAAE;IACjE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,EAAK,CAAA;IAElC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACR,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACb,CAAC,CAAA;AALY,QAAA,WAAW,eAKvB;AAEM,MAAM,YAAY,GAAG,CAAO,CAAc,EAAE,CAAI,EAAE,CAAI,EAAE,EAAE;IAC/D,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAExB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACT,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACb,CAAC,CAAA;AALY,QAAA,YAAY,gBAKxB;AAEM,MAAM,QAAQ,GAAG,CAAI,CAAS,EAAE,CAAoB,EAAE,EAAE,CAC7D,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAD1B,QAAA,QAAQ,YACkB;AAUhC,MAAM,SAAS,GAAG,KAAK,EAAE,GAAW,EAAE,OAAkB,EAAE,EAAE,EAAE;IACnE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QACjB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;KAClB;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,kBAAkB,CAAA;IAE3C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,IAAmB,CAAC,CAAA;IACjD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IAE7B,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAXY,QAAA,SAAS,aAWrB;AAEM,MAAM,QAAQ,GAAG,KAAK,EAAK,GAAW,EAAE,IAAO,EAAE,OAAkB,EAAE,EAAE,EAAE;IAC9E,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QAChB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;KACrB;IAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;QACjB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;KAClB;IAED,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAA;IACjD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAEhC,OAAO,IAAA,iBAAS,EAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AAC7B,CAAC,CAAA;AAbY,QAAA,QAAQ,YAapB;AAEM,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,OAAa,EAAE,EAAE;IACvD,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAA;IAE3B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAE5B,OAAO,IAAA,iBAAS,EAAC,GAAG,EAAE,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC,CAAA;AAC/C,CAAC,CAAA;AANY,QAAA,UAAU,cAMtB;AAED,uBAAuB;AAEhB,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,GAAW,EAAE,EAAE,CACzD,aAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAM,CAAC,OAAO,CAAC,WAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AADnD,QAAA,WAAW,eACwC;AAEzD,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE,CACzC,WAAI,CAAC,MAAM,CAAC,aAAM,CAAC,SAAS,CAAC,aAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;AADnD,QAAA,WAAW,eACwC"}
@@ -18,6 +18,8 @@ export declare const pick: <T extends Record<string, any>>(ks: string[], x: T) =
18
18
  export declare function range(a: number, b: number, step?: number): Generator<number, void, unknown>;
19
19
  export declare const mapKeys: <T extends Record<string, any>>(f: (v: string) => string, x: T) => T;
20
20
  export declare const mapVals: <T extends Record<string, any>>(f: (v: any) => any, x: T) => T;
21
+ export declare const mergeLeft: <T extends Record<string, any>>(a: T, b: T) => T;
22
+ export declare const mergeRight: <T extends Record<string, any>>(a: T, b: T) => T;
21
23
  export declare const between: (low: number, high: number, n: number) => boolean;
22
24
  export declare const randomId: () => string;
23
25
  export declare const stripProtocol: (url: string) => string;
@@ -27,11 +29,12 @@ export declare const append: <T>(x: T, xs: (Nil | T)[]) => (Nil | T)[];
27
29
  export declare const union: <T>(a: T[], b: T[]) => T[];
28
30
  export declare const intersection: <T>(a: T[], b: T[]) => T[];
29
31
  export declare const difference: <T>(a: T[], b: T[]) => T[];
30
- export declare const remove: <T>(a: T, b: T[]) => T[];
32
+ export declare const remove: <T>(a: T, xs: T[]) => T[];
31
33
  export declare const without: <T>(a: T[], b: T[]) => T[];
32
34
  export declare const toggle: <T>(x: T, xs: T[]) => (Nil | T)[];
33
35
  export declare const clamp: ([min, max]: [number, number], n: number) => number;
34
36
  export declare const tryCatch: <T>(f: () => void | T | Promise<void | T>, onError?: ((e: Error) => void) | undefined) => Promise<void | T>;
37
+ export declare const equals: (a: any, b: any) => boolean;
35
38
  export declare const nth: (i: number) => <T>(xs: T[], ...args: unknown[]) => T;
36
39
  export declare const nthEq: (i: number, v: any) => (xs: any[], ...args: unknown[]) => boolean;
37
40
  export declare const eq: <T>(v: T) => (x: T) => boolean;
@@ -65,6 +68,15 @@ export declare const addToKey: <T>(m: Record<string, Set<T>>, k: string, v: T) =
65
68
  export declare const pushToKey: <T>(m: Record<string, T[]>, k: string, v: T) => void;
66
69
  export declare const addToMapKey: <K, T>(m: Map<K, Set<T>>, k: K, v: T) => void;
67
70
  export declare const pushToMapKey: <K, T>(m: Map<K, T[]>, k: K, v: T) => void;
71
+ export declare const switcher: <T>(k: string, m: Record<string, T>) => T;
72
+ type FetchOpts = {
73
+ method?: string;
74
+ headers?: Record<string, string | boolean>;
75
+ body?: string | FormData;
76
+ };
77
+ export declare const fetchJson: (url: string, opts?: FetchOpts) => Promise<any>;
78
+ export declare const postJson: <T>(url: string, data: T, opts?: FetchOpts) => Promise<any>;
79
+ export declare const uploadFile: (url: string, fileObj: File) => Promise<any>;
68
80
  export declare const hexToBech32: (prefix: string, url: string) => `${Lowercase<string>}1${string}`;
69
81
  export declare const bech32ToHex: (b32: string) => string;
70
82
  export type OmitStatics<T, S extends string> = T extends {
@@ -82,3 +94,4 @@ export type OmitAllStatics<T extends {
82
94
  new (...args: A): R;
83
95
  prototype: P;
84
96
  } : never;
97
+ export {};
@@ -50,6 +50,8 @@ export const mapVals = (f, x) => {
50
50
  }
51
51
  return r;
52
52
  };
53
+ export const mergeLeft = (a, b) => ({ ...b, ...a });
54
+ export const mergeRight = (a, b) => ({ ...a, ...b });
53
55
  export const between = (low, high, n) => n > low && n < high;
54
56
  export const randomId = () => Math.random().toString().slice(2);
55
57
  export const stripProtocol = (url) => url.replace(/.*:\/\//, "");
@@ -65,7 +67,7 @@ export const difference = (a, b) => {
65
67
  const s = new Set(b);
66
68
  return a.filter(x => !s.has(x));
67
69
  };
68
- export const remove = (a, b) => b.filter(x => x !== a);
70
+ export const remove = (a, xs) => xs.filter(x => x !== a);
69
71
  export const without = (a, b) => b.filter(x => !a.includes(x));
70
72
  export const toggle = (x, xs) => xs.includes(x) ? remove(x, xs) : append(x, xs);
71
73
  export const clamp = ([min, max], n) => Math.min(max, Math.max(min, n));
@@ -78,6 +80,35 @@ export const tryCatch = async (f, onError) => {
78
80
  }
79
81
  return undefined;
80
82
  };
83
+ export const equals = (a, b) => {
84
+ if (a === b)
85
+ return true;
86
+ if (Array.isArray(a)) {
87
+ if (!Array.isArray(b) || a.length !== b.length) {
88
+ return false;
89
+ }
90
+ for (let i = 0; i < a.length; i++) {
91
+ if (!equals(a[i], b[i])) {
92
+ return false;
93
+ }
94
+ }
95
+ return true;
96
+ }
97
+ if (typeof a === 'object') {
98
+ const aKeys = Object.keys(a);
99
+ const bKeys = Object.keys(b);
100
+ if (typeof b !== 'object' || aKeys.length !== bKeys.length) {
101
+ return false;
102
+ }
103
+ for (const k of aKeys) {
104
+ if (!equals(a[k], b[k])) {
105
+ return false;
106
+ }
107
+ }
108
+ return true;
109
+ }
110
+ return false;
111
+ };
81
112
  // Curried utils
82
113
  export const nth = (i) => (xs, ...args) => xs[i];
83
114
  export const nthEq = (i, v) => (xs, ...args) => xs[i] === v;
@@ -232,6 +263,32 @@ export const pushToMapKey = (m, k, v) => {
232
263
  a.push(v);
233
264
  m.set(k, a);
234
265
  };
266
+ export const switcher = (k, m) => m[k] === undefined ? m.default : m[k];
267
+ export const fetchJson = async (url, opts = {}) => {
268
+ if (!opts.headers) {
269
+ opts.headers = {};
270
+ }
271
+ opts.headers["Accept"] = "application/json";
272
+ const res = await fetch(url, opts);
273
+ const json = await res.json();
274
+ return json;
275
+ };
276
+ export const postJson = async (url, data, opts = {}) => {
277
+ if (!opts.method) {
278
+ opts.method = "POST";
279
+ }
280
+ if (!opts.headers) {
281
+ opts.headers = {};
282
+ }
283
+ opts.headers["Content-Type"] = "application/json";
284
+ opts.body = JSON.stringify(data);
285
+ return fetchJson(url, opts);
286
+ };
287
+ export const uploadFile = (url, fileObj) => {
288
+ const body = new FormData();
289
+ body.append("file", fileObj);
290
+ return fetchJson(url, { method: "POST", body });
291
+ };
235
292
  // Random obscure stuff
236
293
  export const hexToBech32 = (prefix, url) => bech32.encode(prefix, bech32.toWords(utf8.decode(url)), false);
237
294
  export const bech32ToHex = (b32) => utf8.encode(bech32.fromWords(bech32.decode(b32, false).words));
@@ -1 +1 @@
1
- {"version":3,"file":"Tools.mjs","sourceRoot":"","sources":["../../src/Tools.ts"],"names":[],"mappings":"OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB;OACnC,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,aAAa;AAMxC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAE9D,oBAAoB;AAEpB,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;AAEtD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAI,EAAO,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAE9D,MAAM,CAAC,MAAM,IAAI,GAAG,CAAI,EAAO,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAEzE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,CAAI,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,CAAC,CAAA;AAE1D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,CAAI,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;AAE9D,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;AAEpD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;AAEpD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,EAAY,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAE3E,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,EAAY,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAE3E,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,EAAY,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;AAElE,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,EAAY,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAA;AAExD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAI,CAAS,EAAE,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAE1D,MAAM,CAAC,MAAM,IAAI,GAAG,CAAI,CAAS,EAAE,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAE7D,MAAM,CAAC,MAAM,IAAI,GAAG,CAAgC,EAAY,EAAE,CAAI,EAAE,EAAE;IACxE,MAAM,CAAC,GAAM,EAAC,GAAG,CAAC,EAAC,CAAA;IAEnB,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE;QAClB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;KACZ;IAED,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,CAAgC,EAAY,EAAE,CAAI,EAAE,EAAE;IACxE,MAAM,CAAC,GAAM,EAAC,GAAG,CAAC,EAAC,CAAA;IAEnB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAC9B,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YACnB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;SACZ;KACF;IAED,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAED,MAAM,SAAS,CAAC,CAAC,KAAK,CAAC,CAAS,EAAE,CAAS,EAAE,IAAI,GAAG,CAAC;IACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;QAChC,MAAM,CAAC,CAAA;KACR;AACH,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAgC,CAAwB,EAAE,CAAI,EAAE,EAAE;IACvF,MAAM,CAAC,GAAwB,EAAE,CAAA;IAEjC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACtC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;KACZ;IAED,OAAO,CAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAgC,CAAkB,EAAE,CAAI,EAAE,EAAE;IACjF,MAAM,CAAC,GAAwB,EAAE,CAAA;IAEjC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACtC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;KACZ;IAED,OAAO,CAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;AAEpF,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAEvE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;AAExE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;AAElF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,GAAG,EAAiB,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAE3E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,CAAI,EAAE,EAAe,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAEnE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAI,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;AAE9D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAI,CAAM,EAAE,CAAM,EAAE,EAAE;IAChD,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;IAEpB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AAChC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAI,CAAM,EAAE,CAAM,EAAE,EAAE;IAC9C,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;IAEpB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AACjC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,CAAI,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;AAEjE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAI,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AAE3E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,CAAI,EAAE,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAE1F,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAmB,EAAE,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;AAEjG,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAK,CAAqC,EAAE,OAA4B,EAAqB,EAAE;IAC1H,IAAI;QACF,OAAO,MAAM,CAAC,EAAE,CAAA;KACjB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,CAAU,CAAC,CAAA;KACtB;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,gBAAgB;AAEhB,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAI,EAAO,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAE3E,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,EAAS,EAAE,GAAG,IAAe,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AAE1F,MAAM,CAAC,MAAM,EAAE,GAAG,CAAI,CAAI,EAAE,EAAE,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;AAEhD,MAAM,CAAC,MAAM,EAAE,GAAG,CAAI,CAAI,EAAE,EAAE,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;AAEhD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAI,CAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAEpE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAyB,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,CAAC,EAAE,CAAC,CAAM,CAAC,EAAE,CAAC,EAAC,CAAqB,CAAA;AAEhH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAChC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;AAE5F,cAAc;AAEd,MAAM,CAAC,MAAM,OAAO,GAAG,CAAI,CAAS,EAAE,EAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAE/E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,EAAO,EAAK,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;AAElF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAI,EAAe,EAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAE3G,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;AAElE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAE7D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAI,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAE7E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAkB,EAAE,EAAE,CAAC,UAAU,CAAC,CAAW,CAAC,CAAA;AAE3E,MAAM,CAAC,MAAM,SAAS,GAAG,CAAI,KAAgD,EAAE,EAAE;IAC/E,MAAM,CAAC,GAAsB,EAAE,CAAA;IAE/B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,EAAE;QAC1B,IAAI,CAAC,IAAI,CAAC,EAAE;YACV,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;SACT;KACF;IAED,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAI,EAAS,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAE7D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAI,CAAoB,EAAE,EAAO,EAAE,EAAE;IAC5D,MAAM,CAAC,GAAQ,EAAE,CAAA;IACjB,MAAM,CAAC,GAAQ,EAAE,CAAA;IAEjB,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE;QAClB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YACR,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SACV;aAAM;YACL,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SACV;KACF;IAED,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,CAAI,EAAO,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;AAE3D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,CAAgB,EAAE,EAAO,EAAE,EAAE;IACrD,MAAM,CAAC,GAAG,IAAI,GAAG,EAAO,CAAA;IACxB,MAAM,CAAC,GAAG,EAAE,CAAA;IAEZ,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE;QAClB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAEd,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACZ,SAAQ;SACT;QAED,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACR,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACV;IAED,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,CAAI,EAAO,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;AAElD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,CAAgB,EAAE,EAAO,EAAE,EAAE,CACrD,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE;IAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACd,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAEd,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACnC,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,OAAO,GAAG,CAAO,CAAc,EAAE,EAAO,EAAE,EAAE;IACvD,MAAM,CAAC,GAAG,IAAI,GAAG,EAAU,CAAA;IAE3B,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE;QAClB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACd,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAEhB,IAAI,CAAC,CAAC,EAAE;YACN,CAAC,GAAG,EAAE,CAAA;YACN,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;SACZ;QAED,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACV;IAED,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAO,CAAc,EAAE,EAAO,EAAE,EAAE;IACvD,MAAM,CAAC,GAAG,IAAI,GAAG,EAAQ,CAAA;IAEzB,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE;QAClB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;KACf;IAED,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,CAAS,EAAE,EAAO,EAAE,EAAE;IAC9C,MAAM,MAAM,GAAQ,EAAE,CAAA;IACtB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;IAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KACpE;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAI,CAAS,EAAE,CAAU,EAAE,EAAE;IACpD,MAAM,MAAM,GAAG,EAAE,CAAA;IAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAA;KACjB;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,CAAI,WAAmB,EAAE,EAAO,EAAE,EAAE;IACvD,MAAM,MAAM,GAAU,EAAE,CAAA;IACxB,MAAM,OAAO,GAAQ,EAAE,CAAA;IAEvB,KAAK,MAAM,IAAI,IAAI,EAAE,EAAE;QACrB,IAAI,OAAO,CAAC,MAAM,GAAG,WAAW,EAAE;YAChC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;SACnB;aAAM;YACL,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;SAC/B;KACF;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KACrB;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,CAAS,EAAE,EAAO,EAAE,EAAE;IAC9C,MAAM,MAAM,GAAU,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;IAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KAC1B;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,CAAyB,EAAE,EAAE;IAChD,IAAI,MAAM,GAAG,KAAK,CAAA;IAElB,OAAO,CAAC,GAAG,IAAS,EAAE,EAAE;QACtB,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,GAAG,IAAI,CAAA;YACb,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;SACX;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,CAAI,CAAS,EAAE,CAAoB,EAAE,EAAE;IAC1D,MAAM,EAAE,GAAQ,EAAE,CAAA;IAClB,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAE9D,OAAO,CAAC,CAAI,EAAE,EAAE;QACd,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACV,EAAE,EAAE,CAAA;IACN,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,CAAyB,EAAE,CAAS,EAAE,CAAI,EAAE,EAAE;IACxE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,EAAK,CAAA;IAE9B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACR,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AACV,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAI,CAAsB,EAAE,CAAS,EAAE,CAAI,EAAE,EAAE;IACtE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAEpB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACT,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AACV,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAO,CAAiB,EAAE,CAAI,EAAE,CAAI,EAAE,EAAE;IACjE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,EAAK,CAAA;IAElC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACR,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAO,CAAc,EAAE,CAAI,EAAE,CAAI,EAAE,EAAE;IAC/D,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAExB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACT,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACb,CAAC,CAAA;AAED,uBAAuB;AAEvB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,GAAW,EAAE,EAAE,CACzD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AAEhE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE,CACzC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"Tools.mjs","sourceRoot":"","sources":["../../src/Tools.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,6 @@ __exportStar(require("./Deferred.cjs"), exports);
22
22
  __exportStar(require("./Emitter.cjs"), exports);
23
23
  __exportStar(require("./Fluent.cjs"), exports);
24
24
  __exportStar(require("./LRUCache.cjs"), exports);
25
- __exportStar(require("./Store.cjs"), exports);
26
25
  __exportStar(require("./Tools.cjs"), exports);
27
26
  __exportStar(require("./Worker.cjs"), exports);
28
27
  var normalize_url_1 = require("./normalize-url/index.cjs");
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,iDAA0B;AAC1B,gDAAyB;AACzB,+CAAwB;AACxB,iDAA0B;AAC1B,8CAAuB;AACvB,8CAAuB;AACvB,+CAAwB;AACxB,2DAAuD;AAA/C,8HAAA,OAAO,OAAgB"}
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,iDAA0B;AAC1B,gDAAyB;AACzB,+CAAwB;AACxB,iDAA0B;AAC1B,8CAAuB;AACvB,+CAAwB;AACxB,2DAAuD;AAA/C,8HAAA,OAAO,OAAgB"}
@@ -2,7 +2,6 @@ export * from './Deferred';
2
2
  export * from './Emitter';
3
3
  export * from './Fluent';
4
4
  export * from './LRUCache';
5
- export * from './Store';
6
5
  export * from './Tools';
7
6
  export * from './Worker';
8
7
  export { default as normalizeUrl } from './normalize-url';
@@ -2,7 +2,6 @@ export * from "./Deferred.mjs";
2
2
  export * from "./Emitter.mjs";
3
3
  export * from "./Fluent.mjs";
4
4
  export * from "./LRUCache.mjs";
5
- export * from "./Store.mjs";
6
5
  export * from "./Tools.mjs";
7
6
  export * from "./Worker.mjs";
8
7
  export { default as normalizeUrl } from "./normalize-url/index.mjs";
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;OAOO,EAAC,OAAO,IAAI,YAAY,EAAC"}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;OAMO,EAAC,OAAO,IAAI,YAAY,EAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@welshman/lib",
3
- "version": "0.0.11",
3
+ "version": "0.0.13",
4
4
  "author": "hodlbod",
5
5
  "license": "MIT",
6
6
  "description": "A collection of utilities.",
@@ -1,225 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.asReadable = exports.collection = exports.key = exports.derivedCollection = exports.readable = exports.derived = exports.writable = exports.DerivedCollection = exports.Collection = exports.DerivedKey = exports.Key = exports.Derived = exports.Writable = void 0;
4
- const throttle_debounce_1 = require("throttle-debounce");
5
- const Tools_1 = require("./Tools.cjs");
6
- class Writable {
7
- constructor(defaultValue, t) {
8
- this.subs = [];
9
- this.notify = () => {
10
- for (const sub of this.subs) {
11
- sub(this.value);
12
- }
13
- };
14
- this.throttle = (t) => {
15
- return new Derived(this, Tools_1.identity, t);
16
- };
17
- this.value = defaultValue;
18
- if (t) {
19
- this.notify = (0, throttle_debounce_1.throttle)(t, this.notify);
20
- }
21
- }
22
- get() {
23
- return this.value;
24
- }
25
- set(newValue) {
26
- this.value = newValue;
27
- this.notify();
28
- }
29
- update(f) {
30
- this.set(f(this.value));
31
- }
32
- subscribe(f) {
33
- this.subs.push(f);
34
- f(this.value);
35
- return () => {
36
- this.subs.splice(this.subs.findIndex(x => x === f), 1);
37
- };
38
- }
39
- derived(f) {
40
- return new Derived(this, f);
41
- }
42
- }
43
- exports.Writable = Writable;
44
- class Derived {
45
- constructor(stores, getValue, t = 0) {
46
- this.callerSubs = [];
47
- this.mySubs = [];
48
- this.notify = () => {
49
- this.latestValue = undefined;
50
- this.callerSubs.forEach(f => f(this.get()));
51
- };
52
- this.get = () => {
53
- // Recalculate if we're not subscribed, because we won't get notified when deps change
54
- if (this.latestValue === undefined || this.mySubs.length === 0) {
55
- this.latestValue = this.getValue(this.getInput());
56
- }
57
- return this.latestValue;
58
- };
59
- this.throttle = (t) => {
60
- return new Derived(this, Tools_1.identity, t);
61
- };
62
- this.stores = stores;
63
- this.getValue = getValue;
64
- if (t) {
65
- this.notify = (0, throttle_debounce_1.throttle)(t, this.notify);
66
- }
67
- }
68
- getInput() {
69
- if (Array.isArray(this.stores)) {
70
- return this.stores.map(s => s.get());
71
- }
72
- else {
73
- return this.stores.get();
74
- }
75
- }
76
- subscribe(f) {
77
- if (this.callerSubs.length === 0) {
78
- for (const s of (0, Tools_1.ensurePlural)(this.stores)) {
79
- this.mySubs.push(s.subscribe(this.notify));
80
- }
81
- }
82
- this.callerSubs.push(f);
83
- f(this.get());
84
- return () => {
85
- this.callerSubs.splice(this.callerSubs.findIndex(x => x === f), 1);
86
- if (this.callerSubs.length === 0) {
87
- for (const unsub of this.mySubs.splice(0)) {
88
- unsub();
89
- }
90
- }
91
- };
92
- }
93
- derived(f) {
94
- return new Derived(this, f);
95
- }
96
- }
97
- exports.Derived = Derived;
98
- class Key {
99
- constructor(base, pk, key) {
100
- this.get = () => this.base.get().get(this.key);
101
- this.subscribe = (f) => this.store.subscribe(f);
102
- this.derived = (f) => this.store.derived(f);
103
- this.throttle = (t) => this.store.throttle(t);
104
- this.exists = () => this.base.get().has(this.key);
105
- this.update = (f) => this.base.update((m) => {
106
- if (!this.key) {
107
- throw new Error(`Cannot set key: "${this.key}"`);
108
- }
109
- // Make sure the pk always get set on the record
110
- const { pk, key } = this;
111
- const oldValue = { ...m.get(key), [pk]: key };
112
- const newValue = { ...f(oldValue), [pk]: key };
113
- m.set(this.key, newValue);
114
- return m;
115
- });
116
- this.set = (v) => this.update(() => v);
117
- this.merge = (d) => this.update(v => ({ ...v, ...d }));
118
- this.remove = () => this.base.update(m => {
119
- m.delete(this.key);
120
- return m;
121
- });
122
- this.pop = () => {
123
- const v = this.get();
124
- this.remove();
125
- return v;
126
- };
127
- if (!(base.get() instanceof Map)) {
128
- throw new Error("`key` can only be used on map collections");
129
- }
130
- this.pk = pk;
131
- this.key = key;
132
- this.base = base;
133
- this.store = base.derived(m => m.get(key));
134
- }
135
- }
136
- exports.Key = Key;
137
- class DerivedKey {
138
- constructor(base, pk, key) {
139
- this.get = () => this.base.get().get(this.key);
140
- this.subscribe = (f) => this.store.subscribe(f);
141
- this.derived = (f) => this.store.derived(f);
142
- this.throttle = (t) => this.store.throttle(t);
143
- this.exists = () => this.base.get().has(this.key);
144
- if (!(base.get() instanceof Map)) {
145
- throw new Error("`key` can only be used on map collections");
146
- }
147
- this.pk = pk;
148
- this.key = key;
149
- this.base = base;
150
- this.store = base.derived(m => m.get(key));
151
- }
152
- }
153
- exports.DerivedKey = DerivedKey;
154
- class Collection {
155
- constructor(pk, t) {
156
- this.get = () => this.listStore.get();
157
- this.getMap = () => this.mapStore.get();
158
- this.subscribe = (f) => this.listStore.subscribe(f);
159
- this.derived = (f) => this.listStore.derived(f);
160
- this.throttle = (t) => this.listStore.throttle(t);
161
- this.key = (k) => new Key(this.mapStore, this.pk, k);
162
- this.set = (xs) => {
163
- const m = new Map();
164
- for (const x of xs) {
165
- if (!x) {
166
- console.error("Empty value passed to collection store");
167
- }
168
- else if (!x[this.pk]) {
169
- console.error(`Value with empty ${this.pk} passed to collection store`, x);
170
- }
171
- else {
172
- m.set(x[this.pk], x);
173
- }
174
- }
175
- this.mapStore.set(m);
176
- };
177
- this.update = (f) => this.set(f(this.get()));
178
- this.updateAsync = async (f) => this.set(await f(this.get()));
179
- this.reject = (f) => this.update((xs) => xs.filter(x => !f(x)));
180
- this.filter = (f) => this.update((xs) => xs.filter(f));
181
- this.map = (f) => this.update((xs) => xs.map(f));
182
- this.pk = pk;
183
- this.mapStore = (0, exports.writable)(new Map());
184
- this.listStore = this.mapStore.derived((m) => Array.from(m.values()));
185
- if (t) {
186
- this.mapStore.notify = (0, throttle_debounce_1.throttle)(t, this.mapStore.notify);
187
- }
188
- }
189
- }
190
- exports.Collection = Collection;
191
- class DerivedCollection {
192
- constructor(pk, stores, getValue, t = 0) {
193
- this.pk = pk;
194
- this.get = () => this.listStore.get();
195
- this.getMap = () => this.mapStore.get();
196
- this.subscribe = (f) => this.listStore.subscribe(f);
197
- this.derived = (f) => this.listStore.derived(f);
198
- this.throttle = (t) => this.listStore.throttle(t);
199
- this.key = (k) => new DerivedKey(this.mapStore, this.pk, k);
200
- this.listStore = new Derived(stores, getValue, t);
201
- this.mapStore = new Derived(this.listStore, xs => new Map(xs.map((x) => [x[pk], x])));
202
- }
203
- }
204
- exports.DerivedCollection = DerivedCollection;
205
- const writable = (v) => new Writable(v);
206
- exports.writable = writable;
207
- const derived = (stores, getValue) => new Derived(stores, getValue);
208
- exports.derived = derived;
209
- const readable = (v) => (0, exports.derived)(new Writable(v), Tools_1.identity);
210
- exports.readable = readable;
211
- const derivedCollection = (pk, stores, getValue) => new DerivedCollection(pk, stores, getValue);
212
- exports.derivedCollection = derivedCollection;
213
- const key = (base, pk, key) => new Key(base, pk, key);
214
- exports.key = key;
215
- const collection = (pk) => new Collection(pk);
216
- exports.collection = collection;
217
- const asReadable = (store) => {
218
- return {
219
- ...store,
220
- derived: (f) => new Derived(store, f),
221
- throttle: (t) => new Derived(store, Tools_1.identity, t),
222
- };
223
- };
224
- exports.asReadable = asReadable;
225
- //# sourceMappingURL=Store.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Store.cjs","sourceRoot":"","sources":["../../src/Store.ts"],"names":[],"mappings":"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"}
@@ -1,120 +0,0 @@
1
- export type Invalidator<T> = (value?: T) => void;
2
- export type Subscriber<T> = (value: T) => void;
3
- type Derivable = IDerivable<any> | IDerivable<any>[];
4
- type Unsubscriber = () => void;
5
- type R = Record<string, any>;
6
- type M<T> = Map<string, T>;
7
- export interface ISubscribable<T> {
8
- subscribe(this: void, run: Subscriber<T>, invalidate?: Invalidator<T>): Unsubscriber;
9
- }
10
- export interface ISettable<T> {
11
- set: (xs: T) => void;
12
- }
13
- export interface IDerivable<T> extends ISubscribable<T> {
14
- get: () => T;
15
- }
16
- export interface IReadable<T> extends IDerivable<T> {
17
- derived: <U>(f: (v: T) => U) => IReadable<U>;
18
- throttle(t: number): IReadable<T>;
19
- }
20
- export interface IWritable<T> extends IReadable<T> {
21
- set: (xs: T) => void;
22
- }
23
- export declare class Writable<T> implements IWritable<T> {
24
- value: T;
25
- subs: Subscriber<T>[];
26
- constructor(defaultValue: T, t?: number);
27
- notify: () => void;
28
- get(): T;
29
- set(newValue: T): void;
30
- update(f: (v: T) => T): void;
31
- subscribe(f: Subscriber<T>): () => void;
32
- derived<U>(f: (v: T) => U): Derived<U>;
33
- throttle: (t: number) => Derived<T>;
34
- }
35
- export declare class Derived<T> implements IReadable<T> {
36
- callerSubs: Subscriber<T>[];
37
- mySubs: Unsubscriber[];
38
- stores: Derivable;
39
- getValue: (values: any) => T;
40
- latestValue: T | undefined;
41
- constructor(stores: Derivable, getValue: (values: any) => T, t?: number);
42
- notify: () => void;
43
- getInput(): any;
44
- get: () => T;
45
- subscribe(f: Subscriber<T>): () => void;
46
- derived<U>(f: (v: T) => U): IReadable<U>;
47
- throttle: (t: number) => IReadable<T>;
48
- }
49
- export declare class Key<T extends R> implements IReadable<T> {
50
- readonly pk: string;
51
- readonly key: string;
52
- base: Writable<M<T>>;
53
- store: IReadable<T>;
54
- constructor(base: Writable<M<T>>, pk: string, key: string);
55
- get: () => T;
56
- subscribe: (f: Subscriber<T>) => Unsubscriber;
57
- derived: <U>(f: (v: T) => U) => IReadable<U>;
58
- throttle: (t: number) => IReadable<T>;
59
- exists: () => boolean;
60
- update: (f: (v: T) => T) => void;
61
- set: (v: T) => void;
62
- merge: (d: Partial<T>) => void;
63
- remove: () => void;
64
- pop: () => T;
65
- }
66
- export declare class DerivedKey<T extends R> implements IReadable<T> {
67
- readonly pk: string;
68
- readonly key: string;
69
- base: IReadable<M<T>>;
70
- store: IReadable<T>;
71
- constructor(base: IReadable<M<T>>, pk: string, key: string);
72
- get: () => T;
73
- subscribe: (f: Subscriber<T>) => Unsubscriber;
74
- derived: <U>(f: (v: T) => U) => IReadable<U>;
75
- throttle: (t: number) => IReadable<T>;
76
- exists: () => boolean;
77
- }
78
- export declare class Collection<T extends R> implements IReadable<T[]> {
79
- readonly pk: string;
80
- readonly mapStore: Writable<M<T>>;
81
- readonly listStore: IReadable<T[]>;
82
- constructor(pk: string, t?: number);
83
- get: () => T[];
84
- getMap: () => M<T>;
85
- subscribe: (f: Subscriber<T[]>) => Unsubscriber;
86
- derived: <U>(f: (v: T[]) => U) => IReadable<U>;
87
- throttle: (t: number) => IReadable<T[]>;
88
- key: (k: string) => Key<T>;
89
- set: (xs: T[]) => void;
90
- update: (f: (v: T[]) => T[]) => void;
91
- updateAsync: (f: (v: T[]) => Promise<T[]>) => Promise<void>;
92
- reject: (f: (v: T) => boolean) => void;
93
- filter: (f: (v: T) => boolean) => void;
94
- map: (f: (v: T) => T) => void;
95
- }
96
- export declare class DerivedCollection<T extends R> implements IReadable<T[]> {
97
- readonly pk: string;
98
- readonly listStore: Derived<T[]>;
99
- readonly mapStore: IReadable<M<T>>;
100
- constructor(pk: string, stores: Derivable, getValue: (values: any) => T[], t?: number);
101
- get: () => T[];
102
- getMap: () => M<T>;
103
- subscribe: (f: Subscriber<T[]>) => () => void;
104
- derived: <U>(f: (v: T[]) => U) => IReadable<U>;
105
- throttle: (t: number) => IReadable<T[]>;
106
- key: (k: string) => DerivedKey<T>;
107
- }
108
- export declare const writable: <T>(v: T) => Writable<T>;
109
- export declare const derived: <T>(stores: Derivable, getValue: (values: any) => T) => Derived<T>;
110
- export declare const readable: <T>(v: T) => IReadable<T>;
111
- export declare const derivedCollection: <T extends R>(pk: string, stores: Derivable, getValue: (values: any) => T[]) => DerivedCollection<T>;
112
- export declare const key: <T extends R>(base: Writable<M<T>>, pk: string, key: string) => Key<T>;
113
- export declare const collection: <T extends R>(pk: string) => Collection<T>;
114
- export declare const asReadable: <T>(store: IDerivable<T>) => {
115
- derived: <U>(f: (v: T) => U) => Derived<U>;
116
- throttle: (t: number) => Derived<T>;
117
- get: () => T;
118
- subscribe(this: void, run: Subscriber<T>, invalidate?: Invalidator<T> | undefined): Unsubscriber;
119
- };
120
- export {};
@@ -1,209 +0,0 @@
1
- import { throttle } from "throttle-debounce";
2
- import { ensurePlural, identity } from "./Tools.mjs";
3
- export class Writable {
4
- constructor(defaultValue, t) {
5
- this.subs = [];
6
- this.notify = () => {
7
- for (const sub of this.subs) {
8
- sub(this.value);
9
- }
10
- };
11
- this.throttle = (t) => {
12
- return new Derived(this, identity, t);
13
- };
14
- this.value = defaultValue;
15
- if (t) {
16
- this.notify = throttle(t, this.notify);
17
- }
18
- }
19
- get() {
20
- return this.value;
21
- }
22
- set(newValue) {
23
- this.value = newValue;
24
- this.notify();
25
- }
26
- update(f) {
27
- this.set(f(this.value));
28
- }
29
- subscribe(f) {
30
- this.subs.push(f);
31
- f(this.value);
32
- return () => {
33
- this.subs.splice(this.subs.findIndex(x => x === f), 1);
34
- };
35
- }
36
- derived(f) {
37
- return new Derived(this, f);
38
- }
39
- }
40
- export class Derived {
41
- constructor(stores, getValue, t = 0) {
42
- this.callerSubs = [];
43
- this.mySubs = [];
44
- this.notify = () => {
45
- this.latestValue = undefined;
46
- this.callerSubs.forEach(f => f(this.get()));
47
- };
48
- this.get = () => {
49
- // Recalculate if we're not subscribed, because we won't get notified when deps change
50
- if (this.latestValue === undefined || this.mySubs.length === 0) {
51
- this.latestValue = this.getValue(this.getInput());
52
- }
53
- return this.latestValue;
54
- };
55
- this.throttle = (t) => {
56
- return new Derived(this, identity, t);
57
- };
58
- this.stores = stores;
59
- this.getValue = getValue;
60
- if (t) {
61
- this.notify = throttle(t, this.notify);
62
- }
63
- }
64
- getInput() {
65
- if (Array.isArray(this.stores)) {
66
- return this.stores.map(s => s.get());
67
- }
68
- else {
69
- return this.stores.get();
70
- }
71
- }
72
- subscribe(f) {
73
- if (this.callerSubs.length === 0) {
74
- for (const s of ensurePlural(this.stores)) {
75
- this.mySubs.push(s.subscribe(this.notify));
76
- }
77
- }
78
- this.callerSubs.push(f);
79
- f(this.get());
80
- return () => {
81
- this.callerSubs.splice(this.callerSubs.findIndex(x => x === f), 1);
82
- if (this.callerSubs.length === 0) {
83
- for (const unsub of this.mySubs.splice(0)) {
84
- unsub();
85
- }
86
- }
87
- };
88
- }
89
- derived(f) {
90
- return new Derived(this, f);
91
- }
92
- }
93
- export class Key {
94
- constructor(base, pk, key) {
95
- this.get = () => this.base.get().get(this.key);
96
- this.subscribe = (f) => this.store.subscribe(f);
97
- this.derived = (f) => this.store.derived(f);
98
- this.throttle = (t) => this.store.throttle(t);
99
- this.exists = () => this.base.get().has(this.key);
100
- this.update = (f) => this.base.update((m) => {
101
- if (!this.key) {
102
- throw new Error(`Cannot set key: "${this.key}"`);
103
- }
104
- // Make sure the pk always get set on the record
105
- const { pk, key } = this;
106
- const oldValue = { ...m.get(key), [pk]: key };
107
- const newValue = { ...f(oldValue), [pk]: key };
108
- m.set(this.key, newValue);
109
- return m;
110
- });
111
- this.set = (v) => this.update(() => v);
112
- this.merge = (d) => this.update(v => ({ ...v, ...d }));
113
- this.remove = () => this.base.update(m => {
114
- m.delete(this.key);
115
- return m;
116
- });
117
- this.pop = () => {
118
- const v = this.get();
119
- this.remove();
120
- return v;
121
- };
122
- if (!(base.get() instanceof Map)) {
123
- throw new Error("`key` can only be used on map collections");
124
- }
125
- this.pk = pk;
126
- this.key = key;
127
- this.base = base;
128
- this.store = base.derived(m => m.get(key));
129
- }
130
- }
131
- export class DerivedKey {
132
- constructor(base, pk, key) {
133
- this.get = () => this.base.get().get(this.key);
134
- this.subscribe = (f) => this.store.subscribe(f);
135
- this.derived = (f) => this.store.derived(f);
136
- this.throttle = (t) => this.store.throttle(t);
137
- this.exists = () => this.base.get().has(this.key);
138
- if (!(base.get() instanceof Map)) {
139
- throw new Error("`key` can only be used on map collections");
140
- }
141
- this.pk = pk;
142
- this.key = key;
143
- this.base = base;
144
- this.store = base.derived(m => m.get(key));
145
- }
146
- }
147
- export class Collection {
148
- constructor(pk, t) {
149
- this.get = () => this.listStore.get();
150
- this.getMap = () => this.mapStore.get();
151
- this.subscribe = (f) => this.listStore.subscribe(f);
152
- this.derived = (f) => this.listStore.derived(f);
153
- this.throttle = (t) => this.listStore.throttle(t);
154
- this.key = (k) => new Key(this.mapStore, this.pk, k);
155
- this.set = (xs) => {
156
- const m = new Map();
157
- for (const x of xs) {
158
- if (!x) {
159
- console.error("Empty value passed to collection store");
160
- }
161
- else if (!x[this.pk]) {
162
- console.error(`Value with empty ${this.pk} passed to collection store`, x);
163
- }
164
- else {
165
- m.set(x[this.pk], x);
166
- }
167
- }
168
- this.mapStore.set(m);
169
- };
170
- this.update = (f) => this.set(f(this.get()));
171
- this.updateAsync = async (f) => this.set(await f(this.get()));
172
- this.reject = (f) => this.update((xs) => xs.filter(x => !f(x)));
173
- this.filter = (f) => this.update((xs) => xs.filter(f));
174
- this.map = (f) => this.update((xs) => xs.map(f));
175
- this.pk = pk;
176
- this.mapStore = writable(new Map());
177
- this.listStore = this.mapStore.derived((m) => Array.from(m.values()));
178
- if (t) {
179
- this.mapStore.notify = throttle(t, this.mapStore.notify);
180
- }
181
- }
182
- }
183
- export class DerivedCollection {
184
- constructor(pk, stores, getValue, t = 0) {
185
- this.pk = pk;
186
- this.get = () => this.listStore.get();
187
- this.getMap = () => this.mapStore.get();
188
- this.subscribe = (f) => this.listStore.subscribe(f);
189
- this.derived = (f) => this.listStore.derived(f);
190
- this.throttle = (t) => this.listStore.throttle(t);
191
- this.key = (k) => new DerivedKey(this.mapStore, this.pk, k);
192
- this.listStore = new Derived(stores, getValue, t);
193
- this.mapStore = new Derived(this.listStore, xs => new Map(xs.map((x) => [x[pk], x])));
194
- }
195
- }
196
- export const writable = (v) => new Writable(v);
197
- export const derived = (stores, getValue) => new Derived(stores, getValue);
198
- export const readable = (v) => derived(new Writable(v), identity);
199
- export const derivedCollection = (pk, stores, getValue) => new DerivedCollection(pk, stores, getValue);
200
- export const key = (base, pk, key) => new Key(base, pk, key);
201
- export const collection = (pk) => new Collection(pk);
202
- export const asReadable = (store) => {
203
- return {
204
- ...store,
205
- derived: (f) => new Derived(store, f),
206
- throttle: (t) => new Derived(store, identity, t),
207
- };
208
- };
209
- //# sourceMappingURL=Store.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Store.mjs","sourceRoot":"","sources":["../../src/Store.ts"],"names":[],"mappings":"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"}