@kubb/plugin-oas
Version:
Generator swagger
97 lines (93 loc) • 3.87 kB
JavaScript
'use strict';
var chunkDEDONPUL_cjs = require('./chunk-DEDONPUL.cjs');
var chunkKXB5DUFD_cjs = require('./chunk-KXB5DUFD.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, operationsByMethod }) {
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(chunkKXB5DUFD_cjs.Oas, { oas, operations, generator: instance, children: /* @__PURE__ */ jsxRuntime.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 = 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(chunkKXB5DUFD_cjs.Oas, { oas, operations: [operation], generator: instance, children: /* @__PURE__ */ jsxRuntime.jsx(chunkKXB5DUFD_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 root = react.createRoot({
logger: pluginManager.logger
});
const Component = parseOptions.Schema.bind(this);
root.render(
/* @__PURE__ */ jsxRuntime.jsx(react.App, { pluginManager, plugin: { ...plugin, options }, mode, children: /* @__PURE__ */ jsxRuntime.jsx(chunkKXB5DUFD_cjs.Oas, { oas, children: /* @__PURE__ */ jsxRuntime.jsx(chunkKXB5DUFD_cjs.Oas.Schema, { name: schema.name, value: 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: chunkDEDONPUL_cjs.getBanner({
oas: instance.context.oas,
output: plugin.options.output,
config: pluginManager.config
}),
format: chunkDEDONPUL_cjs.getFooter({ oas: instance.context.oas, output: plugin.options.output })
}
];
}
});
exports.createGenerator = createGenerator;
exports.createReactGenerator = createReactGenerator;
exports.jsonGenerator = jsonGenerator;
//# sourceMappingURL=chunk-DUZZHEQI.cjs.map
//# sourceMappingURL=chunk-DUZZHEQI.cjs.map