mobx-utils
Advanced tools
Comparing version 6.0.6 to 6.0.7
@@ -20,3 +20,3 @@ var __assign = (this && this.__assign) || function () { | ||
import { DeepMap } from "./deepMap"; | ||
import { computed, onBecomeUnobserved, _isComputingDerivation, isAction, } from "mobx"; | ||
import { computed, onBecomeUnobserved, _isComputingDerivation, isAction, _getGlobalState, } from "mobx"; | ||
/** | ||
@@ -78,3 +78,3 @@ * computedFn takes a function with an arbitrary amount of arguments, | ||
if (!opts.keepAlive && !_isComputingDerivation()) { | ||
if (!memoWarned) { | ||
if (!memoWarned && _getGlobalState().computedRequiresReaction) { | ||
console.warn("invoking a computedFn from outside an reactive context won't be memoized, unless keepAlive is set"); | ||
@@ -81,0 +81,0 @@ memoWarned = true; |
@@ -6,3 +6,3 @@ export declare type PromiseState = "pending" | "fulfilled" | "rejected"; | ||
declare type CaseHandlers<U, T> = { | ||
pending?: (t?: unknown) => U; | ||
pending?: (t?: T) => U; | ||
fulfilled?: (t: T) => U; | ||
@@ -15,5 +15,5 @@ rejected?: (e: any) => U; | ||
} | ||
export declare type IPendingPromise = { | ||
export declare type IPendingPromise<T> = { | ||
readonly state: "pending"; | ||
readonly value: unknown; | ||
readonly value: T | undefined; | ||
}; | ||
@@ -28,3 +28,3 @@ export declare type IFulfilledPromise<T> = { | ||
}; | ||
export declare type IPromiseBasedObservable<T> = IBasePromiseBasedObservable<T> & (IPendingPromise | IFulfilledPromise<T> | IRejectedPromise); | ||
export declare type IPromiseBasedObservable<T> = IBasePromiseBasedObservable<T> & (IPendingPromise<T> | IFulfilledPromise<T> | IRejectedPromise); | ||
/** | ||
@@ -38,3 +38,2 @@ * `fromPromise` takes a Promise, extends it with 2 observable properties that track | ||
* - `case({fulfilled, rejected, pending})`: maps over the result using the provided handlers, or returns `undefined` if a handler isn't available for the current promise state. | ||
* - `then((value: TValue) => TResult1 | PromiseLike<TResult1>, [(rejectReason: any) => any])`: chains additional handlers to the provided promise. | ||
* | ||
@@ -125,7 +124,7 @@ * The returned object implements `PromiseLike<TValue>`, so you can chain additional `Promise` handlers using `then`. You may also use it with `await` in `async` functions. | ||
* | ||
* @param {IThenable<T>} promise The promise which will be observed | ||
* @param {IThenable<T>} oldPromise? The previously observed promise | ||
* @returns {IPromiseBasedObservable<T>} | ||
* @param origPromise The promise which will be observed | ||
* @param oldPromise The previously observed promise | ||
* @returns origPromise with added properties and methods described above. | ||
*/ | ||
export declare function fromPromise<T>(origPromise: PromiseLike<T>, oldPromise?: PromiseLike<T>): IPromiseBasedObservable<T>; | ||
export declare function fromPromise<T>(origPromise: PromiseLike<T>, oldPromise?: IPromiseBasedObservable<T>): IPromiseBasedObservable<T>; | ||
export declare namespace fromPromise { | ||
@@ -132,0 +131,0 @@ export const reject: <T>(reason: any) => IRejectedPromise & IBasePromiseBasedObservable<T>; |
@@ -24,3 +24,2 @@ import { action, extendObservable } from "mobx"; | ||
* - `case({fulfilled, rejected, pending})`: maps over the result using the provided handlers, or returns `undefined` if a handler isn't available for the current promise state. | ||
* - `then((value: TValue) => TResult1 | PromiseLike<TResult1>, [(rejectReason: any) => any])`: chains additional handlers to the provided promise. | ||
* | ||
@@ -111,5 +110,5 @@ * The returned object implements `PromiseLike<TValue>`, so you can chain additional `Promise` handlers using `then`. You may also use it with `await` in `async` functions. | ||
* | ||
* @param {IThenable<T>} promise The promise which will be observed | ||
* @param {IThenable<T>} oldPromise? The previously observed promise | ||
* @returns {IPromiseBasedObservable<T>} | ||
* @param origPromise The promise which will be observed | ||
* @param oldPromise The previously observed promise | ||
* @returns origPromise with added properties and methods described above. | ||
*/ | ||
@@ -138,4 +137,5 @@ export function fromPromise(origPromise, oldPromise) { | ||
promise.case = caseImpl; | ||
var oldState = oldPromise ? oldPromise.state : undefined; | ||
var oldData = oldState === FULFILLED || oldState === PENDING ? oldPromise.value : undefined; | ||
var oldData = oldPromise && (oldPromise.state === FULFILLED || oldPromise.state === PENDING) | ||
? oldPromise.value | ||
: undefined; | ||
extendObservable(promise, { | ||
@@ -142,0 +142,0 @@ value: oldData, |
{ | ||
"name": "mobx-utils", | ||
"version": "6.0.6", | ||
"version": "6.0.7", | ||
"description": "Utility functions and common patterns for MobX", | ||
@@ -94,2 +94,2 @@ "main": "mobx-utils.umd.js", | ||
} | ||
} | ||
} |
@@ -99,3 +99,2 @@ # MobX-utils | ||
- `case({fulfilled, rejected, pending})`: maps over the result using the provided handlers, or returns `undefined` if a handler isn't available for the current promise state. | ||
- `then((value: TValue) => TResult1 | PromiseLike<TResult1>, [(rejectReason: any) => any])`: chains additional handlers to the provided promise. | ||
@@ -113,5 +112,4 @@ The returned object implements `PromiseLike<TValue>`, so you can chain additional `Promise` handlers using `then`. You may also use it with `await` in `async` functions. | ||
- `origPromise` | ||
- `oldPromise` **IThenable<T>** ? The previously observed promise | ||
- `promise` **IThenable<T>** The promise which will be observed | ||
- `origPromise` The promise which will be observed | ||
- `oldPromise` The previously observed promise | ||
@@ -197,3 +195,3 @@ ### Examples | ||
Returns **IPromiseBasedObservable<T>** | ||
Returns **any** origPromise with added properties and methods described above. | ||
@@ -200,0 +198,0 @@ ## isPromiseBasedObservable |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
324990
54
6500
904