Skip to content
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

feat: bundling #10

Merged
merged 42 commits into from Sep 26, 2022
Merged

feat: bundling #10

merged 42 commits into from Sep 26, 2022

Conversation

unicornware
Copy link
Member

@unicornware unicornware commented Sep 25, 2022

Description

πŸ“¦ Build

  • cli: distribute cli as bundle
  • deps-peer: require at least typescript@3.7

✨ Features

  • interfaces: Config#bundle?
  • interfaces: Config#ext?
  • interfaces: Config#format?
  • interfaces: Config#source?
  • interfaces: Entry#bundle?
  • interfaces: Entry#name?
  • options: only write dts files
  • types: EsbuildOptions
  • types: OutputExtension
  • utils: getCompilerOptions
  • utils: loaders

🏑 Housekeeping

  • pkg: add check:types:build script

πŸ”₯ Performance Improvements

  • build all source files at once
    • majorly improves declaration file generation speed

⚑ Refactors

  • pass esbuild options via build entries
  • config: default loadBuildConfig search location to '.'
  • interfaces: make Entry#declaration optional
  • node: support bundling
  • plugins: [dts] normalize user compiler options
  • plugins: [dts] respect user compiler options
  • utils: [esbuilder] set entryNames
  • utils: esbuild loader configuration
    • pick loader based on entry.bundle and/or entry.format
  • utils: support esbuild bundling and code splitting options

βœ… Testing

  • plugins: check for esbuild errors and warnings
  • utils: [write] separate black box and white box techniques
  • utils: remove plugin mocks from esbuilder integration tests

Tests

yarn test:cov

RUN  v0.23.1
      Coverage enabled with c8

