convert faucet-client to ESM #1737
                
     Open
            
            
          
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
https://antfu.me/posts/move-on-to-esm-only
https://joyeecheung.github.io/blog/2024/03/18/require-esm-in-node-js/
Since there's no point maintaining a CJS build, just completely convert the smallest package as a proof of concept for #1004.
https://www.typescriptlang.org/docs/handbook/modules/reference.html#the-module-compiler-option
Since the build uses
tscdirectly instead of a build system like Vite+Rollup or a bundler that produces a single file likeesbuild, explicit file extensions are required in imports (TypeScript won't add omitted file extensions and transpiles.tsfiles to.jsfiles 1:1).