orval icon indicating copy to clipboard operation
orval copied to clipboard

Generate react query hooks for only specific operation ids,

Open yjose opened this issue 4 years ago • 3 comments
trafficstars

First, thanks for the great work on this library, I am opening this issue to ask if we can only generate react query hooks for only specific operation ids,

for example, we have hundreds of operations on our API but only we want a small part of our API in the mobile app? if this something you find useful to be added, i would be happy to help

yjose avatar May 10 '21 18:05 yjose

Hello, thanks for the idea. That's a good idea I will think about it. At the moment, I am not sure where to add it in the orval config. Also, if you want to do it right now I think that you can do it with a transformer in input and override the Openapi spec your self (example: add version in every path)

anymaniax avatar May 11 '21 07:05 anymaniax

hey @anymaniax, i think i can do it with a transformer, thanks for your quick feedback 🙏

yjose avatar May 11 '21 14:05 yjose

In case someone interested in how to use transformer input to only generate clients selected operations

// filter_by_operations_ids.js
const operations = require('./operations');

module.exports = inputSchema => ({
  ...inputSchema,
  paths: Object.entries(inputSchema.paths).reduce(
    (acc, [path, pathItem]) => ({
      ...acc,
      [path]: Object.keys(pathItem)
        .filter(key => operations.includes(pathItem[key].operationId))
        .reduce((obj, key) => {
          obj[key] = pathItem[key];
          return obj;
        }, {}),
    }),
    {},
  ),
});
//operations.js
module.exports = ['operatiin_id_1','operatiin_id_2','operatiin_id_3'];

this method will not filter generated types definition, @anymaniax any thoughts on how to filter type declaration too

yjose avatar May 11 '21 17:05 yjose