| let _enable_super_gross_mode_that_will_cause_bad_things = false; |
| |
| /** |
| * The global configuration object for RxJS, used to configure things |
| * like what Promise contructor should used to create Promises |
| */ |
| export const config = { |
| /** |
| * The promise constructor used by default for methods such as |
| * {@link toPromise} and {@link forEach} |
| */ |
| Promise: undefined as PromiseConstructorLike, |
| |
| /** |
| * If true, turns on synchronous error rethrowing, which is a deprecated behavior |
| * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe |
| * call in a try/catch block. It also enables producer interference, a nasty bug |
| * where a multicast can be broken for all observers by a downstream consumer with |
| * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BY TIME |
| * FOR MIGRATION REASONS. |
| */ |
| set useDeprecatedSynchronousErrorHandling(value: boolean) { |
| if (value) { |
| const error = new Error(); |
| console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n' + error.stack); |
| } else if (_enable_super_gross_mode_that_will_cause_bad_things) { |
| console.log('RxJS: Back to a better error behavior. Thank you. <3'); |
| } |
| _enable_super_gross_mode_that_will_cause_bad_things = value; |
| }, |
| |
| get useDeprecatedSynchronousErrorHandling() { |
| return _enable_super_gross_mode_that_will_cause_bad_things; |
| }, |
| }; |