0.0.3 • Published 3 years ago

tsbuildinfo v0.0.3

Weekly downloads
2
License
MIT
Repository
github
Last release
3 years ago

tsbuildinfo

Tool to debug slow build times by looking for large type definitions that may have been erroneously imported.

In some typescript projects AWS-SDK has been a very large source of typescript compile slowdowns. by switching form a base import to directly importing the s3 client the build times for one package went from 6 seconds down to 2 seconds.

// Bad
import * as AWS from 'aws-sdk';

// Good
import s3 from 'aws-sdk/clients/s3';

Usage

tsbuildinfo <Path to tsconfig.tsbuildinfo>

Example

Here is a repository that has a base import import * as AWS from 'aws-sdk'

tsbuildinfo ~/basemaps/packages/linzjs-s3fs/tsconfig.tsbuildinfo

Processing /home/blacha/workspace/basemaps/packages/linzjs-s3fs/tsconfig.tsbuildinfo

Largest Imported Modules: 
23.73 MB   aws-sdk
1.13 MB    typescript
684.81 KB  @types/node
81.97 KB   @types/sinon
71.46 KB   @types/aws-lambda

Import Paths:
         ./src/__tests__/file.s3.test.ts => aws-sdk
         ./src/file.s3.ts => aws-sdk
         ./src/index.ts => aws-sdk
         ./src/file.local.ts => @types/node
         ./src/file.s3.ts => @types/node
         ./src/file.ts => @types/node
         ./src/index.ts => @types/node
         ./src/__tests__/file.s3.test.ts => @types/sinon

After switching to import s3 from 'aws-sdk/clients/s3';

Processing /home/blacha/workspace/basemaps/packages/linzjs-s3fs/tsconfig.tsbuildinfo

Largest Imported Modules: 
1.13 MB    typescript
684.81 KB  @types/node
581.09 KB  aws-sdk
81.97 KB   @types/sinon
71.46 KB   @types/aws-lambda

Import Paths:
         ./src/file.local.ts => @types/node
         ./src/file.s3.ts => @types/node
         ./src/file.ts => @types/node
         ./src/index.ts => @types/node
         ./src/__tests__/file.s3.test.ts => aws-sdk
         ./src/file.s3.ts => aws-sdk
         ./src/index.ts => aws-sdk
         ./src/__tests__/file.s3.test.ts => @types/sinon