UNPKG

@kubb/plugin-msw

Version:

Mock Service Worker (MSW) handlers generator plugin for Kubb, creating API mocks from OpenAPI specifications for frontend development and testing.

151 lines (148 loc) 5.16 kB
const require_components = require('./components-Bz0C7Qrg.cjs'); const __kubb_plugin_oas = require_components.__toESM(require("@kubb/plugin-oas")); const __kubb_plugin_faker = require_components.__toESM(require("@kubb/plugin-faker")); const __kubb_plugin_ts = require_components.__toESM(require("@kubb/plugin-ts")); const __kubb_plugin_oas_hooks = require_components.__toESM(require("@kubb/plugin-oas/hooks")); const __kubb_plugin_oas_utils = require_components.__toESM(require("@kubb/plugin-oas/utils")); const __kubb_react = require_components.__toESM(require("@kubb/react")); const __kubb_react_jsx_runtime = require_components.__toESM(require("@kubb/react/jsx-runtime")); //#region src/generators/mswGenerator.tsx const mswGenerator = (0, __kubb_plugin_oas.createReactGenerator)({ name: "msw", Operation({ operation }) { const { pluginManager, plugin: { options: { output, parser, baseURL } } } = (0, __kubb_react.useApp)(); const oas = (0, __kubb_plugin_oas_hooks.useOas)(); const { getSchemas, getName, getFile } = (0, __kubb_plugin_oas_hooks.useOperationManager)(); const mock = { name: getName(operation, { type: "function" }), file: getFile(operation) }; const faker = { file: getFile(operation, { pluginKey: [__kubb_plugin_faker.pluginFakerName] }), schemas: getSchemas(operation, { pluginKey: [__kubb_plugin_faker.pluginFakerName], type: "function" }) }; const type = { file: getFile(operation, { pluginKey: [__kubb_plugin_ts.pluginTsName] }), schemas: getSchemas(operation, { pluginKey: [__kubb_plugin_ts.pluginTsName], type: "type" }) }; return /* @__PURE__ */ (0, __kubb_react_jsx_runtime.jsxs)(__kubb_react.File, { baseName: mock.file.baseName, path: mock.file.path, meta: mock.file.meta, banner: (0, __kubb_plugin_oas_utils.getBanner)({ oas, output, config: pluginManager.config }), footer: (0, __kubb_plugin_oas_utils.getFooter)({ oas, output }), children: [ /* @__PURE__ */ (0, __kubb_react_jsx_runtime.jsx)(__kubb_react.File.Import, { name: ["http"], path: "msw" }), /* @__PURE__ */ (0, __kubb_react_jsx_runtime.jsx)(__kubb_react.File.Import, { name: ["ResponseResolver"], isTypeOnly: true, path: "msw" }), /* @__PURE__ */ (0, __kubb_react_jsx_runtime.jsx)(__kubb_react.File.Import, { name: [type.schemas.response.name], path: type.file.path, root: mock.file.path, isTypeOnly: true }), parser === "faker" && faker.file && faker.schemas.response && /* @__PURE__ */ (0, __kubb_react_jsx_runtime.jsx)(__kubb_react.File.Import, { name: [faker.schemas.response.name], root: mock.file.path, path: faker.file.path }), parser === "faker" && /* @__PURE__ */ (0, __kubb_react_jsx_runtime.jsx)(require_components.MockWithFaker, { name: mock.name, typeName: type.schemas.response.name, fakerName: faker.schemas.response.name, operation, baseURL }), parser === "data" && /* @__PURE__ */ (0, __kubb_react_jsx_runtime.jsx)(require_components.Mock, { name: mock.name, typeName: type.schemas.response.name, fakerName: faker.schemas.response.name, operation, baseURL }) ] }); } }); //#endregion //#region src/generators/handlersGenerator.tsx const handlersGenerator = (0, __kubb_plugin_oas.createReactGenerator)({ name: "plugin-msw", Operations({ operations }) { const { pluginManager, plugin } = (0, __kubb_react.useApp)(); const oas = (0, __kubb_plugin_oas_hooks.useOas)(); const { getName, getFile } = (0, __kubb_plugin_oas_hooks.useOperationManager)(); const file = pluginManager.getFile({ name: "handlers", extname: ".ts", pluginKey: plugin.key }); const imports = operations.map((operation) => { const operationFile = getFile(operation, { pluginKey: plugin.key }); const operationName = getName(operation, { pluginKey: plugin.key, type: "function" }); return /* @__PURE__ */ (0, __kubb_react_jsx_runtime.jsx)(__kubb_react.File.Import, { name: [operationName], root: file.path, path: operationFile.path }, operationFile.path); }); const handlers = operations.map((operation) => `${getName(operation, { type: "function", pluginKey: plugin.key })}()`); return /* @__PURE__ */ (0, __kubb_react_jsx_runtime.jsxs)(__kubb_react.File, { baseName: file.baseName, path: file.path, meta: file.meta, banner: (0, __kubb_plugin_oas_utils.getBanner)({ oas, output: plugin.options.output, config: pluginManager.config }), footer: (0, __kubb_plugin_oas_utils.getFooter)({ oas, output: plugin.options.output }), children: [imports, /* @__PURE__ */ (0, __kubb_react_jsx_runtime.jsx)(require_components.Handlers, { name: "handlers", handlers })] }); } }); //#endregion Object.defineProperty(exports, 'handlersGenerator', { enumerable: true, get: function () { return handlersGenerator; } }); Object.defineProperty(exports, 'mswGenerator', { enumerable: true, get: function () { return mswGenerator; } }); //# sourceMappingURL=generators-DQ6KjdAH.cjs.map