@kubb/plugin-oas
Version:
Generator swagger
93 lines (90 loc) • 3.46 kB
JavaScript
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