ajaishankar / openapi-typescript-fetch

A typed fetch client for openapi-typescript
MIT License
233 stars 54 forks source link

Question: Return all operations #47

Open jonasgroendahl opened 2 years ago

jonasgroendahl commented 2 years ago

Hi!

I'm trying to create some code that will generate all the available operations based on the paths automatically, so you don't need to create another fetch.path("route").method("method").create() every time you add another path in your api spec.

Anyone who had any luck with this?

I tried something like the below and couldn't really think it to the end

import { ApiPaths, paths } from "./schema"

const fetch = Fetcher.for<paths>();

const createAll = () => {
  const allPaths = Object.keys(ApiPaths);

  const all = {};

  for (const route of allPaths) {
    all[route] = fetch.path(route).method("get").create();
  }

  return all;
};
duncanbeevers commented 1 year ago

I ended up creating a tool that parses the generated types with the typescript compiler itself and walks the AST to generate all the APIs fetchers.