A plugin type: Programatically insert assets out of thin air into bundles

Runtimes accept a bundle and return assets to be inserted into that bundle.

import { Runtime } from "@parcel/runtime";

export default new Runtime({
async apply({ bundle, bundleGraph }) {
// ...
return assets;

ΒΆ Relevant API

RuntimeAsset parcel/packages/core/types/index.js:1130

A "synthetic" asset that will be inserted into the bundle graph.

type RuntimeAssetΒ = {|
  +filePath: FilePath,
  +code: string,
  +dependency?: Dependency,
  +isEntry?: boolean,
Referenced by:

Runtime parcel/packages/core/types/index.js:1140

type RuntimeΒ = {|
    bundle: NamedBundle,
    bundleGraph: BundleGraph<NamedBundle>,
    options: PluginOptions,
    logger: PluginLogger,
  |}): Async<void | RuntimeAsset | Array<RuntimeAsset>>,