Home / Class/ ErrImpl Class — react Architecture

ErrImpl Class — react Architecture

Architecture documentation for the ErrImpl class in Result.ts from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  60c9f47e_5e2a_7370_4937_5fc3db1deb1e["ErrImpl"]
  494e3425_0b47_293a_1ea4_d4670b0fc0e7["Result.ts"]
  60c9f47e_5e2a_7370_4937_5fc3db1deb1e -->|defined in| 494e3425_0b47_293a_1ea4_d4670b0fc0e7
  878d56e0_1cd2_7159_45d1_f74d4888860c["constructor()"]
  60c9f47e_5e2a_7370_4937_5fc3db1deb1e -->|method| 878d56e0_1cd2_7159_45d1_f74d4888860c
  dec35380_592a_d2dd_323a_92d8ecb36c8f["map()"]
  60c9f47e_5e2a_7370_4937_5fc3db1deb1e -->|method| dec35380_592a_d2dd_323a_92d8ecb36c8f
  fec7ddaa_e7bf_2836_3bce_c35cc4d5739f["mapErr()"]
  60c9f47e_5e2a_7370_4937_5fc3db1deb1e -->|method| fec7ddaa_e7bf_2836_3bce_c35cc4d5739f
  175e13d2_0d5a_3e98_65ce_7c5e394782ca["mapOr()"]
  60c9f47e_5e2a_7370_4937_5fc3db1deb1e -->|method| 175e13d2_0d5a_3e98_65ce_7c5e394782ca
  cfb2d0a6_b162_8740_c1af_e0dc8cfb9798["mapOrElse()"]
  60c9f47e_5e2a_7370_4937_5fc3db1deb1e -->|method| cfb2d0a6_b162_8740_c1af_e0dc8cfb9798
  83c26a86_a207_c565_5334_2a1ec322010a["andThen()"]
  60c9f47e_5e2a_7370_4937_5fc3db1deb1e -->|method| 83c26a86_a207_c565_5334_2a1ec322010a
  349601d8_521a_d28f_dadb_f6f078a48615["and()"]
  60c9f47e_5e2a_7370_4937_5fc3db1deb1e -->|method| 349601d8_521a_d28f_dadb_f6f078a48615
  c425a557_5dfc_0bbe_4822_f6ef57c91c2b["or()"]
  60c9f47e_5e2a_7370_4937_5fc3db1deb1e -->|method| c425a557_5dfc_0bbe_4822_f6ef57c91c2b
  6b55b788_ae11_6a0a_1cda_050181482ae9["orElse()"]
  60c9f47e_5e2a_7370_4937_5fc3db1deb1e -->|method| 6b55b788_ae11_6a0a_1cda_050181482ae9
  a7544071_1b4a_547a_b89d_082da0de0d03["isOk()"]
  60c9f47e_5e2a_7370_4937_5fc3db1deb1e -->|method| a7544071_1b4a_547a_b89d_082da0de0d03
  f0a04cba_f197_dc31_243c_26243c07a3a4["isErr()"]
  60c9f47e_5e2a_7370_4937_5fc3db1deb1e -->|method| f0a04cba_f197_dc31_243c_26243c07a3a4
  1aa4e8ac_2d51_7316_400b_d3be4e95d188["expect()"]
  60c9f47e_5e2a_7370_4937_5fc3db1deb1e -->|method| 1aa4e8ac_2d51_7316_400b_d3be4e95d188
  2a23fa5c_23b1_0061_88a6_bbf2b547cc97["expectErr()"]
  60c9f47e_5e2a_7370_4937_5fc3db1deb1e -->|method| 2a23fa5c_23b1_0061_88a6_bbf2b547cc97

Relationship Graph

Source Code

compiler/packages/babel-plugin-react-compiler/src/Utils/Result.ts lines 170–242

class ErrImpl<E> implements Result<never, E> {
  #val: E;
  constructor(val: E) {
    this.#val = val;
  }

  map<U>(_fn: (val: never) => U): Result<U, E> {
    return this;
  }

  mapErr<F>(fn: (val: E) => F): Result<never, F> {
    return new ErrImpl(fn(this.#val));
  }

  mapOr<U>(fallback: U, _fn: (val: never) => U): U {
    return fallback;
  }

  mapOrElse<U>(fallback: () => U, _fn: (val: never) => U): U {
    return fallback();
  }

  andThen<U>(_fn: (val: never) => Result<U, E>): Result<U, E> {
    return this;
  }

  and<U>(_res: Result<U, E>): Result<U, E> {
    return this;
  }

  or(res: Result<never, E>): Result<never, E> {
    return res;
  }

  orElse<F>(fn: (val: E) => ErrImpl<F>): Result<never, F> {
    return fn(this.#val);
  }

  isOk(): this is OkImpl<never> {
    return false;
  }

  isErr(): this is ErrImpl<E> {
    return true;
  }

  expect(msg: string): never {
    throw new Error(`${msg}: ${this.#val}`);
  }

  expectErr(_msg: string): E {
    return this.#val;
  }

  unwrap(): never {
    if (this.#val instanceof Error) {
      throw this.#val;
    }
    throw new Error(`Can't unwrap \`Err\` to \`Ok\`: ${this.#val}`);
  }

  unwrapOr<T>(fallback: T): T {
    return fallback;
  }

  unwrapOrElse<T>(fallback: (val: E) => T): T {
    return fallback(this.#val);
  }

  unwrapErr(): E {
    return this.#val;
  }
}

Domain

Frequently Asked Questions

What is the ErrImpl class?
ErrImpl is a class in the react codebase, defined in compiler/packages/babel-plugin-react-compiler/src/Utils/Result.ts.
Where is ErrImpl defined?
ErrImpl is defined in compiler/packages/babel-plugin-react-compiler/src/Utils/Result.ts at line 170.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free