function start()

in web/cli/src/index.ts [19:59]


function start(wasmpkg: glTFVariantMeld) {
  let args = process.argv.slice(2);
  if (args.length < 2) {
    console.error(
      "Usage: %s [<tag>:]<input glb> [<tag>:]<input glb> <output glb>",
      basename(process.argv[1])
    );
    process.exit(1);
  }

  let inputs: [string, string][] = [];
  for (let ix = 0; ix < args.length - 1; ix++) {
    inputs.push(parseInputArg(args[ix]));
  }
  let output = args[args.length - 1];

  function parse_input(ix: number): VariationalAsset {
    let tag = inputs[ix][0];
    let file = inputs[ix][1];

    console.log("Parsing source asset: '" + file + "'...");
    let bytes = readAndValidate(file) as Uint8Array;
    return wasmpkg.VariationalAsset.wasm_from_slice(bytes, tag);
  }

  let result = parse_input(0);
  console.log("Initial asset:");
  describe_asset(result);

  for (let ix = 1; ix < inputs.length; ix++) {
    console.log();
    result = wasmpkg.VariationalAsset.wasm_meld(result, parse_input(ix));
    console.log("New melded result:");
    describe_asset(result);
  }

  let output_glb = result.wasm_glb();
  writeFileSync(output, output_glb);

  console.log("Success! %d bytes written to '%s'.", output_glb.length, output);
}