UNPKG

@kubb/plugin-oas

Version:
93 lines (90 loc) 3.46 kB
import { getFooter, getBanner } from './chunk-QPFZUPQA.js'; import { Oas } from './chunk-BAU7PO7T.js'; import { camelCase } from '@kubb/core/transformers'; import { createRoot, App } from '@kubb/react'; import { jsx } from '@kubb/react/jsx-runtime'; function createGenerator(parseOptions) { return parseOptions; } function createReactGenerator(parseOptions) { return { ...parseOptions, async operations({ instance, options, operations, operationsByMethod }) { if (!parseOptions.Operations) { return []; } const { pluginManager, oas, plugin, mode } = instance.context; const root = createRoot({ logger: pluginManager.logger }); const Component = parseOptions.Operations.bind(this); root.render( /* @__PURE__ */ jsx(App, { pluginManager, plugin, mode, children: /* @__PURE__ */ jsx(Oas, { oas, operations, generator: instance, children: /* @__PURE__ */ jsx(Component, { operations, instance, operationsByMethod, options }) }) }) ); return root.files; }, async operation({ instance, operation, options }) { if (!parseOptions.Operation) { return []; } const { pluginManager, oas, plugin, mode } = instance.context; const root = createRoot({ logger: pluginManager.logger }); const Component = parseOptions.Operation.bind(this); root.render( /* @__PURE__ */ jsx(App, { pluginManager, plugin: { ...plugin, options }, mode, children: /* @__PURE__ */ jsx(Oas, { oas, operations: [operation], generator: instance, children: /* @__PURE__ */ jsx(Oas.Operation, { operation, children: /* @__PURE__ */ jsx(Component, { operation, options, instance }) }) }) }) ); return root.files; }, async schema({ instance, schema, options }) { if (!parseOptions.Schema) { return []; } const { pluginManager, oas, plugin, mode } = instance.context; const root = createRoot({ logger: pluginManager.logger }); const Component = parseOptions.Schema.bind(this); root.render( /* @__PURE__ */ jsx(App, { pluginManager, plugin: { ...plugin, options }, mode, children: /* @__PURE__ */ jsx(Oas, { oas, children: /* @__PURE__ */ jsx(Oas.Schema, { name: schema.name, value: schema.value, tree: schema.tree, children: /* @__PURE__ */ jsx(Component, { schema, options, instance }) }) }) }) ); return root.files; } }; } // src/generators/jsonGenerator.ts var jsonGenerator = createGenerator({ name: "plugin-oas", async schema({ schema, instance }) { const { pluginManager, plugin } = instance.context; const file = pluginManager.getFile({ name: camelCase(schema.name), extname: ".json", mode: "split", pluginKey: plugin.key }); return [ { ...file, sources: [ { name: camelCase(schema.name), isExportable: false, isIndexable: false, value: JSON.stringify(schema.value) } ], banner: getBanner({ oas: instance.context.oas, output: plugin.options.output, config: pluginManager.config }), format: getFooter({ oas: instance.context.oas, output: plugin.options.output }) } ]; } }); export { createGenerator, createReactGenerator, jsonGenerator }; //# sourceMappingURL=chunk-DN373TFU.js.map //# sourceMappingURL=chunk-DN373TFU.js.map