- Last updated: 2022-03-11T12:13:49Z
- Generator: thi.ng/monopub
All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
Note: Unlisted patch versions only involve non-code or otherwise excluded changes and/or version bumps of transitive dependencies.
7.2.0 (2021-11-21)
- update defWorker() arg types (e07521e)
- add
WorkerSource
type alias - add support for zero-arg fns returning a worker instance
- helps v. much with Vite's
xxx?worker
imports - see /examples/mandelbrot for usage
- helps v. much with Vite's
- add
7.1.1 (2021-11-19)
- add note about Awaited type sig (1c82afa7e) (efd8647)
7.1.0 (2021-11-17)
- Using workspaces for local tools (bf7a404)
Improving the overall build ergonomics
- introduced a tools workspaces
- imported it in all needed packages/examples
- inclusive project root
- add fromNodeJS/linesFromNodeJS() (d56026d)
- add NodeJS stream adapter bridges
- update readme
- testrunner to binary (4ebbbb2) this commit reverts (partly) changes made in: ef346d7a8753590dc9094108a3d861a8dbd5dd2c overall purpose is better testament ergonomics: instead of having to pass NODE_OPTIONS with every invocation having a binary to handle this for us.
7.0.9 (2021-11-10)
- update all countdown loops (a5f374b)
7.0.1 (2021-10-13)
- update imports in all tests/pkgs (effd591)
- update imports in all pkgs (5fa2b6f)
- add .js suffix for all relative imports
7.0.0 (2021-10-12)
- major update of ALL pkgs (export maps, ESM only) (0d1d6ea)
- BREAKING CHANGE: discontinue CommonJS & UMD versions
- only ESM modules will be published from now on
- CJS obsolete due to ESM support in recent versions of node:
- i.e. launch NodeJS via:
node --experimental-specifier-resolution=node --experimental-repl-await
- in the node REPL use
await import(...)
instead ofrequire()
- UMD obsolete due to widespread browser support for ESM Also:
- normalize/restructure/reorg all package.json files
- cleanup all build scripts, remove obsolete
- switch from mocha to @thi.ng/testament for all tests
- dedupe removeAllIDs() impls (57e57cc)
- major pkg restructure (831c113)
- flatten /src folder for easier imports in userland
- move logging from api.ts => logger.ts
- rename internal helpers (__nextID, __optsWithID, defWorker, ...)
- update imports
- update deps & imports in various pkgs (e1cf29e)
- largely related to recent updates/restructuring of these packages:
- api
- defmulti
- errors
- logger
- largely related to recent updates/restructuring of these packages:
- update imports (transducers) (7fc60cd)
- update imports (138571a)
- update all tests in all pkgs (8b582bc)
- update all to use @thi.ng/testament
6.0.14 (2021-08-08)
6.0.0 (2021-03-12)
- further simplify ISubscribable & impls (9e290fe)
- BREAKING CHANGE: remove
.subscribe(sub, xform, opts)
signature. Transducer now supplied viaxform
key inopts
(or use.transform()
instead of.subscribe()
)- further simplify
Subscription.subscribe()
/.transform()
- update Subscription ctor args
- make
.subscribe()
child subs partial again - remove temporary & obsolete again
DUMMY
subscriber - add docs
- update tests
- further simplify
- add PubSub.transformTopic() (123e15d)
- BREAKING CHANGE: replace transducer only version of
PubSub.subscribeTopic()
with new.transformTopic()
. Similarly to 22c6f7cb2,.subscribeTopic()
subs also need to provide at least anext
key (for typechecking only)- add .transformTopic() w/ opt error handling support
- TODO multi-transducer overrides for .transformTopic()
- add .transform() error handler opt (#276) (22c6f7c)
- BREAKING CHANGE: update ISubscribable contract, remove transducer
only version of
.subscribe()
, MUST provide dummy sub w/ transducer OR (better) use.transform()
instead (which also more clearly communicates intention...)- another breaking change side effect for
.subscribe()
:next()
handlers MUST be provided now in first arg (child sub), this is NOT because they're mandatory now, but TS won't be able to correctly infer arg types when usingPartial<ISubscriber<T>>
- add
DUMMY
subscriber constant w/ emptynext() {}
- simplify internal
.subscribe()
logic - add
WithErrorHandlerOpts
interface - update
.transform()
&.map()
: add error handling support
- another breaking change side effect for
- update Subscription FSM, add/update tests (ea1d0c1)
- add state check in .subscribe()
- set both parent & child sub to ACTIVE
- add StreamSource error handling (73023b6)
- update stream() opts arg type
- update Stream.subscribe() to use opt error handler to deal w/ errors during execution of stream source function
- add test
- update DONE state & teardown logic (a8a8c44)
- DONE state now only valid during depth-first stage of .done()
- state switches to UNSUBSCRIBED during recursive teardown (unless ERROR)
- update tests
- #281 update Subscription error/teardown logic (a9e4040)
- replace old
Subscription
class w/ what was recentlySub2
(removed) - update/fix done(), subscribe()/unsubscribe() logic
- update related constructs (Stream, StreamSync, MetaStream, etc.)
- update Stream ctor (and factory fns) to support error handler opts arg
- update Timeout error dispatch
- fix typehints
- replace old
- update Sub2, State enum (db0ab34)
- add State.UNSUBSCRIBED
- add missing Sub2.done() handling
- add Sub2.map()
- refactor Sub2 value/phase dispatch logic
- add logging
- add Sub2 WIP impl (de4149b)
- update error handler sig (#281) (015380a)
- add
ErrorHandler
type, update to return boolean - update
ISubscribable
,ITransformable
to only refer toISubscription
interface (rather thanSubscription
class itself) - refactor
Subscription.next()
, add.dispatchXform()
- update various error handlers (add return values)
- update tests
- add
- add sidechainPartitionRAF() (a101626)
- update PubSub (fa87168)
- update PubSub generics
- update .subscribeTopic() opts to use
TransformableOpts
- add ISubscription interface (98edee0)
- replaces obsolete
ISubscribableSubscriber
- replaces obsolete
- add generic type for PubSub topics (08adc5f)
- update PubSub, PubSubOpts w/ new generic for topic types (default: any)
- update ITransformable.transform() (fe0eaa9)
- add new
transform()
override to supply transducer as part of options arg - update/fix opts arg type in other
transform()
versions - add
WithTransform
,WithErrorHandler
interfaces - update
TransformableOpts
,WithErrorHandlerOpts
- add new
- log error to console (594d806)
- update failing tests (ae591a1)
- PubSub dispatch & error handling (cca0f34)
- store last received value (if caching enabled)
- update error handler logic
- fix wrong imports (ae4866a)
- minor update/revert sub ctor args (c651421)
- revert to storing child subs in array (014bf20)
- update types/generics (c982288)
- remove default generics from ISubscription due to inference troubles
- add ITransformable.map()
- fix unsubscribe() arg types in various classes
- update tests (generics only)
5.1.2 (2021-02-22)
- add auto IDs for bisect/debounce() (89b1def)
5.1.0 (2021-01-22)
- add CommonOpts for .map() (6324123)
5.0.10 (2020-12-07)
5.0.5 (2020-09-22)
- add isFirstOrLastInput(), update StreamMerge/Sync (ebab5a0)
5.0.4 (2020-09-13)
- update imports (a35efa8)
5.0.3 (2020-08-28)
- update delete op (TS4.0) (cef8674)
5.0.0 (2020-07-28)
- fix/update StreamSync type inference (c9d983d)
- BREAKING CHANGE: better StreamSync generics handling/inference &
updated StreamSyncOpts
src
opt (input sources) MUST be given as object now (specifying inputs as array not supported anymore, useautoObj()
from transducers package to convert array into auto-labeled object)- update StreamSync inference rules to better determine result type
- simplify .addAll()
- generics now usually don't need to manually be specified anymore (with some exceptions)
- update tests
- update StreamMerge method args (da648af)
- update StreamSync generics & args (0a182b0)
- update forkJoin() & tween() impls (StreamSync) (08ca3e1)
- add opts arg for trigger() (32340f0)
4.6.0 (2020-07-08)
- add Subscription.map() syntax sugar (a00485e)
4.5.0 (2020-07-02)
- add reactive(), update readme (e508faa)
4.4.0 (2020-06-14)
- add debounce() sub & tests (9c53bb4)
- add emitLast metastream option (1073735)
- add error handling for transducer phase (609424e)
- update Subscription.next()
- update transduce()
4.3.1 (2020-05-16)
- initial default val handling in fromObject() (25117e3)
- defaults now applied to initial seed values (if enabled)
- update tests
4.3.0 (2020-05-16)
- extend fromObject() features/opts (975f74c)
- add support for default values, dedupe, equiv predicate
4.2.0 (2020-05-15)
- update fromObject(), add StreamObjOpts, update docs (f3ca3b6)
- add fromObject(), add docs & tests (5e854eb)
4.1.0 (2020-05-14)
- #221, update StreamSync input removal (52ee040)
- add StreamSyncOpts.clean option (disabled by default)
- add support for cleaning result tuple when removing inputs
- update input add/removal ops to use new partitionSync() hooks
- add/update tests
- update opts handling (TS3.9) (ba76da6)
4.0.8 (2020-05-03)
- MetaStream close mode handling (2d9e907)
- never go into DONE state if
closeIn == CloseMode.NEVER
- fix/update unsubscribe() & pass arg
- update detach() to consider
closeOut
mode - add tests
- never go into DONE state if
4.0.7 (2020-04-28)
- subscribe() w/ xform, add test (20ce586)
- fixes
.subscribe(sub, xform)
where childsub
was an actual instance ofSubscription
and the givenxform
transducer was silently ignored in that case... - add test
- fixes
4.0.3 (2020-04-06)
- fix Subscription.subscribe() (2a7f6ad)
- check if opts arg given, but nullish
- fixes PubSub.subscribeTopic(id, xform) version, which would wrongly
infer
xform
as subscriber instead of transducer - add tests
- update readme
4.0.2 (2020-04-05)
- switch to non-const enums (1f6221d)
4.0.0 (2020-03-28)
- update/rename fromView() (f5df4ab)
- BREAKING CHANGE: update/rename fromView(), add fromViewUnsafe()
- fromView() now performs type checking on given path and/or view transform
- existing
fromView()
renamed tofromViewUnsafe()
(this is in line w/ related updates in @thi.ng/atom & @thi.ng/paths pkgs)
3.0.3 (2020-02-25)
- update imports (d529e86)
- fix #201, extract ASidechain (b88fa04)
- extract abstract ASidechain base class
- update SidechainPartition/Toggle classes
3.0.0 (2019-11-30)
- update readme (4ecdbf9)
- BREAKING CHANGE: document new stream/sub config opts in readme
- update args for various fromXXX() stream factories (b466ebc)
- add types for options objects
- update tests
- BREAKING CHANGE: update stream factories to use options object args
- fromAtom
- fromInterval
- fromIterable
- fromView
- fromWorker
- add CommonOpts support for ISubscribable & ITransformable (0a70b90)
- update sidechainPartition/Toggle and timeout (898eb53)
- use options objects for args
- update tests
- re-use
Path
from @thi.ng/api (7e7ef8f)
2.5.5 (2019-09-21)
- update Stream cancel & reset behavior for CloseMode.NEVER (250dfe1)
- don't call cancel() if
closeOut
is CloseMODE.NEVER - only initialize stream once and don't re-init on 1st re-sub after all other subs have left
- don't call cancel() if
- add Subscription.done() error handling (c911006)
- add/update fork/joinBuffer generics, optimize (8f0c55c)
- add forkBuffer/joinBuffer HOFs, add docs (a35c8e8)
- add back pressure opts to StreamSyncOpts & ForkJoinOpts (e236987)
- add forkJoin() parallel worker processing (da03722)
- add ITransformable interface, minor updates (da52b98)
- update StreamSync.remove(), refactor ctor (d5fd4b4)
- remove ID from invRealSourceIDs
- update ctor xform init, avoid one level of comp() if opts.xform given
2.5.4 (2019-08-21)
- initial work on #74, #81, #91, #92, add stream opts (e770469)
- add CommonOpts, TransformableOpts, SubscriptionOpts
- update all ctors & factory fns to accepts options arg
- fix #81 (only keep last received value if
cache
option enabled) - check from
closeOut
mode and possibly keep stream alive after all current subscribers have left (#74) - update tests (but need to add various new ones)
- add optsWithID() helper to inject ID option if needed
- add missing timeout() re-export (7062332)
- add/update optsWithID() handling (f0d7f87)
2.5.3 (2019-08-16)
- preserve const enums (765a9ac)
2.5.0 (2019-07-07)
2.4.2 (2019-04-24)
- replace DEBUG w/ LOGGER impl, add setLogger() (8587989)
2.4.0 (2019-04-11)
- add tweenNumber() (cb6d46a) (cherry picked from commit 17d0fdb2ed1130d88be8d9daa36ae7cb5e166864)
- add tweenNumber() (17d0fdb)
2.3.8 (2019-04-11)
- add missing Subscription.deref() return type hint (0ae1243)
2.3.2 (2019-04-02)
2.3.0 (2019-03-21)
- update clock control for tween(), update docs (65e9c44)
2.2.2 (2019-03-10)
- re-use type aliases from @thi.ng/api (0d2fdff)
2.2.1 (2019-03-05)
- add __owner info for MetaStream, update ISubscriber (b5801e9)
2.2.0 (2019-03-03)
- add tween() stream operator (c74a2d0)
- add CloseMode enum, update StreamMerge, StreamSync & opts (f0d53b4)
- update MetaStream unsub handling (b2e6e6f)
2.1.0 (2019-03-01)
- add metaStream() (bc36005)
2.0.0 (2019-01-21)
- update package scripts, outputs, imports in remaining packages (f912a84)
- BREAKING CHANGE: enable multi-outputs (ES6 modules, CJS, UMD)
- build scripts now first build ES6 modules in package root, then call
scripts/bundle-module
to build minified CJS & UMD bundles in/lib
- all imports MUST be updated to only refer to package level (not individual files anymore). tree shaking in user land will get rid of all unused imported symbols
- build scripts now first build ES6 modules in package root, then call
- disable __State reverse enum lookups (b238a3a)
- avoid Subscription ctor to workaround parceljs build issue (d1e275b)
- use
subscription()
factory instead ofnew Subscription
- solves issue w/ parcel's scope hoisting build flag
- use
1.14.0 (2018-11-24)
- add support multiple workers in Tunnel & TunnelOpts (67a5b10)
- add StreamSync.getSources() / getSourceForID() (ef0fe42)
- add worker tunnel() sub (4750e79)
- make maxWorkers optional (46c2882)
- move tunnel to /subs, add docs (f24e69e)
1.13.6 (2018-10-17)
- update Infinity consts in various packages (296e1e0)
1.13.2 (2018-09-24)
State
=> const enum (7ac83c6)- export
__State
for reverse lookups
- export
1.13.0 (2018-09-22)
- remove Stream.NEXT_ID, replace w/ Subscription field (0dcc1b8)
1.12.0 (2018-09-08)
- add merge-only mode for StreamSync, update docs (162aa2d)
- add
mergeOnly
option to StreamSyncOpts
- add
1.11.6 (2018-08-27)
- Fix unbound this in method call expression (34a97b4)
1.11.3 (2018-08-24)
- use SEMAPHORE from @thi.ng/api, not transducers (f3d4646)
- update StreamSync transducer init (cd5c6ff)
- fix regression caused by breaking changes in @thi.ng/transducers
1.11.1 (2018-08-06)
- add generics for stream() (378772f)
1.11.0 (2018-08-03)
- add stream() & subscription() factories, add/update docs (e97aac0)
- update StreamSync to use
reset: false
by default, update docs (55499cc)
1.10.3 (2018-08-01)
- cleanup imports (0f7e82a)
1.10.0 (2018-07-20)
- add reset option for timeout() (cd751fb)
- add tests
- update docs
- optimize dispatch if only single child (a59c5c9)
- replace Subscription.subs with array (was Set)
- update Subscription.dispatch()
- update call sites
- add tests
1.9.7 (2018-07-19)
- Add a timeout() subscription (aa55973)
1.9.6 (2018-07-16)
- emit first value immediately in fromInterval() (9be2018)
- previously first value was only emitted after
delay
ms
- previously first value was only emitted after
1.9.3 (2018-07-09)
- Fix potential reference error in transduce() (7f2d5dd)
1.9.0 (2018-07-04)
- add support for event listener opts in
fromEvent()
(d5ac264)
1.8.1 (2018-07-03)
- unsubscribe on error in transduce() (8c7d937)
1.8.0 (2018-06-21)
- option to avoid auto-closing
fromInterval()
, add docs (cc5b736)
1.7.0 (2018-05-20)
- re-implement bisect() using PubSub, update tests (846aaf9)
- update resolve(), update subscribe() overrides (23fdd39)
- replace resolve() opt
id
arg w/ResolveOpts
object - if
fail
option is given use as Promise failure handler instead of callingthis.error()
and thereby stopping stream - add new override for actual child
Subscription
s, fixes generics - update
subscribe()
for Subscription, Stream, PubSub
- replace resolve() opt
- minor update PubSub topic fn return type (cbc600e)
1.6.6 (2018-05-10)
- update deps & imports in all packages due to @thi.ng/api split (bc45636)
1.6.2 (2018-04-26)
- update ISubscribable (add IDeref parent) (76f00c3)
1.6.1 (2018-04-25)
- minor fix StreamSync.addAll() (cc286e1)
1.6.0 (2018-04-24)
- add owner meta data & IDs for merge/sync inputs (33f55b3)
- support (re)named StreamSync inputs (b392817)
- update StreamSyncOpts
- allow objects as
src
option, use object keys as input IDs - update
add()
, add optional ID arg - add various maps to handle real vs. alias IDs
1.5.0 (2018-04-20)
- allow arbitrary PubSub topic vals, add @thi.ng/associative dep (ba10907)
- use EquivMap for storing topics
- add/update tests
- add docs
- add PubSub, add ISubscribableSubscriber, remove cache() (27a098d)
1.4.0 (2018-04-16)
- add StreamMerge/Sync.removeID() & removeAllIDs() (8bcc287)
- update remove() & removeAll() to return boolean
1.3.0 (2018-04-15)
- add Subscription.transform() (2164ddf)
1.2.4 (2018-04-05)
- correct wrong isString() import (48310a6)
- use @thi.ng/checks/is-string, not from node "util" package
1.2.0 (2018-03-21)
- update error handling, add @thi.ng/api dep (1ce7054)
1.1.0 (2018-03-21)
- add IDeref impl for Subscription (907d599)
- add merge()/sync() ctor wrappers (1fee7d5)
- add transduce(), update re-exports (eec56de)
- Subscription stores last value and passes to new subs (6b87bca)
- fix #6 update StreamMerge to support transduced input streams (8026409)
- any Subscription values (incl. Streams) sent by inputs are added to the set of inputs themselves and not passed downstream
- add test case
- update Sidechain*.next(), add unsubscribe() (d18a115)
- don't throw errors in next() if state >= DONE
- unsub sidechain when unsubscribing SidechainPartition/Toggle itself
- add fromView(), update fromAtom() docs, update re-exports (41bb385)
- update Subscription.unsubscribe() (01a751e)
- switch to DONE state if unsubscribing itself from parent
- unsubscribe itself from parent after last child sub unsubscribed (effect propagates upstream until no more parent)
- bisect() add downstream impl checks, add tests (2ad2f48)
- simplify unsubscribe() logic (26f15b2)
- add Subscription.cleanup()
- update unsub for Stream, Subscription, StreamMerge/Sync
- no more calling of done() as part of unsub process (strictly unidirectional teardown from child -> parent)
- fix input unsubs for StreamMerge/Sync
- update & StreamMerge/SyncOpts, minor fixes StreamSync (ebe222c)
- only allow arrays for sources
- pre-add/remove source IDs in StreamSync.addAll/removeAll()
- update mapVals() xform to use copies
- simplify Subscription, update all impls (47b6a92)
- use Set for storing child subs
- update Stream, StreamMerge, StreamSync
- only clean sources in StreamMerge/Sync.unsubscribe()
1.0.22 (2018-03-19)
- add StreamSync (791a993)
- simplify StreamMerge source handling (ff802a4)
- minor cleanup/perf StreamSync (f7029ef)
- add/update Stream ctor arities (c736433)
1.0.0 (2018-02-18)
- fix #8, support infinite StreamMerge's, update ctor (4942e2e)
- BREAKING CHANGE: StreamMerge ctor now accepts an options object
only (
StreamMergeOpts
).
- don't throw in unsubscribe() if no parent (ca1caae)
0.9.0 (2018-02-01)
- add Cache subscription class (ea638be)
0.8.1 (2018-01-31)
- subscription unhandled error handling (54cd526)
- track if any child subs have received error, if not treat as unhandled and unsub current sub from parent (if any)
0.8.0 (2018-01-31)
- add changed predicate for fromAtom(), add tests (d58cf70)
0.7.4 (2018-01-29)
- fatal recursion w/ error handling (382aa05)
- use Subscription.dispatch() only for next() calls, wrapped in try..catch
- update Subscription.error() & done() to call children WITHOUT try...catch
- revert obsolete test timeout adjustment
0.7.2 (2018-01-29)
- fix #1 update fromPromise(), add test (822b297)
- add catch() outside stream source to catch errors before 1st sub is active
0.7.0 (2018-01-29)
- add atom dep, add fromAtom() & docs (ca3994a)
- add fromPromises(), add docs (55ba0e1)
- add trace() error handler (2247f72)
0.6.0 (2018-01-28)
- add new package, remove CSP dep from rstream (e37f6a1)
0.4.0 (2018-01-25)
- add sidechainToggle(), minor update sidechainPartition() (f6ca3f3)
0.3.0 (2018-01-25)
- add fromRAF() fallback for node, add docs (4e5a2ee)
- don't throw resolve() error, only warning msg (eef65b9)
- subscription generics if transducer is used (592a242)
0.2.1 (2018-01-24)
- initial re-import as monorepo, update readme files, cleanup imports (04ff6e9)