-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: include a copy of redux types, so its not a required dependency
- Loading branch information
Showing
10 changed files
with
227 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
// Copied from https://github.com/reduxjs/redux/blob/b3165d0cbd0d8f48142284807d764160df26d6fa/src/types/actions.ts, to avoid requiring `redux` as an installed dependency just for this typing. | ||
|
||
// tslint:disable | ||
|
||
/** | ||
* An *action* is a plain object that represents an intention to change the | ||
* state. Actions are the only way to get data into the store. Any data, | ||
* whether from UI events, network callbacks, or other sources such as | ||
* WebSockets needs to eventually be dispatched as actions. | ||
* | ||
* Actions must have a `type` field that indicates the type of action being | ||
* performed. Types can be defined as constants and imported from another | ||
* module. It's better to use strings for `type` than Symbols because strings | ||
* are serializable. | ||
* | ||
* Other than `type`, the structure of an action object is really up to you. | ||
* If you're interested, check out Flux Standard Action for recommendations on | ||
* how actions should be constructed. | ||
* | ||
* @template T the type of the action's `type` tag. | ||
*/ | ||
export interface Action<T = any> { | ||
type: T; | ||
} | ||
|
||
/** | ||
* An *action creator* is, quite simply, a function that creates an action. Do | ||
* not confuse the two terms—again, an action is a payload of information, and | ||
* an action creator is a factory that creates an action. | ||
* | ||
* Calling an action creator only produces an action, but does not dispatch | ||
* it. You need to call the store's `dispatch` function to actually cause the | ||
* mutation. Sometimes we say *bound action creators* to mean functions that | ||
* call an action creator and immediately dispatch its result to a specific | ||
* store instance. | ||
* | ||
* If an action creator needs to read the current state, perform an API call, | ||
* or cause a side effect, like a routing transition, it should return an | ||
* async action instead of an action. | ||
* | ||
* @template A Returned action type. | ||
*/ | ||
export interface ActionCreator<A, P extends any[] = any[]> { | ||
(...args: P): A; | ||
} |
175 changes: 175 additions & 0 deletions
175
projects/rxjs-core/src/lib/devtools/enhancer-options.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,175 @@ | ||
import { Action, ActionCreator } from './actions'; | ||
|
||
// copied from https://github.com/zalmoxisus/redux-devtools-extension/blob/3df4d939b548b8ec891c73dabe2ffdd5dd2a8119/npm-package/index.d.ts, to avoid required `redux-devtools-extension` as an installed dependency just for this typing. | ||
|
||
// tslint:disable | ||
|
||
/** | ||
* Copied from `redux-devtools-extension`, to avoid requiring it as an installed dependency just for this interface. | ||
*/ | ||
export interface EnhancerOptions { | ||
/** | ||
* the instance name to be showed on the monitor page. Default value is `document.title`. | ||
* If not specified and there's no document title, it will consist of `tabId` and `instanceId`. | ||
*/ | ||
name?: string; | ||
/** | ||
* action creators functions to be available in the Dispatcher. | ||
*/ | ||
actionCreators?: ActionCreator<any>[] | { [key: string]: ActionCreator<any> }; | ||
/** | ||
* if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once. | ||
* It is the joint between performance and speed. When set to `0`, all actions will be sent instantly. | ||
* Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value). | ||
* | ||
* @default 500 ms. | ||
*/ | ||
latency?: number; | ||
/** | ||
* (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance. | ||
* | ||
* @default 50 | ||
*/ | ||
maxAge?: number; | ||
/** | ||
* - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode). | ||
* - `false` - will handle also circular references. | ||
* - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions. | ||
* - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys. | ||
* For each of them you can indicate if to include (by setting as `true`). | ||
* For `function` key you can also specify a custom function which handles serialization. | ||
* See [`jsan`](https://github.com/kolodny/jsan) for more details. | ||
*/ | ||
serialize?: | ||
| boolean | ||
| { | ||
date?: boolean; | ||
regex?: boolean; | ||
undefined?: boolean; | ||
error?: boolean; | ||
symbol?: boolean; | ||
map?: boolean; | ||
set?: boolean; | ||
function?: boolean | Function; | ||
}; | ||
/** | ||
* function which takes `action` object and id number as arguments, and should return `action` object back. | ||
*/ | ||
actionSanitizer?: <A extends Action>(action: A, id: number) => A; | ||
/** | ||
* function which takes `state` object and index as arguments, and should return `state` object back. | ||
*/ | ||
stateSanitizer?: <S>(state: S, index: number) => S; | ||
/** | ||
* *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers). | ||
* If `actionsWhitelist` specified, `actionsBlacklist` is ignored. | ||
*/ | ||
actionsBlacklist?: string | string[]; | ||
/** | ||
* *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers). | ||
* If `actionsWhitelist` specified, `actionsBlacklist` is ignored. | ||
*/ | ||
actionsWhitelist?: string | string[]; | ||
/** | ||
* called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor. | ||
* Use it as a more advanced version of `actionsBlacklist`/`actionsWhitelist` parameters. | ||
*/ | ||
predicate?: <S, A extends Action>(state: S, action: A) => boolean; | ||
/** | ||
* if specified as `false`, it will not record the changes till clicking on `Start recording` button. | ||
* Available only for Redux enhancer, for others use `autoPause`. | ||
* | ||
* @default true | ||
*/ | ||
shouldRecordChanges?: boolean; | ||
/** | ||
* if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type. | ||
* If not specified, will commit when paused. Available only for Redux enhancer. | ||
* | ||
* @default "@@PAUSED"" | ||
*/ | ||
pauseActionType?: string; | ||
/** | ||
* auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use. | ||
* Not available for Redux enhancer (as it already does it but storing the data to be sent). | ||
* | ||
* @default false | ||
*/ | ||
autoPause?: boolean; | ||
/** | ||
* if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button. | ||
* Available only for Redux enhancer. | ||
* | ||
* @default false | ||
*/ | ||
shouldStartLocked?: boolean; | ||
/** | ||
* if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer. | ||
* | ||
* @default true | ||
*/ | ||
shouldHotReload?: boolean; | ||
/** | ||
* if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched. | ||
* | ||
* @default false | ||
*/ | ||
shouldCatchErrors?: boolean; | ||
/** | ||
* If you want to restrict the extension, specify the features you allow. | ||
* If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed. | ||
* Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side. | ||
* Otherwise, you'll get/set the data right from the monitor part. | ||
*/ | ||
features?: { | ||
/** | ||
* start/pause recording of dispatched actions | ||
*/ | ||
pause?: boolean; | ||
/** | ||
* lock/unlock dispatching actions and side effects | ||
*/ | ||
lock?: boolean; | ||
/** | ||
* persist states on page reloading | ||
*/ | ||
persist?: boolean; | ||
/** | ||
* export history of actions in a file | ||
*/ | ||
export?: boolean | 'custom'; | ||
/** | ||
* import history of actions from a file | ||
*/ | ||
import?: boolean | 'custom'; | ||
/** | ||
* jump back and forth (time travelling) | ||
*/ | ||
jump?: boolean; | ||
/** | ||
* skip (cancel) actions | ||
*/ | ||
skip?: boolean; | ||
/** | ||
* drag and drop actions in the history list | ||
*/ | ||
reorder?: boolean; | ||
/** | ||
* dispatch custom actions or action creators | ||
*/ | ||
dispatch?: boolean; | ||
/** | ||
* generate tests for the selected actions | ||
*/ | ||
test?: boolean; | ||
}; | ||
/** | ||
* Set to true or a stacktrace-returning function to record call stack traces for dispatched actions. | ||
* Defaults to false. | ||
*/ | ||
trace?: boolean | (<A extends Action>(action: A) => string); | ||
/** | ||
* The maximum number of stack trace entries to record per action. Defaults to 10. | ||
*/ | ||
traceLimit?: number; | ||
} |
File renamed without changes.
2 changes: 1 addition & 1 deletion
2
...rc/lib/log-to-redux-devtools-extension.ts → ...vtools/log-to-redux-devtools-extension.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
export * from './operators'; | ||
export { createOperatorFunction } from './create-operator-function'; | ||
export { logToReduxDevtoolsExtension } from './log-to-redux-devtools-extension'; | ||
export { logToReduxDevtoolsExtension } from './devtools/log-to-redux-devtools-extension'; | ||
export { SubscriptionManager } from './subscription-manager'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters