egoist / tsup

The simplest and fastest way to bundle your TypeScript libraries.

Home Page:https://tsup.egoist.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Is there a way to get the `result` of `esbuild` when using the `build`api?

1111mp opened this issue · comments

function build(_options: Options): Promise<void>

I've read the tsup documentation carefully, but still haven't found a way to read the result of esbuild. The closest method so far is to obtain the code string through the renderChunk method of plugin.

type RenderChunk = (this: PluginContext, code: string, chunkInfo: ChunkInfo) => MaybePromise<{
    code: string;
    map?: object | string | SourceMap$1 | null;
} | undefined | null | void>;

type Plugin = {
    name: string;
    esbuildOptions?: ModifyEsbuildOptions;
    buildStart?: BuildStart;
    renderChunk?: RenderChunk;
    buildEnd?: BuildEnd;
};

It's also possible that I missed some important documentation by mistake. If there is already a way to do this please feel free to correct me. Thanks. 🌹

Get whether the build method can be supported to return the result of esbuild, like this:

import { type BuildResult } from "esbuild";

function build(_options: Options): Promise<BuildResult[]>;

If possible I would like to submit a PR to support this feature. Of course there may be a better way, please feel free to let me know. Thanks.

Upvote & Fund

  • We're using Polar.sh so you can upvote and help fund this issue.
  • We receive the funding once the issue is completed & confirmed by you.
  • Thank you in advance for helping prioritize & fund our backlog.
Fund with Polar

You can use esbuildPlugins to get the build outputs.

Check out esbuild-plugin-react18 For an example.