@sentry/remix
Version:
Official Sentry SDK for Remix
32 lines • 1.48 kB
TypeScript
import { UNSTAMPED_FETCH } from './assetServer';
/** The subset of `@remix-run/assets`' `AssetServer` this needs. */
export interface AssetServerLike {
fetch(request: Request): Promise<Response | null>;
getPreloads(filePath: string | readonly string[]): Promise<string[]>;
[UNSTAMPED_FETCH]?: (request: Request) => Promise<Response | null>;
}
export interface EmitAssetsOptions {
/** The app's own asset server. Driving the real one is what makes the debug IDs match production. */
assets: AssetServerLike;
/** Browser entry paths, e.g. `['app/actions/public/entry.ts']`. */
entries: readonly string[];
outDir: string;
}
export interface EmittedAsset {
/** Public URL the module is served from. */
url: string;
file: string;
/** Written when the asset server produced a source map for the module. */
mapFile?: string;
debugId?: string;
}
/**
* Compile a Remix 3 app's browser module graph to disk, for a source map upload.
*
* Remix 3 has no build step, so there is no output directory to upload. This drives the app's own
* asset server instead: same config, so the same compiled output and the same debug IDs the running
* server serves. `getPreloads()` is what forces compilation; the server compiles lazily, so without
* it only the modules something happened to request would exist.
*/
export declare function emitAssets(options: EmitAssetsOptions): Promise<EmittedAsset[]>;
//# sourceMappingURL=emitAssets.d.ts.map