@kubb/plugin-oas
Version:
OpenAPI Specification (OAS) plugin for Kubb, providing core functionality for parsing and processing OpenAPI/Swagger schemas for code generation.
79 lines (78 loc) • 2.06 kB
JavaScript
import "./chunk--u3MIqq1.js";
import { n as getBanner, r as camelCase, t as getFooter } from "./getFooter-Pw3tLCiV.js";
//#region src/generators/createGenerator.ts
function createGenerator(generator) {
return {
type: "core",
version: generator.version ?? "1",
async operations() {
return [];
},
async operation() {
return [];
},
async schema() {
return [];
},
...generator
};
}
//#endregion
//#region src/generators/createReactGenerator.ts
/****
* Creates a generator that uses React component functions to generate files for OpenAPI operations and schemas.
*
* The returned generator exposes async methods for generating files from operations, a single operation, or a schema, using the corresponding React components if provided. If a component is not defined, the method returns an empty array.
*
* @returns A generator object with async methods for operations, operation, and schema file generation.
*/
function createReactGenerator(generator) {
return {
type: "react",
version: generator.version ?? "1",
Operations() {
return null;
},
Operation() {
return null;
},
Schema() {
return null;
},
...generator
};
}
//#endregion
//#region src/generators/jsonGenerator.ts
const jsonGenerator = createGenerator({
name: "plugin-oas",
async schema({ schema, generator }) {
const { pluginManager, plugin } = generator.context;
return [{
...pluginManager.getFile({
name: camelCase(schema.name),
extname: ".json",
mode: "split",
pluginKey: plugin.key
}),
sources: [{
name: camelCase(schema.name),
isExportable: false,
isIndexable: false,
value: JSON.stringify(schema.value)
}],
banner: getBanner({
oas: generator.context.oas,
output: plugin.options.output,
config: pluginManager.config
}),
format: getFooter({
oas: generator.context.oas,
output: plugin.options.output
})
}];
}
});
//#endregion
export { createReactGenerator as n, createGenerator as r, jsonGenerator as t };
//# sourceMappingURL=generators-D7C3CXsN.js.map