whenmap 0.1.1 → 0.2.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.
package/README.md CHANGED
@@ -7,17 +7,17 @@ initalizes the value.
7
7
 
8
8
  [CER]: https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/whenDefined
9
9
 
10
- ## Use
10
+ ## WhenMap API
11
11
 
12
12
  ```javascript
13
13
  import { WhenMap } from 'whenmap'
14
14
 
15
- let whenmap = new WhenMap()
15
+ let when_db = new WhenMap()
16
16
 
17
- let p_ready = whenmap.when('example_key')
17
+ let p_ready = when_db.when('example_key')
18
18
  p_ready.then(v => console.log('Ready!', {v}))
19
19
 
20
- whenmap.set('example_key', example_init())
20
+ when_db.set('example_key', example_init())
21
21
 
22
22
  async function example_init() {
23
23
  // async initialize process
@@ -25,24 +25,78 @@ async function example_init() {
25
25
  }
26
26
  ```
27
27
 
28
- ## WhenMap API
29
- - `whenmap.when(key)` returns a promise for the key. The promise
28
+ - `when_db.when(key)` returns a promise for the key. The promise
30
29
  may or may not be resolved.
31
30
 
32
- - `whenmap.get(key)` is an alias for `whenmap.when(key)`
31
+ - `when_db.get(key)` is an alias for `when_db.when(key)`
33
32
 
34
- - `whenmap.set(key, value)` resolves the promise for the specified key, returning `this`.
33
+ - `when_db.set(key, value)` resolves the promise for the specified key, returning `this`.
35
34
 
36
- - `whenmap.has(key)` returns
35
+ - `when_db.has(key)` returns
37
36
  `false` for untracked keys,
38
37
  `true` for resolved tracked keys, and
39
38
  `1` for unresolved tracked keys.
40
39
 
41
- - `whenmap.delete(key)` resolves a tracked key as `undefined` before removing it.
40
+ - `when_db.delete(key)` resolves a tracked key as `undefined` before removing it.
42
41
 
43
- - `whenmap.clear()` resolves any outstanding tracked keys as `undefined` before
42
+ - `when_db.clear()` resolves any outstanding tracked keys as `undefined` before
44
43
  clearing all tracked keys.
45
44
 
45
+
46
+ ## WhenAiter API
47
+
48
+ ```javascript
49
+ import { WhenAiter } from 'whenmap'
50
+
51
+
52
+ // For streaming promises as they are settled
53
+ let misc_promises = [ 100, 20, 50 ].map(ms =>
54
+ new Promise(done =>
55
+ setTimeout(done, ms, `delay: ${ms}`) ))
56
+
57
+ for await (let each of WhenAiter.from(misc_promises)) {
58
+ console.log('stream resolved:', detail)
59
+ }
60
+
61
+
62
+ // For streaming events
63
+ let when_stream = new WhenAiter(send => {
64
+ document.body.addEventListener(
65
+ 'some_custom_event',
66
+ evt => send(evt.detail),
67
+ {signal: send.signal})
68
+ })
69
+
70
+ for await (let detail of when_stream) {
71
+ console.log('use aiter event stream:', detail)
72
+ }
73
+ ```
74
+
75
+ - `new WhenMap(init_arg, opt)` returns an async iterable.
76
+ - If `init_arg` is iterable, `send()` is called on each item.
77
+ - other `init_arg(send)` is invoked.
78
+
79
+ - `WhenMap.from(init_arg, opt)` is an alias for `new WhenMap`
80
+
81
+ - `aiter_pipe(opt, recv_self)` returns a connected `[send, recv]` pair
82
+ - `send(value)` adds value to the internal queue, after awaiting it if a promisable.
83
+ - `opt.on_error(err)` is an optional promise `.catch()` handler.
84
+ - `send.stop()` terminates the async iterable stream from within the `init_arg` closure.
85
+ - `send.ready` is a promise to provide overflow backpressure.
86
+ - `opt.max_size` manages the `send.ready` promise
87
+
88
+ - `recv` extends the `recv_self` prototype
89
+ - `recv.size` returns the interal queue size
90
+ - `recv` supports async iterable protocol: `for await (let each of when_stream) {}`
91
+ - `recv.next()`
92
+ - `recv.return()`
93
+ - `recv.throw()`
94
+ - `recv[Symbol.asyncIterator]()`
95
+
96
+ - an AbortSignal instance is aborted when the stream is stopped.
97
+ - assigned into `recv.signal` and `send.signal`
98
+
99
+
46
100
  ## Install
