Skip to content

Modular Export Binary Size Analysis - WIP #3280

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 168 commits into from

Conversation

XuechunHou
Copy link
Contributor

@XuechunHou XuechunHou commented Jun 25, 2020

Stage a PR to track progress of modular export binary size calculator project

sam-gc and others added 30 commits May 19, 2020 09:30
Initial package structure--copied from packages/template, but with tests working
Add mock fetch library for tests
* Add core types & error map

* [AUTOMATED]: Prettier Code Styling

* [AUTOMATED]: License Headers

* User should be an interface for now

we can make an implementation class later
* User should be an interface for now

we can make an implementation class later

* Add API call to signUp

* [AUTOMATED]: Prettier Code Styling

* [AUTOMATED]: License Headers

* Update tests to test a little more

* [AUTOMATED]: Prettier Code Styling
* Initial user object implementation
* Consolidate mock auth / add user test helper

* [AUTOMATED]: Prettier Code Styling

* Fix tests
* User should be an interface for now

we can make an implementation class later

* Add API call to signUp

* [AUTOMATED]: Prettier Code Styling

* Update tests to test a little more

* Add remaining API methods to auth-next

* [AUTOMATED]: Prettier Code Styling

* [AUTOMATED]: License Headers

* Add more tests to account API methods

* Pass in SDK version & correctly send GET request params

* [AUTOMATED]: Prettier Code Styling

* [AUTOMATED]: Prettier Code Styling

* Fix import ordering

* Minor formatting change

* [AUTOMATED]: Prettier Code Styling
* Add support for API timeouts to auth-next

* PR feedback

* [AUTOMATED]: Prettier Code Styling
* Add version helper to auth-next

* [AUTOMATED]: Prettier Code Styling

* PR feedback
* Add fetchSignInMethodsForEmail to auth-next

* [AUTOMATED]: Prettier Code Styling

* PR Feedback

* [AUTOMATED]: Prettier Code Styling
* Add sendEmailVerification to auth-next

* [AUTOMATED]: Prettier Code Styling

* Add missing test

* Remove GetOobCodeRequestType in favor of Operation
* Add sendEmailVerification to auth-next

* [AUTOMATED]: Prettier Code Styling

* Remove GetOobCodeRequestType in favor of Operation

* Add password reset methods to auth-next

* [AUTOMATED]: Prettier Code Styling

* PR Feedback

* [AUTOMATED]: Prettier Code Styling

* [AUTOMATED]: Prettier Code Styling

* Resolve merge conflicts

* [AUTOMATED]: Prettier Code Styling
* Use queryString from firebase/util instead of homebrew one

* [AUTOMATED]: Prettier Code Styling

* PR Feedback

* [AUTOMATED]: Prettier Code Styling
* Add conditional delays to auth-next

* [AUTOMATED]: Prettier Code Styling

* Use typescript asserts keyword for typesafe assertions

* [AUTOMATED]: Prettier Code Styling

* Rebase conflicts & PR feedback

* More PR Feedback

* Strip debug asserts from prod builds

* [AUTOMATED]: Prettier Code Styling

* [AUTOMATED]: API Reports

* Fix logic in assertion

* Revert merge artifacts

* PR Feedback
* Add sendSignInWithEmail links

* [AUTOMATED]: Prettier Code Styling

* PR Feedback

* PR Feedback
* Standardize auth-next style

- prefix directory for test blocks
- use kebab style for test values to make them visually distinct from
keys
- use '#' to prefix instance methods and '.' for class methods
- prefix all private exported methods with '_'

* [AUTOMATED]: Prettier Code Styling

* Two more cases I missed
Added React Native persistence class
* Update internal types to work with external types

* [AUTOMATED]: Prettier Code Styling

* [AUTOMATED]: License Headers

* PR feedback

* [AUTOMATED]: Prettier Code Styling
…#3078)

* Further refactoring of auth types. Add public exports to src/index.ts

* Add app-exp to devDependencies

* PR feedback
* user.delete() implementation

* [AUTOMATED]: Prettier Code Styling

* PR feedback

* PR feedback
* Add signInWithCredential to auth-next

* [AUTOMATED]: Prettier Code Styling

* Add conditional delays to auth-next (#2934)

* Add conditional delays to auth-next

* [AUTOMATED]: Prettier Code Styling

* Use typescript asserts keyword for typesafe assertions

* [AUTOMATED]: Prettier Code Styling

* Rebase conflicts & PR feedback

* More PR Feedback

* Strip debug asserts from prod builds

* [AUTOMATED]: Prettier Code Styling

* [AUTOMATED]: API Reports

* Fix logic in assertion

* Revert merge artifacts

* PR Feedback

* Cleanup & PR Feedback

* [AUTOMATED]: Prettier Code Styling

* [AUTOMATED]: License Headers

* Add more tests

* [AUTOMATED]: Prettier Code Styling

* Rebase conflicts

* Cleanup type exports

* PR feedback

* Declare abstract class abstractly

### To Do Analysis On All Firebase-Exp Modules

$firebase-js-sdk/repo-scripts/size-analysis `ts-node-script analysis.ts -o <path to output DIRECTORY>`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you please add a section on how to use it programmatically ?

]);
});

it('test re-exported variable extractions from same module', () => {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you break it out into 2 tests - named reexports and start reexport?

});

it('should not throw error when given path does not pre-exist', () => {
const aDir = resolve('./a-dir/a-sub-dir');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This relies on the assumption that the tests run in order where the previous test creates the dir, which may not be true. This test should create the folder in its own body. The previous test should clean up once it's finished.

let extractedDeclarations: MemberList;
before(() => {
testModuleDtsFile = retrieveTestModuleDtsFile();
extractedDeclarations = extractDeclarations(testModuleDtsFile);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add tests for extractDeclarations where the input is a js bundle?

@XuechunHou XuechunHou closed this Aug 7, 2020
@Feiyang1
Copy link
Member

Replaced by #3588

@firebase firebase locked and limited conversation to collaborators Sep 7, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants