Fix up import paths and groups in new TypeScript code.

Review Request #13171 — Created Aug. 1, 2023 and submitted

Information

Review Board
release-6.x

Reviewers

As we've defined how our JS codebase is going to work going forward,
we've not been terribly disciplined about how we do imports. This change
makes everything consistent with three import groups (3rd party, other
modules, and the current module) that kind of matches the way that our
Python code works. Where we can, this has been simplified to import
everything from the top-level indexes, which makes sorting things
alphabetically by module name much easier.

Ran js-tests.

Summary ID
Fix up import paths and groups in new TypeScript code.
As we've defined how our JS codebase is going to work going forward, we've not been terribly disciplined about how we do imports. This change makes everything consistent with three import groups (3rd party, other modules, and the current module) that kind of matches the way that our Python code works. Where we can, this has been simplified to import everything from the top-level indexes, which makes sorting things alphabetically by module name much easier. Testing Done: Ran js-tests.
9310e38b67583e72be549e97daa9d580af4d5cc7
Description From Last Updated

This module is within this bundle, so it should use a relative import in a separate import group.

chipx86chipx86

Should reviewboard/common be before reviewboard/common/...?

chipx86chipx86

common should be before ui.

chipx86chipx86

reviewRequestEditorModel sorts before reviewablePageModel (R < a).

chipx86chipx86

This is in the same bundle, so it should use relative imports.

chipx86chipx86

common before ui.

chipx86chipx86

Isn't this one supposed to be a relative import since its in the same bundle?

maubinmaubin

Should we import this one from reviewboard/common like we do with ReviewReply?

maubinmaubin
chipx86
  1. We should document the import rules in Notion.

    To make sure I have this right (maybe this would be good for the description), do higher-level paths sort before deeper paths? E.g. ../z sorts before ./a?

  2. Show all issues

    This module is within this bundle, so it should use a relative import in a separate import group.

  3. Show all issues

    Should reviewboard/common be before reviewboard/common/...?

  4. reviewboard/static/rb/js/reviews/views/reviewablePageView.ts (Diff revision 1)
     
     
     
     
     
     
     
    Show all issues

    common should be before ui.

  5. Show all issues

    reviewRequestEditorModel sorts before reviewablePageModel (R < a).

  6. Show all issues

    This is in the same bundle, so it should use relative imports.

  7. Show all issues

    common before ui.

  8. 
      
david
maubin
  1. Thanks for standardizing these! Looking forward to having a document in Notion for this too.

  2. Show all issues

    Isn't this one supposed to be a relative import since its in the same bundle?

    1. UserSession is kind of a special case, when combined with test files. The tests are their own bundle, even though we import related things relatively (though I'm wondering if perhaps we should change that). Doing a cross-bundle import into the test file and then having other things get it from the common bundle meant that we actually had two singleton instances.

  3. Show all issues

    Should we import this one from reviewboard/common like we do with ReviewReply?

  4. 
      
david
maubin
  1. Ship It!
  2. 
      
david
Review request changed
Status:
Completed
Change Summary:
Pushed to release-6.x (1119cbf)