βœ“ src/__tests__/make.functional.spec.ts > functional:make > should load build config
 βœ“ src/__tests__/make.functional.spec.ts > functional:make > should clean output directories
 βœ“ src/__tests__/make.functional.spec.ts > functional:make > should write all build results
 βœ“ src/__tests__/make.functional.spec.ts > functional:make > should write dts build results only
 βœ“ src/__tests__/make.spec.ts > unit:make > build > should determine current working directory
 βœ“ src/__tests__/make.spec.ts > unit:make > build > should load package.json from current working directory
 βœ“ src/__tests__/make.spec.ts > unit:make > build > should print build start info
 βœ“ src/__tests__/make.spec.ts > unit:make > build > should build source files
 βœ“ src/__tests__/make.spec.ts > unit:make > build > should write build results
 βœ“ src/__tests__/make.spec.ts > unit:make > build > should print build done info
 βœ“ src/__tests__/make.spec.ts > unit:make > build > should print build analysis
 βœ“ src/__tests__/make.spec.ts > unit:make > build > should print total build size
 βœ“ src/__tests__/make.spec.ts > unit:make > build > should return build results
 βœ“ src/__tests__/make.spec.ts > unit:make > error handling > should exit early if package.json is not found
 βœ“ src/__tests__/make.spec.ts > unit:make > error handling > should exit early if error building source file
 βœ“ src/__tests__/make.spec.ts > unit:make > error handling > should exit early if error writing build result
 βœ“ src/config/__tests__/define.spec.ts > unit:config/defineBuildConfig > should return build config object
 βœ“ src/config/__tests__/load.integration.spec.ts > integration:config/loadBuildConfig > cosmiconfig > should load config from build.config.cjs
 βœ“ src/config/__tests__/load.integration.spec.ts > integration:config/loadBuildConfig > cosmiconfig > should load config from build.config.cts
 βœ“ src/config/__tests__/load.integration.spec.ts > integration:config/loadBuildConfig > cosmiconfig > should load config from build.config.js
 βœ“ src/config/__tests__/load.integration.spec.ts > integration:config/loadBuildConfig > cosmiconfig > should load config from build.config.json
 βœ“ src/config/__tests__/load.integration.spec.ts > integration:config/loadBuildConfig > cosmiconfig > should load config from build.config.mjs
 βœ“ src/config/__tests__/load.integration.spec.ts > integration:config/loadBuildConfig > cosmiconfig > should load config from build.config.mts
 βœ“ src/config/__tests__/load.integration.spec.ts > integration:config/loadBuildConfig > cosmiconfig > should load config from build.config.ts
 βœ“ src/config/__tests__/load.spec.ts > unit:config/loadBuildConfig > should return empty object if config is not found
 βœ“ src/config/__tests__/loader-es.spec.ts > unit:config/esLoader > should return config from .cts file
 βœ“ src/config/__tests__/loader-es.spec.ts > unit:config/esLoader > should return config from .js file
 βœ“ src/config/__tests__/loader-es.spec.ts > unit:config/esLoader > should return config from .mjs file
 βœ“ src/config/__tests__/loader-es.spec.ts > unit:config/esLoader > should return config from .mts file
 βœ“ src/config/__tests__/loader-es.spec.ts > unit:config/esLoader > should return config from .ts file
 βœ“ src/plugins/dts/__tests__/plugin.integration.spec.ts > integration:plugins/dts > esbuild > should add .d.cts output
 βœ“ src/plugins/dts/__tests__/plugin.integration.spec.ts > integration:plugins/dts > esbuild > should add .d.cts output for copied file
 βœ“ src/plugins/dts/__tests__/plugin.integration.spec.ts > integration:plugins/dts > esbuild > should add .d.mts output
 βœ“ src/plugins/dts/__tests__/plugin.integration.spec.ts > integration:plugins/dts > esbuild > should add .d.mts output for copied file
 βœ“ src/plugins/dts/__tests__/plugin.integration.spec.ts > integration:plugins/dts > esbuild > should add .d.ts output
 βœ“ src/plugins/dts/__tests__/plugin.integration.spec.ts > integration:plugins/dts > esbuild > should skip files that are not javascript or typescript
 βœ“ src/plugins/dts/__tests__/plugin.spec.ts > unit:plugins/dts > should do nothing if bundling
 βœ“ src/plugins/dts/__tests__/plugin.spec.ts > unit:plugins/dts > should throw if metafile is not available
 βœ“ src/plugins/fully-specified/__tests__/plugin.integration.spec.ts > integration:plugins/fully-specified > esbuild > should fill specifiers in cjs output files
 βœ“ src/plugins/fully-specified/__tests__/plugin.integration.spec.ts > integration:plugins/fully-specified > esbuild > should fill specifiers in copied output files
 βœ“ src/plugins/fully-specified/__tests__/plugin.integration.spec.ts > integration:plugins/fully-specified > esbuild > should fill specifiers in esm output files
 βœ“ src/plugins/fully-specified/__tests__/plugin.integration.spec.ts > integration:plugins/fully-specified > esbuild > should skip files that are not javascript or typescript
 βœ“ src/plugins/fully-specified/__tests__/plugin.spec.ts > unit:plugins/fully-specified > should do nothing if bundling
 βœ“ src/plugins/fully-specified/__tests__/plugin.spec.ts > unit:plugins/fully-specified > should throw if metafile is not available
 βœ“ src/plugins/tsconfig-paths/__tests__/plugin.integration.spec.ts > integration:plugins/tsconfig-paths > esbuild > should resolve path aliases in cjs output files
 βœ“ src/plugins/tsconfig-paths/__tests__/plugin.integration.spec.ts > integration:plugins/tsconfig-paths > esbuild > should resolve path aliases in copied output files
 βœ“ src/plugins/tsconfig-paths/__tests__/plugin.integration.spec.ts > integration:plugins/tsconfig-paths > esbuild > should resolve path aliases esm output files
 βœ“ src/plugins/tsconfig-paths/__tests__/plugin.integration.spec.ts > integration:plugins/tsconfig-paths > esbuild > should skip files that are not javascript or typescript
 βœ“ src/plugins/tsconfig-paths/__tests__/plugin.spec.ts > unit:plugins/tsconfig-paths > should do nothing if bundling
 βœ“ src/plugins/tsconfig-paths/__tests__/plugin.spec.ts > unit:plugins/tsconfig-paths > should throw if metafile is not available
 βœ“ src/utils/__tests__/analyze-results.spec.ts > unit:utils/analyzeResults > should return pretty printed build results
 βœ“ src/utils/__tests__/esbuilder.integration.spec.ts > integration:utils/esbuilder > esbuild > bundling > should enable bundling
 βœ“ src/utils/__tests__/esbuilder.integration.spec.ts > integration:utils/esbuilder > esbuild > bundling > should mark built-in modules as external
 βœ“ src/utils/__tests__/esbuilder.integration.spec.ts > integration:utils/esbuilder > esbuild > bundling > should support asset names
 βœ“ src/utils/__tests__/esbuilder.integration.spec.ts > integration:utils/esbuilder > esbuild > bundling > should support code splitting
 βœ“ src/utils/__tests__/esbuilder.integration.spec.ts > integration:utils/esbuilder > esbuild > plugins > should add dts if declarations are enabled
 βœ“ src/utils/__tests__/esbuilder.integration.spec.ts > integration:utils/esbuilder > esbuild > plugins > should add fully-specified if specifers require extensions
 βœ“ src/utils/__tests__/esbuilder.integration.spec.ts > integration:utils/esbuilder > esbuild > plugins > should add tsconfig-paths if tsconfig is detected
 βœ“ src/utils/__tests__/esbuilder.integration.spec.ts > integration:utils/esbuilder > esbuild > transpiling > should disable bundling
 βœ“ src/utils/__tests__/esbuilder.spec.ts > unit:utils/esbuilder > should return build result array
 βœ“ src/utils/__tests__/extract-statements.spec.ts > unit:utils/extractStatements > should return empty array if code is empty string
 βœ“ src/utils/__tests__/extract-statements.spec.ts > unit:utils/extractStatements > export > should return declaration export statement array
 βœ“ src/utils/__tests__/extract-statements.spec.ts > unit:utils/extractStatements > export > should return default export statement array
 βœ“ src/utils/__tests__/extract-statements.spec.ts > unit:utils/extractStatements > export > should return named export statement array
 βœ“ src/utils/__tests__/extract-statements.spec.ts > unit:utils/extractStatements > export > should return star export statement array
 βœ“ src/utils/__tests__/extract-statements.spec.ts > unit:utils/extractStatements > export > should return type export statement array
 βœ“ src/utils/__tests__/extract-statements.spec.ts > unit:utils/extractStatements > import > dynamic > should return dynamic import statement array
 βœ“ src/utils/__tests__/extract-statements.spec.ts > unit:utils/extractStatements > import > static > should return default import statement array
 βœ“ src/utils/__tests__/extract-statements.spec.ts > unit:utils/extractStatements > import > static > should return named import statement array
 βœ“ src/utils/__tests__/extract-statements.spec.ts > unit:utils/extractStatements > require > should return require statement array
 βœ“ src/utils/__tests__/extract-statements.spec.ts > unit:utils/extractStatements > require > should return require.resolve statement array
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > should return empty object is tsconfig is not found
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > should return empty object if user options are not found
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > should return user options
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > importsNotUsedAsValues > should convert "error" to ImportsNotUsedAsValues.Error
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > importsNotUsedAsValues > should convert "preserve" to ImportsNotUsedAsValues.Preserve
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > importsNotUsedAsValues > should convert "remove" to ImportsNotUsedAsValues.Remove
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > jsx > should convert "preserve" to JsxEmit.Preserve
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > jsx > should convert "react" to JsxEmit.React
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > jsx > should convert "react-jsx" to JsxEmit.ReactJSX
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > jsx > should convert "react-jsxdev" to JsxEmit.ReactJSXDev
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > jsx > should convert "react-native" to JsxEmit.ReactNative
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > lib > should convert libs into typescript library file names
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > module > should convert "amd" to ModuleKind.AMD
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > module > should convert "commonjs" to ModuleKind.CommonJS
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > module > should convert "es2015" to ModuleKind.ES2015
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > module > should convert "es2020" to ModuleKind.ES2020
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > module > should convert "es2022" to ModuleKind.ES2022
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > module > should convert "esnext" to ModuleKind.ESNext
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > module > should convert "node16" to ModuleKind.Node16
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > module > should convert "nodenext" to ModuleKind.NodeNext
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > module > should convert "none" to ModuleKind.None
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > module > should convert "system" to ModuleKind.System
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > module > should convert "umd" to ModuleKind.UMD
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > moduleDetection > should convert "auto" to ModuleDetectionKind.Auto
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > moduleDetection > should convert "force" to ModuleDetectionKind.Force
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > moduleDetection > should convert "legacy" to ModuleDetectionKind.Legacy
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > moduleResolution > should convert "classic" to ModuleResolutionKind.Classic
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > moduleResolution > should convert "node" to ModuleResolutionKind.NodeJs
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > moduleResolution > should convert "node16" to ModuleResolutionKind.Node16
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > moduleResolution > should convert "nodenext" to ModuleResolutionKind.NodeNext
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > newLine > should convert "crlf" to NewLineKind.CarriageReturnLineFeed
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > newLine > should convert "lf" to NewLineKind.LineFeed
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > target > should convert "es3" to ScriptTarget.ES3
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > target > should convert "es5" to ScriptTarget.ES5
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > target > should convert "es2015" to ScriptTarget.ES2015
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > target > should convert "es2016" to ScriptTarget.ES2016
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > target > should convert "es20[17](https://github.com/flex-development/mkbuild/actions/runs/3124413376/jobs/5067747054#step:11:18)" to ScriptTarget.ES2017
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > target > should convert "es20[18](https://github.com/flex-development/mkbuild/actions/runs/3124413376/jobs/5067747054#step:11:19)" to ScriptTarget.ES2018
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > target > should convert "es20[19](https://github.com/flex-development/mkbuild/actions/runs/3124413376/jobs/5067747054#step:11:20)" to ScriptTarget.ES2019
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > target > should convert "es[20](https://github.com/flex-development/mkbuild/actions/runs/3124413376/jobs/5067747054#step:11:21)20" to ScriptTarget.ES2020
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > target > should convert "es2021" to ScriptTarget.ES2021
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > target > should convert "es2022" to ScriptTarget.ES2022
 βœ“ src/utils/__tests__/get-compiler-options.spec.ts > unit:utils/getCompilerOptions > normalization > target > should convert "esnext" to ScriptTarget.ESNext
 βœ“ src/utils/__tests__/loaders.spec.ts > unit:utils/loaders > should return esbuild loader config for esm transpilation
 βœ“ src/utils/__tests__/loaders.spec.ts > unit:utils/loaders > should return esbuild loader config for esm bundle
 βœ“ src/utils/__tests__/loaders.spec.ts > unit:utils/loaders > should return esbuild loader config for cjs bundle
 βœ“ src/utils/__tests__/loaders.spec.ts > unit:utils/loaders > should return esbuild loader config for cjs transpilation
 βœ“ src/utils/__tests__/write.functional.spec.ts > functional:utils/write > should write build result to file system
 βœ“ src/utils/__tests__/write.spec.ts > unit:utils/write > should create subdirectories in output directory
 βœ“ src/utils/__tests__/write.spec.ts > unit:utils/write > should write build result
 βœ“ src/utils/__tests__/write.spec.ts > unit:utils/write > should return written build result