47
101
 
48
102
  ```bash
package/esm/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { WhenMap } from './whenmap.js';
2
+ export { WhenAiter, aiter_pipe } from './whenaiter.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1 @@
1
+ export{WhenMap}from"./whenmap.min.js";export{WhenAiter,aiter_pipe}from"./whenaiter.min.js";
@@ -0,0 +1,74 @@
1
+ class WhenAiter {
2
+ static from(init_arg, opt) {
3
+ return new this(init_arg, opt)}
4
+
5
+ constructor(init_arg, opt) {
6
+ let [send, recv_self] = aiter_pipe(opt, this);
7
+ if (init_arg?.[Symbol.iterator]) {
8
+ _send_all(init_arg, send, recv_self);}
9
+ else init_arg?.(send);
10
+ return recv_self} }
11
+
12
+
13
+
14
+ function aiter_pipe(opt, recv_self) {
15
+ const q=[], max_size = opt?.max_size ?? 5;
16
+ let abrt = new AbortController();
17
+ let p_underflow, p_overflow;
18
+
19
+ // Sender function closure
20
+ function send(v) {
21
+ if (v?.then) {
22
+ return v.then(send, opt?.on_error)}
23
+
24
+ q.push(v);
25
+ p_underflow = void p_underflow?.resolve();}
26
+
27
+ send.signal = abrt.signal;
28
+ send.ready = Promise.resolve(true);
29
+ send.stop = async () => {
30
+ abrt = void abrt?.abort();
31
+ p_underflow = void p_underflow?.resolve();
32
+ return { done: true }};
33
+
34
+
35
+ // Async Iterable Receiver
36
+ recv_self ={
37
+ __proto__: recv_self
38
+ , get size() {return q.length}
39
+ , signal: abrt.signal
40
+
41
+ , [Symbol.asyncIterator]() {return this}
42
+ , return: send.stop, throw: send.stop,
43
+ async next() {
44
+ while (1) {
45
+ if (q.length) {
46
+ return { value: q.shift(), done: false }}
47
+
48
+ if (undefined === abrt) {
49
+ return { done: true }}
50
+ else if (q.length < max_size) {
51
+ p_overflow = void p_overflow?.resolve(true);}
52
+ else if (! p_overflow) {
53
+ send.ready = (p_overflow = Promise.withResolvers()).promise;}
54
+
55
+ await (p_underflow ??= Promise.withResolvers()).promise;} } };
56
+
57
+
58
+ return [send, recv_self]}
59
+
60
+
61
+ async function _send_all(iterable, send, aiter) {
62
+ let l=[];
63
+ for (let v of iterable) {
64
+ v = send(v);
65
+ if (v) {l.push(v);} }
66
+
67
+ // join on all promises
68
+ while (l.length) {await l.pop();}
69
+
70
+ // mark complete
71
+ await aiter.return();}
72
+
73
+ export { WhenAiter, aiter_pipe };
74
+ //# sourceMappingURL=whenaiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whenaiter.js","sources":["../code/whenaiter.jsy"],"sourcesContent":["\nexport class WhenAiter ::\n static from(init_arg, opt) ::\n return new this(init_arg, opt)\n\n constructor(init_arg, opt) ::\n let [send, recv_self] = aiter_pipe(opt, this)\n if init_arg?.[Symbol.iterator] ::\n _send_all(init_arg, send, recv_self)\n else init_arg?.(send)\n return recv_self\n\n\n\nexport function aiter_pipe(opt, recv_self) ::\n const q=[], max_size = opt?.max_size ?? 5\n let abrt = new AbortController()\n let p_underflow, p_overflow\n\n // Sender function closure\n function send(v) ::\n if v?.then ::\n return v.then(send, opt?.on_error)\n\n q.push(v)\n p_underflow = void p_underflow?.resolve()\n\n send.signal = abrt.signal\n send.ready = Promise.resolve(true)\n send.stop = async () => ::\n abrt = void abrt?.abort()\n p_underflow = void p_underflow?.resolve()\n return { done: true }\n\n\n // Async Iterable Receiver\n recv_self = @{}\n __proto__: recv_self\n get size() :: return q.length\n signal: abrt.signal\n\n [Symbol.asyncIterator]() :: return this\n return: send.stop, throw: send.stop,\n async next() ::\n while 1 ::\n if q.length ::\n return { value: q.shift(), done: false }\n\n if undefined === abrt ::\n return { done: true }\n else if q.length < max_size ::\n p_overflow = void p_overflow?.resolve(true)\n else if ! p_overflow ::\n send.ready = (p_overflow = Promise.withResolvers()).promise\n\n await (p_underflow ??= Promise.withResolvers()).promise\n\n\n return [send, recv_self]\n\n\nasync function _send_all(iterable, send, aiter) ::\n let l=[]\n for let v of iterable ::\n v = send(v)\n if v :: l.push(v)\n\n // join on all promises\n while l.length :: await l.pop()\n\n // mark complete\n await aiter.return()\n\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ class e{static from(e,r){return new this(e,r)}constructor(e,t){let[o,n]=r(t,this);return e?.[Symbol.iterator]?async function(e,r,t){let o=[];for(let t of e)t=r(t),t&&o.push(t);for(;o.length;)await o.pop();await t.return()}(e,o,n):e?.(o),n}}function r(e,r){const t=[],o=e?.max_size??5;let n,s,i=new AbortController;function l(r){if(r?.then)return r.then(l,e?.on_error);t.push(r),n=void n?.resolve()}return l.signal=i.signal,l.ready=Promise.resolve(!0),l.stop=async()=>(i=void i?.abort(),n=void n?.resolve(),{done:!0}),r={__proto__:r,get size(){return t.length},signal:i.signal,[Symbol.asyncIterator](){return this},return:l.stop,throw:l.stop,async next(){for(;;){if(t.length)return{value:t.shift(),done:!1};if(void 0===i)return{done:!0};t.length<o?s=void s?.resolve(!0):s||(l.ready=(s=Promise.withResolvers()).promise),await(n??=Promise.withResolvers()).promise}}},[l,r]}export{e as WhenAiter,r as aiter_pipe};
@@ -1 +1 @@
1
- {"version":3,"file":"whenmap.js","sources":["../code/whenmap.jsy"],"sourcesContent":["const _when_fns = new WeakMap()\nconst _as_when_tuples = ([k,v]) => [k, Promise.resolve(v)]\n\nexport class WhenMap extends Map ::\n constructor(entries) ::\n super @ entries &&= Array.from(entries, _as_when_tuples)\n\n has(key) ::\n let p = super.get(key)\n return p ? _when_fns.has(p) ? 1 : true : false\n\n get get() :: return this.when\n when(key) ::\n let p = super.get(key), f\n if ! p ::\n p = new Promise(fn => f=fn)\n _when_fns.set(p, f)\n super.set(key, p)\n this.on_ref?.(key, p)\n return p\n\n set(key, val) ::\n // resolve promise\n _pop_when(this.when(key))?.(val)\n return this\n\n delete(key) ::\n // resolve outstanding promise, if exists\n _pop_when(super.get(key))?.()\n return super.delete(key)\n\n clear() ::\n // resolve all outstanding promises\n for let p of this.values() ::\n _pop_when(p)?.()\n super.clear()\n\nexport default WhenMap\n\n\nfunction _pop_when(p) ::\n let f = _when_fns.get(p)\n _when_fns.delete(p)\n return f\n\n"],"names":[],"mappings":"AAAA,MAAA,SAAA,GAAA,IAAA,OAAA;AACA,MAAA,eAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EAAA,OAAA,CAAA,OAAA,CAAA,CAAA,CAAA;;AAEA,MAAA,OAAA,SAAA,GAAA,CAAA;AACE,EAAA,WAAA,CAAA,OAAA,EAAA;IACE,KAAO,CAAA,OAAA,KAAA,KAAA,CAAA,IAAA,CAAA,OAAA,EAAA,eAAA,CAAA,EAAA;;AAET,EAAA,GAAA,CAAA,GAAA,EAAA;AACE,IAAA,IAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,GAAA;AACA,IAAA,OAAA,CAAA,GAAA,SAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,GAAA,KAAA;;EAEF,IAAY,GAAA,GAAA,CAAA,OAAA,IAAA,CAAA,IAAA;AACZ,EAAA,IAAA,CAAA,GAAA,EAAA;AACE,IAAA,IAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,GAAA,CAAA,EAAA;AACG,IAAA,IAAA,EAAA,CAAA,EAAA;AACD,MAAA,CAAA,GAAA,IAAA,OAAA,CAAA,EAAA,IAAA,CAAA,CAAA,EAAA;AACA,MAAA,SAAA,CAAA,GAAA,CAAA,CAAA,EAAA,CAAA;AACA,MAAA,KAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA;AACA,MAAA,IAAA,CAAA,MAAA,GAAA,GAAA,EAAA,CAAA,EAAA;AACF,IAAA,OAAA,CAAA;;AAEF,EAAA,GAAA,CAAA,GAAA,EAAA,GAAA,EAAA;;AAEE,IAAA,SAAA,CAAA,IAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,GAAA;AACA,IAAA,OAAA,IAAA;;AAEF,EAAA,MAAA,CAAA,GAAA,EAAA;;AAEE,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA;AACA,IAAA,OAAA,KAAA,CAAA,MAAA,CAAA,GAAA,CAAA;;AAEF,EAAA,KAAA,GAAA;;AAEK,IAAA,KAAA,IAAA,CAAA,IAAA,IAAA,CAAA,MAAA,EAAA,EAAA;AACD,MAAA,SAAA,CAAA,CAAA,CAAA,KAAA;AACF,IAAA,KAAA,CAAA,KAAA,GAAA,CAAA;;;AAKJ,SAAA,SAAA,CAAA,CAAA,EAAA;AACE,EAAA,IAAA,CAAA,GAAA,SAAA,CAAA,GAAA,CAAA,CAAA;AACA,EAAA,SAAA,CAAA,MAAA,CAAA,CAAA;AACA,EAAA,OAAA,CAAA;;;;"}
1
+ {"version":3,"file":"whenmap.js","sources":["../code/whenmap.jsy"],"sourcesContent":["const _when_fns = new WeakMap()\nconst _as_when_tuples = ([k,v]) => [k, Promise.resolve(v)]\n\nexport class WhenMap extends Map ::\n constructor(entries) ::\n super @ entries &&= Array.from(entries, _as_when_tuples)\n\n has(key) ::\n let p = super.get(key)\n return p ? _when_fns.has(p) ? 1 : true : false\n\n get get() :: return this.when\n when(key) ::\n let p = super.get(key), f\n if ! p ::\n p = new Promise(fn => f=fn)\n _when_fns.set(p, f)\n super.set(key, p)\n this.on_ref?.(key, p)\n return p\n\n set(key, val) ::\n // resolve promise\n _pop_when(this.when(key))?.(val)\n return this\n\n delete(key) ::\n // resolve outstanding promise, if exists\n _pop_when(super.get(key))?.()\n return super.delete(key)\n\n clear() ::\n // resolve all outstanding promises\n for let p of this.values() ::\n _pop_when(p)?.()\n super.clear()\n\nexport default WhenMap\n\n\nfunction _pop_when(p) ::\n let f = _when_fns.get(p)\n _when_fns.delete(p)\n return f\n\n"],"names":[],"mappings":"AAAA,MAAA,SAAA,GAAA,IAAA,OAAA;AACA,MAAA,eAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,EAAA,OAAA,CAAA,OAAA,CAAA,CAAA,CAAA;;AAEA,MAAA,OAAA,SAAA,GAAA,CAAA;AACE,EAAA,WAAA,CAAA,OAAA,EAAA;IACE,KAAA,CAAO,OAAA,KAAA,KAAA,CAAA,IAAA,CAAA,OAAA,EAAA,eAAA,CAAA,EAAA;;AAET,EAAA,GAAA,CAAA,GAAA,EAAA;AACE,IAAA,IAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,GAAA;AACA,IAAA,OAAA,CAAA,GAAA,SAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,GAAA,KAAA;;EAEF,IAAA,GAAA,GAAA,CAAY,OAAA,IAAA,CAAA,IAAA;AACZ,EAAA,IAAA,CAAA,GAAA,EAAA;AACE,IAAA,IAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA,GAAA,CAAA,EAAA;AACG,IAAA,IAAA,EAAA,CAAA,EAAA;AACD,MAAA,CAAA,GAAA,IAAA,OAAA,CAAA,EAAA,IAAA,CAAA,CAAA,EAAA;AACA,MAAA,SAAA,CAAA,GAAA,CAAA,CAAA,EAAA,CAAA;AACA,MAAA,KAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA;AACA,MAAA,IAAA,CAAA,MAAA,GAAA,GAAA,EAAA,CAAA,EAAA;AACF,IAAA,OAAA,CAAA;;AAEF,EAAA,GAAA,CAAA,GAAA,EAAA,GAAA,EAAA;;AAEE,IAAA,SAAA,CAAA,IAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,GAAA;AACA,IAAA,OAAA,IAAA;;AAEF,EAAA,MAAA,CAAA,GAAA,EAAA;;AAEE,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,CAAA,GAAA,CAAA,CAAA;AACA,IAAA,OAAA,KAAA,CAAA,MAAA,CAAA,GAAA,CAAA;;AAEF,EAAA,KAAA,GAAA;;AAEK,IAAA,KAAA,IAAA,CAAA,IAAA,IAAA,CAAA,MAAA,EAAA,EAAA;AACD,MAAA,SAAA,CAAA,CAAA,CAAA,KAAA;AACF,IAAA,KAAA,CAAA,KAAA,GAAA,CAAA;;;AAKJ,SAAA,SAAA,CAAA,CAAA,EAAA;AACE,EAAA,IAAA,CAAA,GAAA,SAAA,CAAA,GAAA,CAAA,CAAA;AACA,EAAA,SAAA,CAAA,MAAA,CAAA,CAAA;AACA,EAAA,OAAA,CAAA;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "whenmap",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "",
5
5
  "license": "BSD-2-Clause",
6
6
  "author": "Shane Holloway <shane.holloway@ieee.org>",
@@ -17,7 +17,7 @@
17
17
  ],
18
18
  "type": "module",
19
19
  "exports": {
20
- ".": "./esm/whenmap.js",
20
+ ".": "./esm/index.js",
21
21
  "./esm": "./esm"
22
22
  },
23
23
  "imports": {
@@ -29,11 +29,11 @@
29
29
  "devDependencies": {
30
30
  "@rollup/plugin-terser": "^0.4.4",
31
31
  "chai": "^5.2.0",
32
- "rollup": "^4.36.0",
33
- "rollup-plugin-jsy": "^1.9.2"
32
+ "rollup": "^4.44.0",
33
+ "rollup-plugin-jsy": "^1.9.4"
34
34
  },
35
35
  "optionalDependencies": {
36
- "vite": "^6.2.2"
36
+ "vite": "^6.3.5"
37
37
  },
38
38
  "scripts": {
39
39
  "clean": "rm ./esm/* || true",