Spike: improved type-safe explain API

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Unknown
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Use Case

      As a driver user,
      I want accurate Typescript if I use `explain` with the Node driver, 
      So that I am not confused about why the TS is inaccurate if I use explain.

      As a driver engineer, 
      I want an explain API that type safe,
      So that I do not need to squash TS errors throughout the driver wherever explain is supported.

      User Experience

      • The Node driver's explain implementation does not provide accurate Typescript, both internally and externally. This requires us to squash Typescript errors inside the driver wherever we support explain, and probably requires users to do the same. I would imagine we don't have many users using explain (I imagine most users use explain through mongosh) so this isn't a huge issue, but it would be nice to provide a better API for our users and for devtools.

      Dependencies

      • n/a

      Risks/Unknowns

      • n/a

      Acceptance Criteria

      Implementation Requirements

      • Investigate improvements to our existing API / alternative designs that satisfy the following requirements:
        • explain support should be accurate inside driver internals and for users of the driver
        • explain support should be easy to use (for users) and easy to maintain
      • Discuss options with the team and devtools
      • File any necessary follow-up tickets

      Testing Requirements

      • n/a

      Documentation Requirements

      • n/a

      Follow Up Requirements

      • n/a

              Assignee:
              Unassigned
              Reporter:
              Bailey Pearson
              None
              Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: