enforceReadPolicy method

void enforceReadPolicy(
  1. Atom atom
)

Implementation

void enforceReadPolicy(Atom atom) {
  // ---
  // We are wrapping in an assert() since we don't want this code to execute at runtime.
  // The dart compiler removes assert() calls from the release build.
  // ---
  assert(() {
    switch (config.readPolicy) {
      case ReactiveReadPolicy.always:
        assert(
          _state.isWithinBatch || _state.isWithinDerivation,
          'Observable values cannot be read outside Actions and Reactions. Make sure to wrap them inside an action or a reaction. Tried to read: ${atom.name}',
        );
        break;

      case ReactiveReadPolicy.never:
        break;
    }

    return true;
  }());
}