@nlabs/arkhamjs-middleware-redux
Version:
Integrate ArkhamJS state management within Redux
37 lines (36 loc) • 3.38 kB
JavaScript
/**
* Copyright (c) 2018-Present, Nitrogen Labs, Inc.
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
*/ function _define_property(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
export class ReduxMiddleware {
postDispatch(action) {
// ... Alter action if needed
const { __ARKHAMJS_DISPATCH: isArkhamJs } = action;
if (!isArkhamJs) {
action.__ARKHAMJS_DISPATCH = true;
this.reduxStore.dispatch(action);
}
return Promise.resolve(action);
}
constructor(reduxStore, name){
_define_property(this, "name", void 0);
_define_property(this, "reduxStore", void 0);
this.name = name ? `reduxMiddleware-${name}` : 'reduxMiddleware';
this.reduxStore = reduxStore;
// Methods
this.postDispatch = this.postDispatch.bind(this);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2Fya2hhbWpzL3BhY2thZ2VzL2Fya2hhbWpzLW1pZGRsZXdhcmUtcmVkdXgvc3JjL21pZGRsZXdhcmUvUmVkdXhNaWRkbGV3YXJlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge0ZsdXhBY3Rpb259IGZyb20gJ0BubGFicy9hcmtoYW1qcyc7XG5pbXBvcnQge1N0b3JlfSBmcm9tICdyZWR1eCc7XG5cbmV4cG9ydCBjbGFzcyBSZWR1eE1pZGRsZXdhcmUge1xuICBuYW1lOiBzdHJpbmc7XG4gIHJlZHV4U3RvcmU6IFN0b3JlPGFueT47XG5cbiAgY29uc3RydWN0b3IocmVkdXhTdG9yZTogU3RvcmU8YW55PiwgbmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZSA/IGByZWR1eE1pZGRsZXdhcmUtJHtuYW1lfWAgOiAncmVkdXhNaWRkbGV3YXJlJztcbiAgICB0aGlzLnJlZHV4U3RvcmUgPSByZWR1eFN0b3JlO1xuXG4gICAgLy8gTWV0aG9kc1xuICAgIHRoaXMucG9zdERpc3BhdGNoID0gdGhpcy5wb3N0RGlzcGF0Y2guYmluZCh0aGlzKTtcbiAgfVxuXG4gIHBvc3REaXNwYXRjaChhY3Rpb24pOiBQcm9taXNlPEZsdXhBY3Rpb24+IHtcbiAgICAvLyAuLi4gQWx0ZXIgYWN0aW9uIGlmIG5lZWRlZFxuICAgIGNvbnN0IHtfX0FSS0hBTUpTX0RJU1BBVENIOiBpc0Fya2hhbUpzfSA9IGFjdGlvbjtcblxuICAgIGlmKCFpc0Fya2hhbUpzKSB7XG4gICAgICBhY3Rpb24uX19BUktIQU1KU19ESVNQQVRDSCA9IHRydWU7XG4gICAgICB0aGlzLnJlZHV4U3RvcmUuZGlzcGF0Y2goYWN0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGFjdGlvbik7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJSZWR1eE1pZGRsZXdhcmUiLCJwb3N0RGlzcGF0Y2giLCJhY3Rpb24iLCJfX0FSS0hBTUpTX0RJU1BBVENIIiwiaXNBcmtoYW1KcyIsInJlZHV4U3RvcmUiLCJkaXNwYXRjaCIsIlByb21pc2UiLCJyZXNvbHZlIiwibmFtZSIsImJpbmQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQzs7Ozs7Ozs7Ozs7OztBQUlELE9BQU8sTUFBTUE7SUFZWEMsYUFBYUMsTUFBTSxFQUF1QjtRQUN4Qyw2QkFBNkI7UUFDN0IsTUFBTSxFQUFDQyxxQkFBcUJDLFVBQVUsRUFBQyxHQUFHRjtRQUUxQyxJQUFHLENBQUNFLFlBQVk7WUFDZEYsT0FBT0MsbUJBQW1CLEdBQUc7WUFDN0IsSUFBSSxDQUFDRSxVQUFVLENBQUNDLFFBQVEsQ0FBQ0o7UUFDM0I7UUFFQSxPQUFPSyxRQUFRQyxPQUFPLENBQUNOO0lBQ3pCO0lBbEJBLFlBQVlHLFVBQXNCLEVBQUVJLElBQVksQ0FBRTtRQUhsREEsdUJBQUFBLFFBQUFBLEtBQUFBO1FBQ0FKLHVCQUFBQSxjQUFBQSxLQUFBQTtRQUdFLElBQUksQ0FBQ0ksSUFBSSxHQUFHQSxPQUFPLENBQUMsZ0JBQWdCLEVBQUVBLE1BQU0sR0FBRztRQUMvQyxJQUFJLENBQUNKLFVBQVUsR0FBR0E7UUFFbEIsVUFBVTtRQUNWLElBQUksQ0FBQ0osWUFBWSxHQUFHLElBQUksQ0FBQ0EsWUFBWSxDQUFDUyxJQUFJLENBQUMsSUFBSTtJQUNqRDtBQWFGIn0=