runInput
Given an Input, runs its produce() with any provided args.
runInput takes in up to two arguments:
input(required): an Inputcontext(optional): any properties from an Input Context
runInput returns the result of the Input’s produce().
For example, this Input production reads data from an existing data.json file on disk:
import { createInput, runInput } from "bingo";
const inputDataJson = createInput({ async produce({ fs }) { return await JSON.parse(await fs.readFile("data.json")); },});
// Type: stringawait runInput(inputDataJson);args
Any args to provide to produce(), as defined by the input’s args schema.
For example, this Input production reads data from a JSON file on disk by path:
import { Template } from "bingo";import { z } from "zod";
const inputJsonFile = createInput({ args: { path: z.string(), }, async produce({ args, fs }) { return await JSON.parse(await fs.readFile(args.path)); },});
await runInput(inputJsonFile, { args: "data.json",});offline
Whether to hint to the input not to make network requests.
This is equivalent to the --offline CLI flag.
For example, this input returns undefined instead of fetching a cat fact when offline is enabled:
import { createInput, runInput } from "bingo";import { z } from "zod";
export const inputCatFact = createInput({ async produce({ fetchers, offline }) { if (offline) { return undefined; }
const response = await fetchers.fetch("https://catfact.ninja/fact"); const data = (await response.json()) as { fact: string };
return data.fact; },});
// "Cats can jump up to 7 times their tail length."await runInput(inputCatFact);
// undefinedawait runInput(inputCatFact, { offline: true });
Made with 💝 in Boston by
Josh Goldberg.