@kubb/plugin-msw 3.0.0-alpha.18 → 3.0.0-alpha.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -31,7 +31,7 @@ var mswGenerator = pluginOas.createReactGenerator({
31
31
  name: getSchemaName(operation, "response", { pluginKey: [pluginFaker.pluginFakerName], type: "function" }),
32
32
  file: getFile(operation, { pluginKey: [pluginFaker.pluginFakerName] })
33
33
  };
34
- return /* @__PURE__ */ jsxRuntime.jsxs(react.File, { baseName: mock.file.baseName, path: mock.file.path, meta: mock.file.meta, children: [
34
+ return /* @__PURE__ */ jsxRuntime.jsxs(react.File, { baseName: mock.file.baseName, path: mock.file.path, meta: mock.file.meta, banner: output?.banner, footer: output?.footer, children: [
35
35
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["http"], path: "msw" }),
36
36
  faker.file && faker.name && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { extName: output?.extName, name: [faker.name], root: mock.file.path, path: faker.file.path }),
37
37
  /* @__PURE__ */ jsxRuntime.jsx(chunkGODA4G5K_cjs.Mock, { name: mock.name, fakerName: faker.name, method: operation.method, url: new utils.URLPath(operation.path).toURLPath() })
@@ -116,7 +116,7 @@ var handlersGenerator = pluginOas.createReactGenerator({
116
116
  return /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { extName: plugin.output?.extName, name: [operationName], root: file.path, path: operationFile.path }, operationFile.path);
117
117
  });
118
118
  const handlers = operations.map((operation) => getName(operation, { type: "function", pluginKey: [pluginMswName] }));
119
- return /* @__PURE__ */ jsxRuntime.jsxs(react.File, { baseName: file.baseName, path: file.path, meta: file.meta, children: [
119
+ return /* @__PURE__ */ jsxRuntime.jsxs(react.File, { baseName: file.baseName, path: file.path, meta: file.meta, banner: plugin.output?.banner, footer: plugin.output?.footer, children: [
120
120
  imports,
121
121
  /* @__PURE__ */ jsxRuntime.jsx(chunkGODA4G5K_cjs.Handlers, { name: "handlers", handlers })
122
122
  ] });
@@ -127,5 +127,5 @@ exports.handlersGenerator = handlersGenerator;
127
127
  exports.mswGenerator = mswGenerator;
128
128
  exports.pluginMsw = pluginMsw;
129
129
  exports.pluginMswName = pluginMswName;
130
- //# sourceMappingURL=chunk-5YD7CUAH.cjs.map
131
- //# sourceMappingURL=chunk-5YD7CUAH.cjs.map
130
+ //# sourceMappingURL=chunk-2KJPEZPX.cjs.map
131
+ //# sourceMappingURL=chunk-2KJPEZPX.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/generators/mswGenerator.tsx","../src/plugin.ts","../src/generators/handlersGenerator.tsx"],"names":["createReactGenerator","useApp","useOperationManager","pluginFakerName","File","jsx","Mock","URLPath","createPlugin","transformers","pluginOasName","pluginTsName","options","path","FileManager","camelCase","renderTemplate","PluginManager","OperationGenerator","jsxs","Handlers"],"mappings":"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","file":"chunk-2KJPEZPX.cjs","sourcesContent":["import { URLPath } from '@kubb/core/utils'\nimport { pluginFakerName } from '@kubb/plugin-faker'\nimport { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { File, useApp } from '@kubb/react'\nimport { Mock } from '../components'\nimport type { PluginMsw } from '../types'\n\nexport const mswGenerator = createReactGenerator<PluginMsw>({\n name: 'msw',\n Operation({ operation }) {\n const {\n plugin: { output },\n } = useApp<PluginMsw>()\n const { getSchemaName, getName, getFile } = useOperationManager()\n\n const mock = {\n name: getName(operation, { type: 'function' }),\n file: getFile(operation),\n }\n\n const faker = {\n name: getSchemaName(operation, 'response', { pluginKey: [pluginFakerName], type: 'function' }),\n file: getFile(operation, { pluginKey: [pluginFakerName] }),\n }\n\n return (\n <File baseName={mock.file.baseName} path={mock.file.path} meta={mock.file.meta} banner={output?.banner} footer={output?.footer}>\n <File.Import name={['http']} path={'msw'} />\n {faker.file && faker.name && <File.Import extName={output?.extName} name={[faker.name]} root={mock.file.path} path={faker.file.path} />}\n\n <Mock name={mock.name} fakerName={faker.name} method={operation.method} url={new URLPath(operation.path).toURLPath()} />\n </File>\n )\n },\n})\n","import path from 'node:path'\n\nimport { FileManager, PluginManager, createPlugin } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\nimport { renderTemplate } from '@kubb/core/utils'\nimport { OperationGenerator, pluginOasName } from '@kubb/plugin-oas'\n\nimport { pluginFakerName } from '@kubb/plugin-faker'\nimport { pluginTsName } from '@kubb/plugin-ts'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'\nimport { handlersGenerator, mswGenerator } from './generators'\nimport type { PluginMsw } from './types.ts'\n\nexport const pluginMswName = 'plugin-msw' satisfies PluginMsw['name']\n\nexport const pluginMsw = createPlugin<PluginMsw>((options) => {\n const { output = { path: 'handlers' }, group, exclude = [], include, override = [], transformers = {}, handlers = false } = options\n const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`\n\n return {\n name: pluginMswName,\n output: {\n exportType: 'barrelNamed',\n ...output,\n },\n options: {},\n pre: [pluginOasName, pluginTsName, pluginFakerName],\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? FileManager.getMode(path.resolve(root, output.path))\n\n if (mode === 'single') {\n /**\n * when output is a file then we will always append to the same file(output file), see fileManager.addOrAppend\n * Other plugins then need to call addOrAppend instead of just add from the fileManager class\n */\n return path.resolve(root, output.path)\n }\n\n if (options?.tag && group?.type === 'tag') {\n const tag = camelCase(options.tag)\n\n return path.resolve(root, renderTemplate(template, { tag }), baseName)\n }\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n const resolvedName = camelCase(name, {\n suffix: type ? 'handler' : undefined,\n isFile: type === 'file',\n })\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async buildStart() {\n const [swaggerPlugin]: [Plugin<SwaggerPluginOptions>] = PluginManager.getDependedPlugins<SwaggerPluginOptions>(this.plugins, [pluginOasName])\n\n const oas = await swaggerPlugin.context.getOas()\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = FileManager.getMode(path.resolve(root, output.path))\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType: swaggerPlugin.context.contentType,\n exclude,\n include,\n override,\n mode,\n })\n\n const files = await operationGenerator.build(...[mswGenerator, handlers ? handlersGenerator : undefined].filter(Boolean))\n await this.addFile(...files)\n\n if (this.config.output.exportType) {\n const barrelFiles = await this.fileManager.getBarrelFiles({\n root,\n output,\n files: this.fileManager.files,\n meta: {\n pluginKey: this.plugin.key,\n },\n logger: this.logger,\n })\n\n await this.addFile(...barrelFiles)\n }\n },\n }\n})\n","import { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { File, useApp } from '@kubb/react'\nimport { Handlers } from '../components/Handlers.tsx'\nimport { pluginMswName } from '../plugin.ts'\nimport type { PluginMsw } from '../types'\n\nexport const handlersGenerator = createReactGenerator<PluginMsw>({\n name: 'plugin-msw',\n Operations({ operations }) {\n const { pluginManager, plugin } = useApp<PluginMsw>()\n const { getName, getFile } = useOperationManager()\n\n const file = pluginManager.getFile({ name: 'handlers', extName: '.ts', pluginKey: [pluginMswName] })\n\n const imports = operations.map((operation) => {\n const operationFile = getFile(operation, { pluginKey: [pluginMswName] })\n const operationName = getName(operation, { pluginKey: [pluginMswName], type: 'function' })\n\n return <File.Import extName={plugin.output?.extName} key={operationFile.path} name={[operationName]} root={file.path} path={operationFile.path} />\n })\n\n const handlers = operations.map((operation) => getName(operation, { type: 'function', pluginKey: [pluginMswName] }))\n\n return (\n <File baseName={file.baseName} path={file.path} meta={file.meta} banner={plugin.output?.banner} footer={plugin.output?.footer}>\n {imports}\n <Handlers name={'handlers'} handlers={handlers} />\n </File>\n )\n },\n})\n"]}
@@ -25,7 +25,7 @@ var mswGenerator = createReactGenerator({
25
25
  name: getSchemaName(operation, "response", { pluginKey: [pluginFakerName], type: "function" }),
26
26
  file: getFile(operation, { pluginKey: [pluginFakerName] })
27
27
  };
28
- return /* @__PURE__ */ jsxs(File, { baseName: mock.file.baseName, path: mock.file.path, meta: mock.file.meta, children: [
28
+ return /* @__PURE__ */ jsxs(File, { baseName: mock.file.baseName, path: mock.file.path, meta: mock.file.meta, banner: output?.banner, footer: output?.footer, children: [
29
29
  /* @__PURE__ */ jsx(File.Import, { name: ["http"], path: "msw" }),
30
30
  faker.file && faker.name && /* @__PURE__ */ jsx(File.Import, { extName: output?.extName, name: [faker.name], root: mock.file.path, path: faker.file.path }),
31
31
  /* @__PURE__ */ jsx(Mock, { name: mock.name, fakerName: faker.name, method: operation.method, url: new URLPath(operation.path).toURLPath() })
@@ -110,7 +110,7 @@ var handlersGenerator = createReactGenerator({
110
110
  return /* @__PURE__ */ jsx(File.Import, { extName: plugin.output?.extName, name: [operationName], root: file.path, path: operationFile.path }, operationFile.path);
111
111
  });
112
112
  const handlers = operations.map((operation) => getName(operation, { type: "function", pluginKey: [pluginMswName] }));
113
- return /* @__PURE__ */ jsxs(File, { baseName: file.baseName, path: file.path, meta: file.meta, children: [
113
+ return /* @__PURE__ */ jsxs(File, { baseName: file.baseName, path: file.path, meta: file.meta, banner: plugin.output?.banner, footer: plugin.output?.footer, children: [
114
114
  imports,
115
115
  /* @__PURE__ */ jsx(Handlers, { name: "handlers", handlers })
116
116
  ] });
@@ -118,5 +118,5 @@ var handlersGenerator = createReactGenerator({
118
118
  });
119
119
 
120
120
  export { handlersGenerator, mswGenerator, pluginMsw, pluginMswName };
121
- //# sourceMappingURL=chunk-XXDW7ZSY.js.map
122
- //# sourceMappingURL=chunk-XXDW7ZSY.js.map
121
+ //# sourceMappingURL=chunk-AKZGQPQJ.js.map
122
+ //# sourceMappingURL=chunk-AKZGQPQJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/generators/mswGenerator.tsx","../src/plugin.ts","../src/generators/handlersGenerator.tsx"],"names":["pluginFakerName","options","createReactGenerator","useApp","useOperationManager","jsx","File","jsxs"],"mappings":"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","file":"chunk-AKZGQPQJ.js","sourcesContent":["import { URLPath } from '@kubb/core/utils'\nimport { pluginFakerName } from '@kubb/plugin-faker'\nimport { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { File, useApp } from '@kubb/react'\nimport { Mock } from '../components'\nimport type { PluginMsw } from '../types'\n\nexport const mswGenerator = createReactGenerator<PluginMsw>({\n name: 'msw',\n Operation({ operation }) {\n const {\n plugin: { output },\n } = useApp<PluginMsw>()\n const { getSchemaName, getName, getFile } = useOperationManager()\n\n const mock = {\n name: getName(operation, { type: 'function' }),\n file: getFile(operation),\n }\n\n const faker = {\n name: getSchemaName(operation, 'response', { pluginKey: [pluginFakerName], type: 'function' }),\n file: getFile(operation, { pluginKey: [pluginFakerName] }),\n }\n\n return (\n <File baseName={mock.file.baseName} path={mock.file.path} meta={mock.file.meta} banner={output?.banner} footer={output?.footer}>\n <File.Import name={['http']} path={'msw'} />\n {faker.file && faker.name && <File.Import extName={output?.extName} name={[faker.name]} root={mock.file.path} path={faker.file.path} />}\n\n <Mock name={mock.name} fakerName={faker.name} method={operation.method} url={new URLPath(operation.path).toURLPath()} />\n </File>\n )\n },\n})\n","import path from 'node:path'\n\nimport { FileManager, PluginManager, createPlugin } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\nimport { renderTemplate } from '@kubb/core/utils'\nimport { OperationGenerator, pluginOasName } from '@kubb/plugin-oas'\n\nimport { pluginFakerName } from '@kubb/plugin-faker'\nimport { pluginTsName } from '@kubb/plugin-ts'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'\nimport { handlersGenerator, mswGenerator } from './generators'\nimport type { PluginMsw } from './types.ts'\n\nexport const pluginMswName = 'plugin-msw' satisfies PluginMsw['name']\n\nexport const pluginMsw = createPlugin<PluginMsw>((options) => {\n const { output = { path: 'handlers' }, group, exclude = [], include, override = [], transformers = {}, handlers = false } = options\n const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`\n\n return {\n name: pluginMswName,\n output: {\n exportType: 'barrelNamed',\n ...output,\n },\n options: {},\n pre: [pluginOasName, pluginTsName, pluginFakerName],\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? FileManager.getMode(path.resolve(root, output.path))\n\n if (mode === 'single') {\n /**\n * when output is a file then we will always append to the same file(output file), see fileManager.addOrAppend\n * Other plugins then need to call addOrAppend instead of just add from the fileManager class\n */\n return path.resolve(root, output.path)\n }\n\n if (options?.tag && group?.type === 'tag') {\n const tag = camelCase(options.tag)\n\n return path.resolve(root, renderTemplate(template, { tag }), baseName)\n }\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n const resolvedName = camelCase(name, {\n suffix: type ? 'handler' : undefined,\n isFile: type === 'file',\n })\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async buildStart() {\n const [swaggerPlugin]: [Plugin<SwaggerPluginOptions>] = PluginManager.getDependedPlugins<SwaggerPluginOptions>(this.plugins, [pluginOasName])\n\n const oas = await swaggerPlugin.context.getOas()\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = FileManager.getMode(path.resolve(root, output.path))\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType: swaggerPlugin.context.contentType,\n exclude,\n include,\n override,\n mode,\n })\n\n const files = await operationGenerator.build(...[mswGenerator, handlers ? handlersGenerator : undefined].filter(Boolean))\n await this.addFile(...files)\n\n if (this.config.output.exportType) {\n const barrelFiles = await this.fileManager.getBarrelFiles({\n root,\n output,\n files: this.fileManager.files,\n meta: {\n pluginKey: this.plugin.key,\n },\n logger: this.logger,\n })\n\n await this.addFile(...barrelFiles)\n }\n },\n }\n})\n","import { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { File, useApp } from '@kubb/react'\nimport { Handlers } from '../components/Handlers.tsx'\nimport { pluginMswName } from '../plugin.ts'\nimport type { PluginMsw } from '../types'\n\nexport const handlersGenerator = createReactGenerator<PluginMsw>({\n name: 'plugin-msw',\n Operations({ operations }) {\n const { pluginManager, plugin } = useApp<PluginMsw>()\n const { getName, getFile } = useOperationManager()\n\n const file = pluginManager.getFile({ name: 'handlers', extName: '.ts', pluginKey: [pluginMswName] })\n\n const imports = operations.map((operation) => {\n const operationFile = getFile(operation, { pluginKey: [pluginMswName] })\n const operationName = getName(operation, { pluginKey: [pluginMswName], type: 'function' })\n\n return <File.Import extName={plugin.output?.extName} key={operationFile.path} name={[operationName]} root={file.path} path={operationFile.path} />\n })\n\n const handlers = operations.map((operation) => getName(operation, { type: 'function', pluginKey: [pluginMswName] }))\n\n return (\n <File baseName={file.baseName} path={file.path} meta={file.meta} banner={plugin.output?.banner} footer={plugin.output?.footer}>\n {imports}\n <Handlers name={'handlers'} handlers={handlers} />\n </File>\n )\n },\n})\n"]}
@@ -1,17 +1,17 @@
1
1
  'use strict';
2
2
 
3
- var chunk5YD7CUAH_cjs = require('./chunk-5YD7CUAH.cjs');
3
+ var chunk2KJPEZPX_cjs = require('./chunk-2KJPEZPX.cjs');
4
4
  require('./chunk-GODA4G5K.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "handlersGenerator", {
9
9
  enumerable: true,
10
- get: function () { return chunk5YD7CUAH_cjs.handlersGenerator; }
10
+ get: function () { return chunk2KJPEZPX_cjs.handlersGenerator; }
11
11
  });
12
12
  Object.defineProperty(exports, "mswGenerator", {
13
13
  enumerable: true,
14
- get: function () { return chunk5YD7CUAH_cjs.mswGenerator; }
14
+ get: function () { return chunk2KJPEZPX_cjs.mswGenerator; }
15
15
  });
16
16
  //# sourceMappingURL=generators.cjs.map
17
17
  //# sourceMappingURL=generators.cjs.map
@@ -1,7 +1,6 @@
1
1
  import * as _kubb_plugin_oas from '@kubb/plugin-oas';
2
- import { P as PluginMsw } from './types-cZ4a5aFe.cjs';
2
+ import { P as PluginMsw } from './types-D5Xedaf6.cjs';
3
3
  import '@kubb/core';
4
- import '@kubb/fs/types';
5
4
 
6
5
  declare const mswGenerator: _kubb_plugin_oas.Generator<PluginMsw>;
7
6
 
@@ -1,7 +1,6 @@
1
1
  import * as _kubb_plugin_oas from '@kubb/plugin-oas';
2
- import { P as PluginMsw } from './types-cZ4a5aFe.js';
2
+ import { P as PluginMsw } from './types-D5Xedaf6.js';
3
3
  import '@kubb/core';
4
- import '@kubb/fs/types';
5
4
 
6
5
  declare const mswGenerator: _kubb_plugin_oas.Generator<PluginMsw>;
7
6
 
@@ -1,4 +1,4 @@
1
- export { handlersGenerator, mswGenerator } from './chunk-XXDW7ZSY.js';
1
+ export { handlersGenerator, mswGenerator } from './chunk-AKZGQPQJ.js';
2
2
  import './chunk-6M2QU6UL.js';
3
3
  //# sourceMappingURL=generators.js.map
4
4
  //# sourceMappingURL=generators.js.map
package/dist/index.cjs CHANGED
@@ -1,17 +1,17 @@
1
1
  'use strict';
2
2
 
3
- var chunk5YD7CUAH_cjs = require('./chunk-5YD7CUAH.cjs');
3
+ var chunk2KJPEZPX_cjs = require('./chunk-2KJPEZPX.cjs');
4
4
  require('./chunk-GODA4G5K.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "pluginMsw", {
9
9
  enumerable: true,
10
- get: function () { return chunk5YD7CUAH_cjs.pluginMsw; }
10
+ get: function () { return chunk2KJPEZPX_cjs.pluginMsw; }
11
11
  });
12
12
  Object.defineProperty(exports, "pluginMswName", {
13
13
  enumerable: true,
14
- get: function () { return chunk5YD7CUAH_cjs.pluginMswName; }
14
+ get: function () { return chunk2KJPEZPX_cjs.pluginMswName; }
15
15
  });
16
16
  //# sourceMappingURL=index.cjs.map
17
17
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.cts CHANGED
@@ -1,6 +1,5 @@
1
1
  import * as _kubb_core from '@kubb/core';
2
- import { O as Options, P as PluginMsw } from './types-cZ4a5aFe.cjs';
3
- import '@kubb/fs/types';
2
+ import { O as Options, P as PluginMsw } from './types-D5Xedaf6.cjs';
4
3
  import '@kubb/plugin-oas';
5
4
 
6
5
  declare const pluginMswName = "plugin-msw";
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import * as _kubb_core from '@kubb/core';
2
- import { O as Options, P as PluginMsw } from './types-cZ4a5aFe.js';
3
- import '@kubb/fs/types';
2
+ import { O as Options, P as PluginMsw } from './types-D5Xedaf6.js';
4
3
  import '@kubb/plugin-oas';
5
4
 
6
5
  declare const pluginMswName = "plugin-msw";
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { pluginMsw, pluginMswName } from './chunk-XXDW7ZSY.js';
1
+ export { pluginMsw, pluginMswName } from './chunk-AKZGQPQJ.js';
2
2
  import './chunk-6M2QU6UL.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
@@ -1,29 +1,11 @@
1
- import { PluginFactoryOptions, ResolveNameParams } from '@kubb/core';
2
- import * as KubbFile from '@kubb/fs/types';
1
+ import { PluginFactoryOptions, Output, ResolveNameParams } from '@kubb/core';
3
2
  import { ResolvePathOptions, Exclude, Include, Override } from '@kubb/plugin-oas';
4
3
 
5
4
  type Options = {
6
- output?: {
7
- /**
8
- * Relative path to save the MSW mocks.
9
- * When output is a file it will save all models inside that file else it will create a file per schema item.
10
- * @default 'mocks'
11
- */
12
- path: string;
13
- /**
14
- * Name to be used for the `export * as {{exportAs}} from './'`
15
- */
16
- exportAs?: string;
17
- /**
18
- * Add an extension to the generated imports and exports, default it will not use an extension
19
- */
20
- extName?: KubbFile.Extname;
21
- /**
22
- * Define what needs to exported, here you can also disable the export of barrel files
23
- * @default `'barrel'`
24
- */
25
- exportType?: 'barrel' | 'barrelNamed' | false;
26
- };
5
+ /**
6
+ * @default 'mocks'
7
+ */
8
+ output?: Output;
27
9
  /**
28
10
  * Group the MSW mocks based on the provided name.
29
11
  */
@@ -1,29 +1,11 @@
1
- import { PluginFactoryOptions, ResolveNameParams } from '@kubb/core';
2
- import * as KubbFile from '@kubb/fs/types';
1
+ import { PluginFactoryOptions, Output, ResolveNameParams } from '@kubb/core';
3
2
  import { ResolvePathOptions, Exclude, Include, Override } from '@kubb/plugin-oas';
4
3
 
5
4
  type Options = {
6
- output?: {
7
- /**
8
- * Relative path to save the MSW mocks.
9
- * When output is a file it will save all models inside that file else it will create a file per schema item.
10
- * @default 'mocks'
11
- */
12
- path: string;
13
- /**
14
- * Name to be used for the `export * as {{exportAs}} from './'`
15
- */
16
- exportAs?: string;
17
- /**
18
- * Add an extension to the generated imports and exports, default it will not use an extension
19
- */
20
- extName?: KubbFile.Extname;
21
- /**
22
- * Define what needs to exported, here you can also disable the export of barrel files
23
- * @default `'barrel'`
24
- */
25
- exportType?: 'barrel' | 'barrelNamed' | false;
26
- };
5
+ /**
6
+ * @default 'mocks'
7
+ */
8
+ output?: Output;
27
9
  /**
28
10
  * Group the MSW mocks based on the provided name.
29
11
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/plugin-msw",
3
- "version": "3.0.0-alpha.18",
3
+ "version": "3.0.0-alpha.19",
4
4
  "description": "Generator swagger",
5
5
  "keywords": [
6
6
  "typescript",
@@ -74,24 +74,24 @@
74
74
  "!/**/__tests__/**"
75
75
  ],
76
76
  "dependencies": {
77
- "@kubb/core": "3.0.0-alpha.18",
78
- "@kubb/fs": "3.0.0-alpha.18",
79
- "@kubb/oas": "3.0.0-alpha.18",
80
- "@kubb/plugin-faker": "3.0.0-alpha.18",
81
- "@kubb/plugin-oas": "3.0.0-alpha.18",
82
- "@kubb/plugin-ts": "3.0.0-alpha.18",
83
- "@kubb/react": "3.0.0-alpha.18"
77
+ "@kubb/core": "3.0.0-alpha.19",
78
+ "@kubb/fs": "3.0.0-alpha.19",
79
+ "@kubb/oas": "3.0.0-alpha.19",
80
+ "@kubb/plugin-faker": "3.0.0-alpha.19",
81
+ "@kubb/plugin-oas": "3.0.0-alpha.19",
82
+ "@kubb/plugin-ts": "3.0.0-alpha.19",
83
+ "@kubb/react": "3.0.0-alpha.19"
84
84
  },
85
85
  "devDependencies": {
86
86
  "@types/react": "^18.3.5",
87
87
  "react": "^18.3.1",
88
88
  "tsup": "^8.2.4",
89
89
  "typescript": "^5.6.2",
90
- "@kubb/config-ts": "3.0.0-alpha.18",
91
- "@kubb/config-tsup": "3.0.0-alpha.18"
90
+ "@kubb/config-ts": "3.0.0-alpha.19",
91
+ "@kubb/config-tsup": "3.0.0-alpha.19"
92
92
  },
93
93
  "peerDependencies": {
94
- "@kubb/react": "3.0.0-alpha.18"
94
+ "@kubb/react": "3.0.0-alpha.19"
95
95
  },
96
96
  "engines": {
97
97
  "node": ">=20"
@@ -23,7 +23,7 @@ export const handlersGenerator = createReactGenerator<PluginMsw>({
23
23
  const handlers = operations.map((operation) => getName(operation, { type: 'function', pluginKey: [pluginMswName] }))
24
24
 
25
25
  return (
26
- <File baseName={file.baseName} path={file.path} meta={file.meta}>
26
+ <File baseName={file.baseName} path={file.path} meta={file.meta} banner={plugin.output?.banner} footer={plugin.output?.footer}>
27
27
  {imports}
28
28
  <Handlers name={'handlers'} handlers={handlers} />
29
29
  </File>
@@ -25,7 +25,7 @@ export const mswGenerator = createReactGenerator<PluginMsw>({
25
25
  }
26
26
 
27
27
  return (
28
- <File baseName={mock.file.baseName} path={mock.file.path} meta={mock.file.meta}>
28
+ <File baseName={mock.file.baseName} path={mock.file.path} meta={mock.file.meta} banner={output?.banner} footer={output?.footer}>
29
29
  <File.Import name={['http']} path={'msw'} />
30
30
  {faker.file && faker.name && <File.Import extName={output?.extName} name={[faker.name]} root={mock.file.path} path={faker.file.path} />}
31
31
 
package/src/types.ts CHANGED
@@ -1,30 +1,12 @@
1
- import type { PluginFactoryOptions, ResolveNameParams } from '@kubb/core'
2
- import type * as KubbFile from '@kubb/fs/types'
1
+ import type { Output, PluginFactoryOptions, ResolveNameParams } from '@kubb/core'
3
2
 
4
3
  import type { Exclude, Include, Override, ResolvePathOptions } from '@kubb/plugin-oas'
5
4
 
6
5
  export type Options = {
7
- output?: {
8
- /**
9
- * Relative path to save the MSW mocks.
10
- * When output is a file it will save all models inside that file else it will create a file per schema item.
11
- * @default 'mocks'
12
- */
13
- path: string
14
- /**
15
- * Name to be used for the `export * as {{exportAs}} from './'`
16
- */
17
- exportAs?: string
18
- /**
19
- * Add an extension to the generated imports and exports, default it will not use an extension
20
- */
21
- extName?: KubbFile.Extname
22
- /**
23
- * Define what needs to exported, here you can also disable the export of barrel files
24
- * @default `'barrel'`
25
- */
26
- exportType?: 'barrel' | 'barrelNamed' | false
27
- }
6
+ /**
7
+ * @default 'mocks'
8
+ */
9
+ output?: Output
28
10
  /**
29
11
  * Group the MSW mocks based on the provided name.
30
12
  */
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/generators/mswGenerator.tsx","../src/plugin.ts","../src/generators/handlersGenerator.tsx"],"names":["createReactGenerator","useApp","useOperationManager","pluginFakerName","jsxs","File","jsx","Mock","URLPath","createPlugin","transformers","pluginOasName","pluginTsName","options","path","FileManager","camelCase","renderTemplate","PluginManager","OperationGenerator","Handlers"],"mappings":";;;;;;;;;;;;;;;;;;AAQO,IAAM,eAAeA,8BAAgC,CAAA;AAAA,EAC1D,IAAM,EAAA,KAAA;AAAA,EACN,SAAA,CAAU,EAAE,SAAA,EAAa,EAAA;AACvB,IAAM,MAAA;AAAA,MACJ,MAAA,EAAQ,EAAE,MAAO,EAAA;AAAA,QACfC,YAAkB,EAAA,CAAA;AACtB,IAAA,MAAM,EAAE,aAAA,EAAe,OAAS,EAAA,OAAA,KAAYC,yBAAoB,EAAA,CAAA;AAEhE,IAAA,MAAM,IAAO,GAAA;AAAA,MACX,MAAM,OAAQ,CAAA,SAAA,EAAW,EAAE,IAAA,EAAM,YAAY,CAAA;AAAA,MAC7C,IAAA,EAAM,QAAQ,SAAS,CAAA;AAAA,KACzB,CAAA;AAEA,IAAA,MAAM,KAAQ,GAAA;AAAA,MACZ,IAAA,EAAM,aAAc,CAAA,SAAA,EAAW,UAAY,EAAA,EAAE,SAAW,EAAA,CAACC,2BAAe,CAAA,EAAG,IAAM,EAAA,UAAA,EAAY,CAAA;AAAA,MAC7F,IAAA,EAAM,QAAQ,SAAW,EAAA,EAAE,WAAW,CAACA,2BAAe,GAAG,CAAA;AAAA,KAC3D,CAAA;AAEA,IAAA,uBACGC,eAAA,CAAAC,UAAA,EAAA,EAAK,QAAU,EAAA,IAAA,CAAK,IAAK,CAAA,QAAA,EAAU,IAAM,EAAA,IAAA,CAAK,IAAK,CAAA,IAAA,EAAM,IAAM,EAAA,IAAA,CAAK,KAAK,IACxE,EAAA,QAAA,EAAA;AAAA,sBAACC,cAAA,CAAAD,UAAA,CAAK,QAAL,EAAY,IAAA,EAAM,CAAC,MAAM,CAAA,EAAG,MAAM,KAAO,EAAA,CAAA;AAAA,MACzC,KAAA,CAAM,QAAQ,KAAM,CAAA,IAAA,mCAASA,UAAK,CAAA,MAAA,EAAL,EAAY,OAAA,EAAS,MAAQ,EAAA,OAAA,EAAS,MAAM,CAAC,KAAA,CAAM,IAAI,CAAA,EAAG,IAAM,EAAA,IAAA,CAAK,KAAK,IAAM,EAAA,IAAA,EAAM,KAAM,CAAA,IAAA,CAAK,IAAM,EAAA,CAAA;AAAA,qCAEpIE,sBAAK,EAAA,EAAA,IAAA,EAAM,KAAK,IAAM,EAAA,SAAA,EAAW,MAAM,IAAM,EAAA,MAAA,EAAQ,SAAU,CAAA,MAAA,EAAQ,KAAK,IAAIC,aAAA,CAAQ,UAAU,IAAI,CAAA,CAAE,WAAa,EAAA,CAAA;AAAA,KACxH,EAAA,CAAA,CAAA;AAAA,GAEJ;AACF,CAAC,EAAA;ACpBM,IAAM,aAAgB,GAAA,aAAA;AAEhB,IAAA,SAAA,GAAYC,iBAAwB,CAAA,CAAC,OAAY,KAAA;AAC5D,EAAA,MAAM,EAAE,MAAS,GAAA,EAAE,MAAM,UAAW,EAAA,EAAG,OAAO,OAAU,GAAA,IAAI,OAAS,EAAA,QAAA,GAAW,EAAI,gBAAAC,cAAA,GAAe,EAAI,EAAA,QAAA,GAAW,OAAU,GAAA,OAAA,CAAA;AAC5H,EAAA,MAAM,WAAW,KAAO,EAAA,MAAA,GAAS,MAAM,MAAS,GAAA,CAAA,EAAG,OAAO,IAAI,CAAA,kBAAA,CAAA,CAAA;AAE9D,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,aAAA;AAAA,IACN,MAAQ,EAAA;AAAA,MACN,UAAY,EAAA,aAAA;AAAA,MACZ,GAAG,MAAA;AAAA,KACL;AAAA,IACA,SAAS,EAAC;AAAA,IACV,GAAK,EAAA,CAACC,uBAAe,EAAAC,qBAAA,EAAcT,2BAAe,CAAA;AAAA,IAClD,WAAA,CAAY,QAAU,EAAA,QAAA,EAAUU,QAAS,EAAA;AACvC,MAAM,MAAA,IAAA,GAAOC,sBAAK,OAAQ,CAAA,IAAA,CAAK,OAAO,IAAM,EAAA,IAAA,CAAK,MAAO,CAAA,MAAA,CAAO,IAAI,CAAA,CAAA;AACnE,MAAM,MAAA,IAAA,GAAO,YAAYC,gBAAY,CAAA,OAAA,CAAQD,sBAAK,OAAQ,CAAA,IAAA,EAAM,MAAO,CAAA,IAAI,CAAC,CAAA,CAAA;AAE5E,MAAA,IAAI,SAAS,QAAU,EAAA;AAKrB,QAAA,OAAOA,qBAAK,CAAA,OAAA,CAAQ,IAAM,EAAA,MAAA,CAAO,IAAI,CAAA,CAAA;AAAA,OACvC;AAEA,MAAA,IAAID,QAAS,EAAA,GAAA,IAAO,KAAO,EAAA,IAAA,KAAS,KAAO,EAAA;AACzC,QAAM,MAAA,GAAA,GAAMG,sBAAUH,CAAAA,QAAAA,CAAQ,GAAG,CAAA,CAAA;AAEjC,QAAO,OAAAC,qBAAA,CAAK,QAAQ,IAAM,EAAAG,oBAAA,CAAe,UAAU,EAAE,GAAA,EAAK,CAAA,EAAG,QAAQ,CAAA,CAAA;AAAA,OACvE;AAEA,MAAA,OAAOH,qBAAK,CAAA,OAAA,CAAQ,IAAM,EAAA,MAAA,CAAO,MAAM,QAAQ,CAAA,CAAA;AAAA,KACjD;AAAA,IACA,WAAA,CAAY,MAAM,IAAM,EAAA;AACtB,MAAM,MAAA,YAAA,GAAeE,uBAAU,IAAM,EAAA;AAAA,QACnC,MAAA,EAAQ,OAAO,SAAY,GAAA,KAAA,CAAA;AAAA,QAC3B,QAAQ,IAAS,KAAA,MAAA;AAAA,OAClB,CAAA,CAAA;AACD,MAAA,IAAI,IAAM,EAAA;AACR,QAAA,OAAON,cAAc,EAAA,IAAA,GAAO,YAAc,EAAA,IAAI,CAAK,IAAA,YAAA,CAAA;AAAA,OACrD;AAEA,MAAO,OAAA,YAAA,CAAA;AAAA,KACT;AAAA,IACA,MAAM,UAAa,GAAA;AACjB,MAAM,MAAA,CAAC,aAAa,CAAoC,GAAAQ,kBAAA,CAAc,mBAAyC,IAAK,CAAA,OAAA,EAAS,CAACP,uBAAa,CAAC,CAAA,CAAA;AAE5I,MAAA,MAAM,GAAM,GAAA,MAAM,aAAc,CAAA,OAAA,CAAQ,MAAO,EAAA,CAAA;AAC/C,MAAM,MAAA,IAAA,GAAOG,sBAAK,OAAQ,CAAA,IAAA,CAAK,OAAO,IAAM,EAAA,IAAA,CAAK,MAAO,CAAA,MAAA,CAAO,IAAI,CAAA,CAAA;AACnE,MAAM,MAAA,IAAA,GAAOC,iBAAY,OAAQ,CAAAD,qBAAA,CAAK,QAAQ,IAAM,EAAA,MAAA,CAAO,IAAI,CAAC,CAAA,CAAA;AAEhE,MAAA,MAAM,kBAAqB,GAAA,IAAIK,4BAAmB,CAAA,IAAA,CAAK,OAAO,OAAS,EAAA;AAAA,QACrE,GAAA;AAAA,QACA,eAAe,IAAK,CAAA,aAAA;AAAA,QACpB,QAAQ,IAAK,CAAA,MAAA;AAAA,QACb,WAAA,EAAa,cAAc,OAAQ,CAAA,WAAA;AAAA,QACnC,OAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA;AAAA,QACA,IAAA;AAAA,OACD,CAAA,CAAA;AAED,MAAA,MAAM,KAAQ,GAAA,MAAM,kBAAmB,CAAA,KAAA,CAAM,GAAG,CAAC,YAAc,EAAA,QAAA,GAAW,iBAAoB,GAAA,KAAA,CAAS,CAAE,CAAA,MAAA,CAAO,OAAO,CAAC,CAAA,CAAA;AACxH,MAAM,MAAA,IAAA,CAAK,OAAQ,CAAA,GAAG,KAAK,CAAA,CAAA;AAE3B,MAAI,IAAA,IAAA,CAAK,MAAO,CAAA,MAAA,CAAO,UAAY,EAAA;AACjC,QAAA,MAAM,WAAc,GAAA,MAAM,IAAK,CAAA,WAAA,CAAY,cAAe,CAAA;AAAA,UACxD,IAAA;AAAA,UACA,MAAA;AAAA,UACA,KAAA,EAAO,KAAK,WAAY,CAAA,KAAA;AAAA,UACxB,IAAM,EAAA;AAAA,YACJ,SAAA,EAAW,KAAK,MAAO,CAAA,GAAA;AAAA,WACzB;AAAA,UACA,QAAQ,IAAK,CAAA,MAAA;AAAA,SACd,CAAA,CAAA;AAED,QAAM,MAAA,IAAA,CAAK,OAAQ,CAAA,GAAG,WAAW,CAAA,CAAA;AAAA,OACnC;AAAA,KACF;AAAA,GACF,CAAA;AACF,CAAC,EAAA;ACzFM,IAAM,oBAAoBnB,8BAAgC,CAAA;AAAA,EAC/D,IAAM,EAAA,YAAA;AAAA,EACN,UAAA,CAAW,EAAE,UAAA,EAAc,EAAA;AACzB,IAAA,MAAM,EAAE,aAAA,EAAe,MAAO,EAAA,GAAIC,YAAkB,EAAA,CAAA;AACpD,IAAA,MAAM,EAAE,OAAA,EAAS,OAAQ,EAAA,GAAIC,yBAAoB,EAAA,CAAA;AAEjD,IAAA,MAAM,IAAO,GAAA,aAAA,CAAc,OAAQ,CAAA,EAAE,IAAM,EAAA,UAAA,EAAY,OAAS,EAAA,KAAA,EAAO,SAAW,EAAA,CAAC,aAAa,CAAA,EAAG,CAAA,CAAA;AAEnG,IAAA,MAAM,OAAU,GAAA,UAAA,CAAW,GAAI,CAAA,CAAC,SAAc,KAAA;AAC5C,MAAM,MAAA,aAAA,GAAgB,QAAQ,SAAW,EAAA,EAAE,WAAW,CAAC,aAAa,GAAG,CAAA,CAAA;AACvE,MAAM,MAAA,aAAA,GAAgB,OAAQ,CAAA,SAAA,EAAW,EAAE,SAAA,EAAW,CAAC,aAAa,CAAA,EAAG,IAAM,EAAA,UAAA,EAAY,CAAA,CAAA;AAEzF,MAAO,uBAAAI,eAACD,UAAK,CAAA,MAAA,EAAL,EAAY,OAAS,EAAA,MAAA,CAAO,QAAQ,OAAkC,EAAA,IAAA,EAAM,CAAC,aAAa,CAAA,EAAG,MAAM,IAAK,CAAA,IAAA,EAAM,MAAM,aAAc,CAAA,IAAA,EAAA,EAAhF,cAAc,IAAwE,CAAA,CAAA;AAAA,KACjJ,CAAA,CAAA;AAED,IAAA,MAAM,QAAW,GAAA,UAAA,CAAW,GAAI,CAAA,CAAC,cAAc,OAAQ,CAAA,SAAA,EAAW,EAAE,IAAA,EAAM,YAAY,SAAW,EAAA,CAAC,aAAa,CAAA,EAAG,CAAC,CAAA,CAAA;AAEnH,IAAA,uBACED,eAAAA,CAACC,UAAA,EAAA,EAAK,QAAU,EAAA,IAAA,CAAK,QAAU,EAAA,IAAA,EAAM,IAAK,CAAA,IAAA,EAAM,IAAM,EAAA,IAAA,CAAK,IACxD,EAAA,QAAA,EAAA;AAAA,MAAA,OAAA;AAAA,sBACDC,cAAAA,CAACc,0BAAS,EAAA,EAAA,IAAA,EAAM,YAAY,QAAoB,EAAA,CAAA;AAAA,KAClD,EAAA,CAAA,CAAA;AAAA,GAEJ;AACF,CAAC","file":"chunk-5YD7CUAH.cjs","sourcesContent":["import { URLPath } from '@kubb/core/utils'\nimport { pluginFakerName } from '@kubb/plugin-faker'\nimport { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { File, useApp } from '@kubb/react'\nimport { Mock } from '../components'\nimport type { PluginMsw } from '../types'\n\nexport const mswGenerator = createReactGenerator<PluginMsw>({\n name: 'msw',\n Operation({ operation }) {\n const {\n plugin: { output },\n } = useApp<PluginMsw>()\n const { getSchemaName, getName, getFile } = useOperationManager()\n\n const mock = {\n name: getName(operation, { type: 'function' }),\n file: getFile(operation),\n }\n\n const faker = {\n name: getSchemaName(operation, 'response', { pluginKey: [pluginFakerName], type: 'function' }),\n file: getFile(operation, { pluginKey: [pluginFakerName] }),\n }\n\n return (\n <File baseName={mock.file.baseName} path={mock.file.path} meta={mock.file.meta}>\n <File.Import name={['http']} path={'msw'} />\n {faker.file && faker.name && <File.Import extName={output?.extName} name={[faker.name]} root={mock.file.path} path={faker.file.path} />}\n\n <Mock name={mock.name} fakerName={faker.name} method={operation.method} url={new URLPath(operation.path).toURLPath()} />\n </File>\n )\n },\n})\n","import path from 'node:path'\n\nimport { FileManager, PluginManager, createPlugin } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\nimport { renderTemplate } from '@kubb/core/utils'\nimport { OperationGenerator, pluginOasName } from '@kubb/plugin-oas'\n\nimport { pluginFakerName } from '@kubb/plugin-faker'\nimport { pluginTsName } from '@kubb/plugin-ts'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'\nimport { handlersGenerator, mswGenerator } from './generators'\nimport type { PluginMsw } from './types.ts'\n\nexport const pluginMswName = 'plugin-msw' satisfies PluginMsw['name']\n\nexport const pluginMsw = createPlugin<PluginMsw>((options) => {\n const { output = { path: 'handlers' }, group, exclude = [], include, override = [], transformers = {}, handlers = false } = options\n const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`\n\n return {\n name: pluginMswName,\n output: {\n exportType: 'barrelNamed',\n ...output,\n },\n options: {},\n pre: [pluginOasName, pluginTsName, pluginFakerName],\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? FileManager.getMode(path.resolve(root, output.path))\n\n if (mode === 'single') {\n /**\n * when output is a file then we will always append to the same file(output file), see fileManager.addOrAppend\n * Other plugins then need to call addOrAppend instead of just add from the fileManager class\n */\n return path.resolve(root, output.path)\n }\n\n if (options?.tag && group?.type === 'tag') {\n const tag = camelCase(options.tag)\n\n return path.resolve(root, renderTemplate(template, { tag }), baseName)\n }\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n const resolvedName = camelCase(name, {\n suffix: type ? 'handler' : undefined,\n isFile: type === 'file',\n })\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async buildStart() {\n const [swaggerPlugin]: [Plugin<SwaggerPluginOptions>] = PluginManager.getDependedPlugins<SwaggerPluginOptions>(this.plugins, [pluginOasName])\n\n const oas = await swaggerPlugin.context.getOas()\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = FileManager.getMode(path.resolve(root, output.path))\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType: swaggerPlugin.context.contentType,\n exclude,\n include,\n override,\n mode,\n })\n\n const files = await operationGenerator.build(...[mswGenerator, handlers ? handlersGenerator : undefined].filter(Boolean))\n await this.addFile(...files)\n\n if (this.config.output.exportType) {\n const barrelFiles = await this.fileManager.getBarrelFiles({\n root,\n output,\n files: this.fileManager.files,\n meta: {\n pluginKey: this.plugin.key,\n },\n logger: this.logger,\n })\n\n await this.addFile(...barrelFiles)\n }\n },\n }\n})\n","import { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { File, useApp } from '@kubb/react'\nimport { Handlers } from '../components/Handlers.tsx'\nimport { pluginMswName } from '../plugin.ts'\nimport type { PluginMsw } from '../types'\n\nexport const handlersGenerator = createReactGenerator<PluginMsw>({\n name: 'plugin-msw',\n Operations({ operations }) {\n const { pluginManager, plugin } = useApp<PluginMsw>()\n const { getName, getFile } = useOperationManager()\n\n const file = pluginManager.getFile({ name: 'handlers', extName: '.ts', pluginKey: [pluginMswName] })\n\n const imports = operations.map((operation) => {\n const operationFile = getFile(operation, { pluginKey: [pluginMswName] })\n const operationName = getName(operation, { pluginKey: [pluginMswName], type: 'function' })\n\n return <File.Import extName={plugin.output?.extName} key={operationFile.path} name={[operationName]} root={file.path} path={operationFile.path} />\n })\n\n const handlers = operations.map((operation) => getName(operation, { type: 'function', pluginKey: [pluginMswName] }))\n\n return (\n <File baseName={file.baseName} path={file.path} meta={file.meta}>\n {imports}\n <Handlers name={'handlers'} handlers={handlers} />\n </File>\n )\n },\n})\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/generators/mswGenerator.tsx","../src/plugin.ts","../src/generators/handlersGenerator.tsx"],"names":["pluginFakerName","options","createReactGenerator","useApp","useOperationManager","jsx","File","jsxs"],"mappings":"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","file":"chunk-XXDW7ZSY.js","sourcesContent":["import { URLPath } from '@kubb/core/utils'\nimport { pluginFakerName } from '@kubb/plugin-faker'\nimport { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { File, useApp } from '@kubb/react'\nimport { Mock } from '../components'\nimport type { PluginMsw } from '../types'\n\nexport const mswGenerator = createReactGenerator<PluginMsw>({\n name: 'msw',\n Operation({ operation }) {\n const {\n plugin: { output },\n } = useApp<PluginMsw>()\n const { getSchemaName, getName, getFile } = useOperationManager()\n\n const mock = {\n name: getName(operation, { type: 'function' }),\n file: getFile(operation),\n }\n\n const faker = {\n name: getSchemaName(operation, 'response', { pluginKey: [pluginFakerName], type: 'function' }),\n file: getFile(operation, { pluginKey: [pluginFakerName] }),\n }\n\n return (\n <File baseName={mock.file.baseName} path={mock.file.path} meta={mock.file.meta}>\n <File.Import name={['http']} path={'msw'} />\n {faker.file && faker.name && <File.Import extName={output?.extName} name={[faker.name]} root={mock.file.path} path={faker.file.path} />}\n\n <Mock name={mock.name} fakerName={faker.name} method={operation.method} url={new URLPath(operation.path).toURLPath()} />\n </File>\n )\n },\n})\n","import path from 'node:path'\n\nimport { FileManager, PluginManager, createPlugin } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\nimport { renderTemplate } from '@kubb/core/utils'\nimport { OperationGenerator, pluginOasName } from '@kubb/plugin-oas'\n\nimport { pluginFakerName } from '@kubb/plugin-faker'\nimport { pluginTsName } from '@kubb/plugin-ts'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'\nimport { handlersGenerator, mswGenerator } from './generators'\nimport type { PluginMsw } from './types.ts'\n\nexport const pluginMswName = 'plugin-msw' satisfies PluginMsw['name']\n\nexport const pluginMsw = createPlugin<PluginMsw>((options) => {\n const { output = { path: 'handlers' }, group, exclude = [], include, override = [], transformers = {}, handlers = false } = options\n const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`\n\n return {\n name: pluginMswName,\n output: {\n exportType: 'barrelNamed',\n ...output,\n },\n options: {},\n pre: [pluginOasName, pluginTsName, pluginFakerName],\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? FileManager.getMode(path.resolve(root, output.path))\n\n if (mode === 'single') {\n /**\n * when output is a file then we will always append to the same file(output file), see fileManager.addOrAppend\n * Other plugins then need to call addOrAppend instead of just add from the fileManager class\n */\n return path.resolve(root, output.path)\n }\n\n if (options?.tag && group?.type === 'tag') {\n const tag = camelCase(options.tag)\n\n return path.resolve(root, renderTemplate(template, { tag }), baseName)\n }\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n const resolvedName = camelCase(name, {\n suffix: type ? 'handler' : undefined,\n isFile: type === 'file',\n })\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async buildStart() {\n const [swaggerPlugin]: [Plugin<SwaggerPluginOptions>] = PluginManager.getDependedPlugins<SwaggerPluginOptions>(this.plugins, [pluginOasName])\n\n const oas = await swaggerPlugin.context.getOas()\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = FileManager.getMode(path.resolve(root, output.path))\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType: swaggerPlugin.context.contentType,\n exclude,\n include,\n override,\n mode,\n })\n\n const files = await operationGenerator.build(...[mswGenerator, handlers ? handlersGenerator : undefined].filter(Boolean))\n await this.addFile(...files)\n\n if (this.config.output.exportType) {\n const barrelFiles = await this.fileManager.getBarrelFiles({\n root,\n output,\n files: this.fileManager.files,\n meta: {\n pluginKey: this.plugin.key,\n },\n logger: this.logger,\n })\n\n await this.addFile(...barrelFiles)\n }\n },\n }\n})\n","import { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { File, useApp } from '@kubb/react'\nimport { Handlers } from '../components/Handlers.tsx'\nimport { pluginMswName } from '../plugin.ts'\nimport type { PluginMsw } from '../types'\n\nexport const handlersGenerator = createReactGenerator<PluginMsw>({\n name: 'plugin-msw',\n Operations({ operations }) {\n const { pluginManager, plugin } = useApp<PluginMsw>()\n const { getName, getFile } = useOperationManager()\n\n const file = pluginManager.getFile({ name: 'handlers', extName: '.ts', pluginKey: [pluginMswName] })\n\n const imports = operations.map((operation) => {\n const operationFile = getFile(operation, { pluginKey: [pluginMswName] })\n const operationName = getName(operation, { pluginKey: [pluginMswName], type: 'function' })\n\n return <File.Import extName={plugin.output?.extName} key={operationFile.path} name={[operationName]} root={file.path} path={operationFile.path} />\n })\n\n const handlers = operations.map((operation) => getName(operation, { type: 'function', pluginKey: [pluginMswName] }))\n\n return (\n <File baseName={file.baseName} path={file.path} meta={file.meta}>\n {imports}\n <Handlers name={'handlers'} handlers={handlers} />\n </File>\n )\n },\n})\n"]}