UNPKG

@kubb/plugin-oas

Version:

OpenAPI Specification (OAS) plugin for Kubb, providing core functionality for parsing and processing OpenAPI/Swagger schemas for code generation.

97 lines (93 loc) 3.83 kB
'use strict'; var chunkDTD4ZUDA_cjs = require('./chunk-DTD4ZUDA.cjs'); var chunkZ2NREI4X_cjs = require('./chunk-Z2NREI4X.cjs'); var transformers = require('@kubb/core/transformers'); var react = require('@kubb/react'); var jsxRuntime = require('@kubb/react/jsx-runtime'); function createGenerator(parseOptions) { return parseOptions; } function createReactGenerator(parseOptions) { return { ...parseOptions, async operations({ instance, options, operations }) { if (!parseOptions.Operations) { return []; } const { pluginManager, oas, plugin, mode } = instance.context; const root = react.createRoot({ logger: pluginManager.logger }); const Component = parseOptions.Operations.bind(this); root.render( /* @__PURE__ */ jsxRuntime.jsx(react.App, { pluginManager, plugin, mode, children: /* @__PURE__ */ jsxRuntime.jsx(chunkZ2NREI4X_cjs.Oas, { oas, operations, generator: instance, children: /* @__PURE__ */ jsxRuntime.jsx(Component, { operations, instance, options }) }) }) ); return root.files; }, async operation({ instance, operation, options }) { if (!parseOptions.Operation) { return []; } const { pluginManager, oas, plugin, mode } = instance.context; const root = react.createRoot({ logger: pluginManager.logger }); const Component = parseOptions.Operation.bind(this); root.render( /* @__PURE__ */ jsxRuntime.jsx(react.App, { pluginManager, plugin: { ...plugin, options }, mode, children: /* @__PURE__ */ jsxRuntime.jsx(chunkZ2NREI4X_cjs.Oas, { oas, operations: [operation], generator: instance, children: /* @__PURE__ */ jsxRuntime.jsx(chunkZ2NREI4X_cjs.Oas.Operation, { operation, children: /* @__PURE__ */ jsxRuntime.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 Component = parseOptions.Schema.bind(this); const root = react.createRoot({ logger: pluginManager.logger }); root.render( /* @__PURE__ */ jsxRuntime.jsx(react.App, { pluginManager, plugin: { ...plugin, options }, mode, children: /* @__PURE__ */ jsxRuntime.jsx(chunkZ2NREI4X_cjs.Oas, { oas, children: /* @__PURE__ */ jsxRuntime.jsx(chunkZ2NREI4X_cjs.Oas.Schema, { name: schema.name, schemaObject: schema.value, tree: schema.tree, children: /* @__PURE__ */ jsxRuntime.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: transformers.camelCase(schema.name), extname: ".json", mode: "split", pluginKey: plugin.key }); return [ { ...file, sources: [ { name: transformers.camelCase(schema.name), isExportable: false, isIndexable: false, value: JSON.stringify(schema.value) } ], banner: chunkDTD4ZUDA_cjs.getBanner({ oas: instance.context.oas, output: plugin.options.output, config: pluginManager.config }), format: chunkDTD4ZUDA_cjs.getFooter({ oas: instance.context.oas, output: plugin.options.output }) } ]; } }); exports.createGenerator = createGenerator; exports.createReactGenerator = createReactGenerator; exports.jsonGenerator = jsonGenerator; //# sourceMappingURL=chunk-QJMOOF2A.cjs.map //# sourceMappingURL=chunk-QJMOOF2A.cjs.map