Test Files  20 passed (20)
     Tests  122 passed (122)
  Start at  01:15:02
  Duration  57.15s (transform 337ms, setup 5.24s, collect 2.54s, tests 28.40s)

 % Coverage report from c8
-----------------------------|---------|----------|---------|---------|-------------------
File                         | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-----------------------------|---------|----------|---------|---------|-------------------
All files                    |     100 |      100 |     100 |     100 |                   
 src                         |     100 |      100 |     100 |     100 |                   
  make.ts                    |     100 |      100 |     100 |     100 |                   
 src/config                  |     100 |      100 |     100 |     100 |                   
  constants.ts               |     100 |      100 |     100 |     100 |                   
  define.ts                  |     100 |      100 |     100 |     100 |                   
  load.ts                    |     100 |      100 |     100 |     100 |                   
  loader-es.ts               |     100 |      100 |     100 |     100 |                   
 src/plugins/dts             |     100 |      100 |     100 |     100 |                   
  plugin.ts                  |     100 |      100 |     100 |     100 |                   
 src/plugins/fully-specified |     100 |      100 |     100 |     100 |                   
  plugin.ts                  |     100 |      100 |     100 |     100 |                   
 src/plugins/tsconfig-paths  |     100 |      100 |     100 |     100 |                   
  plugin.ts                  |     100 |      100 |     100 |     100 |                   
 src/utils                   |     100 |      100 |     100 |     100 |                   
  analyze-results.ts         |     100 |      100 |     100 |     100 |                   
  esbuilder.ts               |     100 |      100 |     100 |     100 |                   
  extract-statements.ts      |     100 |      100 |     100 |     100 |                   
  get-compiler-options.ts    |     100 |      100 |     100 |     100 |                   
  loaders.ts                 |     100 |      100 |     100 |     100 |                   
  write.ts                   |     100 |      100 |     100 |     100 |                   
