INNER CODE UNIT · TypeScript

getPluginEntries

cloudflare/miniflare · packages/core/src/index.ts:111

function getPluginEntries<Plugins extends PluginSignatures>(
  plugins: Plugins
): PluginEntries<Plugins> {
  // Split plugins into entries so they're easier to iterate later on.
  // Also make sure CorePlugin is always first (so other plugins can override
  // built-ins, e.g. WebSocketPlugin overriding fetch to handle WebSocket
  // upgrades), and BindingsPlugin (if included) is always last (so user can
  // override any binding/global).
  const entries = Object.entries(plugins) as PluginEntries<Plugins>;
  let coreIndex = -1;
  let bindingsIndex = -1;
  for (let i = 0; i < entries.length; i++) {
    const [, plugin] = entries[i];
    // @ts-expect-error plugin has type `typeof Plugin`
    if (plugin === CorePlugin) coreIndex = i;
    // @ts-expect-error plugin has type `typeof Plugin`
    else if (plugin === BindingsPlugin) bindingsIndex = i;
  }

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…