- Split out core coroutine functions to reduce bundle sizes
- Make @babel/runtime a peer dep
- Make all functions individually importable
- Update NPM license info
- NodeJS idles more when not busy
- Enable yielding functions to return a promise
- Split out async wrapped functions and add webpack sideEffects
- Tune timeout parameters
- Animation balancing
- Change looping order for conditions where multiple idle callbacks overlap
- Remove default timeout for idles as it tends to cause animation glitches
- Adjust timing
- Provide simpler default sort comparison
- Reduce timeout overlaps
- Optimise sort algorithm
- Tune default sequence yields
- Fix minification bugs
- Additional package size reduction
- Reduce package size of build
- Merge PR1/2
- Fix NodeJS version
- Fix issue with stringifying empty strings (#10)
- Polyfill performance.now() (#9)
- Fix issue with parsing JSON including whitespace (#7)
- Update dependencies
- Update dependencies for audit fix
- Use setImmediate for NodeJS as it has better performance
- Another change, for remote trials
- Tweak the amount of delay NodeJS allows
- Fix some Node issues
- Fix a test issue
- Added NodeJS support
- sortAsync/sort return the array for chaining
- Uint8Array fixes for JSON
- Removed support for array replacer in stringify
- Added tests using new NodeJS runner
- several bug fixes
- Joined promises are chainable
- Make additional promises only cancel on termination
- Fix typings
- Fix reduceAsync
- Add a join for multi-chaining terminated promises from a singleton
- Improve typings for singleton and terminatable promises
-
Add a singleton() function wrapper for an easy way to have a cancellable version of a coroutine. Coroutines wrapped in a singleton are run as an async function returning a Promise, but if the previous one hasn't completed it immediately returns with a default value.
-
Improve documentation and add useInternalEngine to typings
- Add useInternalEngine(true) call to enable the polyfilled version in all circumstances
- Enable the override of standard yielding function for asyncs
- Change loop time calculator back to api
- Remove the
debugger
- oops
- Update docs
- Added functionality for keyBy, uniqueBy, indexOf, lastIndexOf, groupBy, includes
- Made filter/every/some/forEach handle objects and arrays (per lodash)
- enabled falsey values in the pipeline to make composition easier
- Improved performance tracking in idle
- Added pipe/tap/branch/call/repeat to the API for functional pipelines
- Fix some JSON issues (note JSON parse seen NOT working with optional whitespace still)
- Fix a bug with reduce/reduceAsync
- try to get typings working again
- Move to transform runtime to remove regenerator issues
- Ensure requestAnimationFrame starts on next frame
- Buffer animation callbacks to reduce calls to requestAnimationFrame
- Fix a bug in starting update coroutines with parameters
- Handle the case where the Promise yielded is immediately resolved without going through the restart process
-
Added the ability to yield a Promise and have the coroutine restart when it finishes
-
Deprecated runAsync (due to above)
- Adjust polyfill for a variety of Safari use cases
- Fix polyfill on Safari
- Can start
run
orupdate
with the results of calling a generator to enable parameter passing - Main website linked
- Improved polyfill
- Tested react native
- Provide own polyfill for requestIdleCallback
- remove direct reference to requestIdleCallback polyfill for React Native support. This can now be added manually on websites requiring it
- first attempts at RN support
- fix documentation typo
- fixed build issue
- Update documentation
- Fix an issue with encodeURIComponent version of lz-string
- Add compress and decompression from lz-string in the gaps
- setTimeout idle time background processing
- can yield a number to request that number of m/s in the current frame (request does not carry over to the next frame)
- added async examples to getting started
- Too early for last update, reverting
- Use setTimeout for run timeouts to ensure we get some background processing
- Fix a bug where terminate on the run promise was lost due to double async wrapping
- Massively improve performance by replacing Yastjson's stack based bracket analyser with a couple of ints
- Improve performance by reducing yields during the tokenise phase to 1 in every 2048 characters
- Rewrite JSON tokenizer and AST for performance (again!)
- Fix a problem with escaped JSON strings not being fully handled by yastjson
- Reintroduce .toJSON() in stringify
- Made sure Async functions return a terminatable promise
- Fixed the CHANGELOG formatting!
- Fix a bug with resolver now just being the actual promise resolve.
- Link article on how it works
- Documentation improvements
- Updated the demo in the README.md to be the async one
- Fixed build issue
- Added Async function wrappers
- Refactored project structure
- Improved demo to show async
- Licence updates
- Documentation typos
- Added JSON functions for serialize/parse
- Updated test app
- Updated documentation
- Added CHANGELOG