-----------------------------|---------|----------|---------|---------|-------------------

yarn build

β„Ή Building @flex-development/mkbuild                                                                21:16:16
βœ” Build succeeded for @flex-development/mkbuild                                                     21:16:24
  dist (total size: 67.3 kB)                                                                        21:16:24
  └─ dist/index.mjs.map (177 B)
  └─ dist/index.mjs (288 B)
  └─ dist/index.d.mts (302 B)
  └─ dist/make.mjs.map (2.38 kB)
  └─ dist/make.mjs (3 kB)
  └─ dist/make.d.mts (744 B)
  └─ dist/config/constants.mjs.map (466 B)
  └─ dist/config/constants.mjs (777 B)
  └─ dist/config/constants.d.mts (1.15 kB)
  └─ dist/config/define.mjs.map (152 B)
  └─ dist/config/define.mjs (131 B)
  └─ dist/config/define.d.mts (385 B)
  └─ dist/config/load.mjs.map (514 B)
  └─ dist/config/load.mjs (639 B)
  └─ dist/config/load.d.mts (632 B)
  └─ dist/config/loader-es.mjs.map (726 B)
  └─ dist/config/loader-es.mjs (902 B)
  └─ dist/config/loader-es.d.mts (600 B)
  └─ dist/interfaces/config.mjs.map (69 B)
  └─ dist/interfaces/config.mjs (0 B)
  └─ dist/interfaces/config.d.mts (2.75 kB)
  └─ dist/interfaces/entry.mjs.map (69 B)
  └─ dist/interfaces/entry.mjs (0 B)
  └─ dist/interfaces/entry.d.mts (1.69 kB)
  └─ dist/interfaces/index.mjs.map (69 B)
  └─ dist/interfaces/index.mjs (0 B)
  └─ dist/interfaces/index.d.mts (340 B)
  └─ dist/interfaces/result.mjs.map (69 B)
  └─ dist/interfaces/result.mjs (0 B)
  └─ dist/interfaces/result.d.mts (1.23 kB)
  └─ dist/interfaces/source-file.mjs.map (69 B)
  └─ dist/interfaces/source-file.mjs (0 B)
  └─ dist/interfaces/source-file.d.mts (605 B)
  └─ dist/interfaces/statement.mjs.map (69 B)
  └─ dist/interfaces/statement.mjs (0 B)
  └─ dist/interfaces/statement.d.mts (686 B)
  └─ dist/types/esbuild-options.mjs.map (69 B)
  └─ dist/types/esbuild-options.mjs (0 B)
  └─ dist/types/esbuild-options.d.mts (468 B)
  └─ dist/types/index.mjs.map (69 B)
  └─ dist/types/index.mjs (0 B)
  └─ dist/types/index.d.mts (279 B)
  └─ dist/types/output-extension.mjs.map (69 B)
  └─ dist/types/output-extension.mjs (0 B)
  └─ dist/types/output-extension.d.mts (247 B)
  └─ dist/types/output-metadata.mjs.map (69 B)
  └─ dist/types/output-metadata.mjs (0 B)
  └─ dist/types/output-metadata.d.mts (267 B)
  └─ dist/utils/analyze-results.mjs.map (541 B)
  └─ dist/utils/analyze-results.mjs (575 B)
  └─ dist/utils/analyze-results.d.mts (577 B)
  └─ dist/utils/esbuilder.mjs.map (3.23 kB)
  └─ dist/utils/esbuilder.mjs (4.43 kB)
  └─ dist/utils/esbuilder.d.mts (736 B)
  └─ dist/utils/extract-statements.mjs.map (901 B)
  └─ dist/utils/extract-statements.mjs (1.1 kB)
  └─ dist/utils/extract-statements.d.mts (704 B)
  └─ dist/utils/get-compiler-options.mjs.map (2.6 kB)
  └─ dist/utils/get-compiler-options.mjs (5.36 kB)
  └─ dist/utils/get-compiler-options.d.mts (677 B)
  └─ dist/utils/loaders.mjs.map (671 B)
  └─ dist/utils/loaders.mjs (784 B)
  └─ dist/utils/loaders.d.mts (577 B)
  └─ dist/utils/write.mjs.map (282 B)
  └─ dist/utils/write.mjs (289 B)
  └─ dist/utils/write.d.mts (567 B)
  └─ dist/plugins/dts/plugin.mjs.map (2.49 kB)
  └─ dist/plugins/dts/plugin.mjs (3.93 kB)
  └─ dist/plugins/dts/plugin.d.mts (265 B)
  └─ dist/plugins/fully-specified/plugin.mjs.map (2.13 kB)
  └─ dist/plugins/fully-specified/plugin.mjs (3.32 kB)
  └─ dist/plugins/fully-specified/plugin.d.mts (1.56 kB)
  └─ dist/plugins/tsconfig-paths/options.mjs.map (69 B)
  └─ dist/plugins/tsconfig-paths/options.mjs (0 B)
  └─ dist/plugins/tsconfig-paths/options.d.mts (1.04 kB)
  └─ dist/plugins/tsconfig-paths/plugin.mjs.map (1.71 kB)
  └─ dist/plugins/tsconfig-paths/plugin.mjs (2.49 kB)
  └─ dist/plugins/tsconfig-paths/plugin.d.mts (507 B)
  dist (total size: 1.19 MB)                                                                        21:16:24
  └─ dist/cli.mjs.map (685 kB)
  └─ dist/cli.mjs (509 kB)
