mirror of
https://github.com/zhigang1992/mobx-utils.git
synced 2026-01-12 22:48:56 +08:00
13 KiB
13 KiB
6.0.4
- ObservableGroupMap.ts: remove console.log #289
- Make observable promise's values safer type wise #295 Closes Typing IRejectedPromise and IPendingPromise to hold an unknown value Users of fromPromise may get new compile errors for invalid code. See PR for details.
6.0.3
- Fixed #214 createViewModel doesn't work correctly with setters for computed values. (#286)
- Use computedFn name if explicitly set in options #277.
6.0.2
- skipped
6.0.1
- Fixed build issue causing decorators in the final build version not to be picked up correctly. Fixes #279
6.0.0
- [BREAKING] Dropped previously deprecated
asyncAction. Usemobx.flowinstead. - [BREAKING] Dropped previously deprecated
actionAsync. Usemobx.flow+mobx.flowResultinstead. - [BREAKING] Dropped previously deprecated
whenAsync. Usemobx.wheninstead. - [BREAKING] Dropped previously deprecated
whenWithTimeout. Usemobx.wheninstead. - [BREAKING] Added support for MobX 6.0.0. Minimim required MobX version is 6.0.0.
5.6.1
5.6.0
- #245 Add ObservableGroupMap.
- #250 Fix #249: lazyObservable: pending.set not wrapped in allowStateChanges.
- #251 Fix fromStream initialValue not typed correctly.
5.5.7
- Another fix for invalid
actionAsynccontext through #246 by xaviergonz
5.5.6
- Another fix for invalid
actionAsynccontext when promises resolve at the same time in different actionAsync calls through #244 by xaviergonz
5.5.5
- Fixed tree-shaking mobx-utils, see #238 by IgorBabkin
5.5.4
- Fix invalid
actionAsynccontext when promises resolve at the same time in different actionAsync calls, by xaviergonz through #240
5.5.3
- Support all
IComputedOptionsincreateTransformer, by @samdroid-apps through #224 - Make sure that transformers don't memorize when used outside a reactive context. Fixes #116 through #228 by @upsuper
5.5.2
- Fix for
actionAsyncwhen awaiting promises that resolve immediately.
5.5.1
- Fix for
actionAsyncgiving errors when it didn't await a task inside. tasknow supports plain values as well.
5.5.0
Note: the minimum required MobX version for this release has been bumped to "mobx": "^4.13.1 || ^5.13.1"
- Added
actionAsync(not to be confused withasyncAction) as an alternative to flows, see #217 by xaviergonz - Fixed a typing issue for the pending handler of
fromPromise, see #208 by Ricardo-Marques computedFnnow supports the standard options accepted by classiccomputed, see #215 by hearnden- Fixed #205, something with to unobserved properties and
createViewModel. See #216 by wrench7
5.4.1
- Fixed
cannot read property enumerable of undefinederror, #191 through #198 by @dr0p - Improved typings of
createViewModeltrough #195 by @jordansexton
5.4.0
Introduced computedFn, to support using arbitrary functions as computed! Implements #184 through #190
5.3.0
- Observable getters defined on prototype are now included in the view model. Fixes #100 through #188 by wrench7
5.2.0
createViewModelnow has an additional fieldchangedValueson the returned viewmodel, that returns a map with all the pending changes. See #172 by @ItamarShDev. Fixes #171 and #173fromPromise().case: if theonFulfilledhandler is omitted,casewill now return the resolved value, rather thanundefined. See #167 by @JefHellemanscreateViewModelwill now respect the enumerability of properties. See #169 by dr0p
5.1.0
fromPromisenow accepts a second argument, a previous obsevable promise, that can be used to temporarily show old values until the new promise has resolved. See #160 by @ItamarShDevcreateTransformercan now also memoize on function arguments, see #159 by @hc-12
5.0.4
- Fixed #158,
deepObservenot being published
5.0.3
- Introduced
deepObserveutility, through #154
5.0.2
- Improved typings of
toStream, by @pelotom through #147 - Improved typings of
fromStream,IStreamListeneris now an explicit interface. Fixes #143
5.0.1
- Add
sideEffects: falsefield in package.json to enable maximal tree shaking for webpack. - Fixed #134, prevent primitive key id collisions in createTransformer
- Fixed typing issue where the
.valuefield is not available without having a type assertion of the state first
5.0.0
- Added MobX 5 compatibility. The package is also compatible with MobX 4.3.1+.
createViewModelnow also copies computed properties to the view Model. Implements [#100].(https://github.com/mobxjs/mobx-utils/issues/100). Implemented through #126 by @RafalFilipek.
4.0.1
- passing a
fromPromisebased promise tofromPromiseno longer throws an exception. Fixes #119 - added viewModel
resetPropertyto typescript typings, fixes #117 through #118 by @navidjh - Added
moveItem(array, fromIndex, toIndex)utility, as replacement for the droppedObservableArray.movein MobX 4. Trough #121 by @jeffijoe - Fixed incorrect peer dependency, #115 by @xaviergonz
4.0.0
Updated mobx-utils to use MobX 4. No futher changes
3.2.2
toStreamnow accepts a second argument,fireImmediately=false, which, whentrue, immediately pushes the current value to the stream. Fixes #82
3.2.1
- Fixed issue where
whenAsyncwas not exposed correctly. - Added
timeoutparameter towhenAsync
3.2.0
- Switched to rollup for bundling, bundle non-minified and include a es module based build. See #81 by @mijay
3.1.1
- Introduced
whenAsync, which is like normalwhen, except that thiswhenwill return a promise that resolves when the expression becomes truthy. See #66 and #68, by @daedalus28
3.0.0
Revamped fromPromise:
- It is now possible to directly pass a
(resolve, reject) => {}function tofromPromise, instead of a promise object - BREAKING
fromPromiseno longer creates a wrapping object, but rather extends the given promise, #45 - BREAKING Fixed #54, the resolved value of a promise is no longer deeply converted to an observable
- BREAKING Dropped
fromPromise().reason - BREAKING Improved typings of
fromPromise. For example, thevalueproperty is now only available if.state === "resolved"(#41) - BREAKING Dropped optional
initialvalueparam fromfromPromise. usefromPromise.fulfilled(value)instead to create a promise in some ready state - Introduced
fromPromise.reject(reason)andfromPromise.resolve(value?)to create a promise based observable in a certain state, see #39 - Fixed #56, observable promises attributes
stateandvalueare now explicit observables
Introduced asyncAction
See the docs for details, but the gist of it:
import {asyncAction} from "mobx-utils"
mobx.configure({ enforceActions: "observed" }) // don't allow state modifications outside actions
class Store {
@observable githubProjects = []
@state = "pending" // "pending" / "done" / "error"
@asyncAction
*fetchProjects() { // <- note the star, this a generator function!
this.githubProjects = []
this.state = "pending"
try {
const projects = yield fetchGithubProjectsSomehow() // yield instead of await
const filteredProjects = somePreprocessing(projects)
// the asynchronous blocks will automatically be wrapped actions
this.state = "done"
this.githubProjects = filteredProjects
} catch (error) {
this.state = "error"
}
}
}
Other
- Fixed #40,
now()now returns current date time if invoked from outside a reactive context
2.0.2
- Fixed #44, lazyObservable not accepting an array as initial value.
- ViewModel methods are now automatically bound, see #59, by @tekacs
- Fixed stream issue regarding disposing already completed streams, see #57, by @rkorohu
- Improved typings of lazy observables, see #38 by @jamiewinder
2.0.1
- Fixed several deprecation messages related to MobX 3 upgrade (see #36 by RainerAtSpirit)
- Fixed #26: Rejected promises not playing nicely with JQuery
- Fixed #25: Refreshing a lazy observable should not accidentally refresh it if it didn't start yet
2.0.0
- Upgraded to MobX 3
1.1.6
- Fixed #34: fromStream threw when being used in strict mode
- Introduced
reset()on lazyObservable, see #28 by @daitr92
1.1.5
- Fixed #32: make sure lazyObservable and fromResources can be initiated from computed values
1.1.4
- Introduced
now(interval?), to get an observable that returns the current time at a specified interval
1.1.3
- Introduced
fromStreamandtoStreamfor interoperability with TC 39 / RxJS observable streams, see Mobx #677
1.1.2
- Introduced
refresh()to lazy observables. By @voxuanthinh, see #20
1.1.1
- Introduced
chunkProcessorby Benjamin Bock, see #19 - Introduced
resetProperty(propName)for ViewModels, by Vojtech Novak, see #17
1.1.0
- observable promises now support a
.case()method to easily switch over different promise states. See #13 by @spion createViewModelnow supports arrays and maps as well, see #12 by @vonovak
1.0.1
- Implemented #4: Expose constants for promise states:
PENDING,REJECTEDandFULFILLED. - Implemented #6: the rejection reason of
fromPromiseis now stored in.valueinstead of.reason(which has been deprecated). - Improved typings of
fromPromise, fixes #8