Ξ£ Total build size: 1.26 MB                                                                         21:16:24

Linked issues

Related documents

Additional context

  • dts plugin
    • forbidden / overridden / unsupported tsconfig options
      // remove forbidden user compiler options
      delete compilerOptions.declarationDir
      delete compilerOptions.out
      delete compilerOptions.outFile
      delete compilerOptions.rootDirs
      
      // remove overridden user compiler options
      delete compilerOptions.declaration
      delete compilerOptions.emitDeclarationOnly
      delete compilerOptions.noEmit
      delete compilerOptions.noErrorTruncation
      delete compilerOptions.outDir
      delete compilerOptions.rootDir
      
      // remove unsupported user compiler options
      delete compilerOptions.declarationMap
      delete compilerOptions.noEmitOnError
      • noEmitOnError: users are expected to run type check before building
        • diagnostics may be converted into esbuild warnings in a future update
    • does not bundle declaration files yet (exits early when bundling is enabled)

Submission checklist

  • self-review performed
  • tests added and/or updated
  • documentation added or updated
  • new, tolerable vulnerabilities and/or warnings documented, if any
  • pr naming conventions

Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
- pick loader based on `entry.bundle` and/or `entry.format`
- https://esbuild.github.io/api/#loader

Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
- majorly improves declaration file generation speed

Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
- https://esbuild.github.io/api/#outbase

Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
- https://esbuild.github.io/api/#entry-names

Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
- used to capture first letter before "js" or "ts" in output file extension

Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
@unicornware unicornware added scope:node node.js program type:task project tasks scope:esbuild esbuild integration labels Sep 25, 2022
@unicornware unicornware self-assigned this Sep 25, 2022
@unicornware unicornware linked an issue Sep 25, 2022 that may be closed by this pull request
24 tasks
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
Signed-off-by: Lexus Drumgold <unicornware@flexdevelopment.llc>
@unicornware unicornware marked this pull request as ready for review September 26, 2022 01:21
Copy link
Contributor

@flexdevelopment flexdevelopment left a comment

Choose a reason for hiding this comment

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

lgtm πŸ‘πŸΎ

@unicornware unicornware merged commit 10f79b5 into main Sep 26, 2022
@unicornware unicornware deleted the feat/9-bundling branch September 26, 2022 01:56
@github-actions
Copy link

This pull request has been automatically locked since there has not been any recent
activity after it was closed. Please open a new issue for related bugs or features. Be
sure to reference this issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 31, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
scope:esbuild esbuild integration scope:node node.js program type:task project tasks
Projects
Status: βœ… Done
Development

Successfully merging this pull request may close these issues.

πŸ”¨ bundling
2 participants