@kubb/plugin-swr 3.0.0-alpha.2 → 3.0.0-alpha.20
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.
- package/README.md +13 -4
- package/dist/chunk-7WG6LPZJ.js +185 -0
- package/dist/chunk-7WG6LPZJ.js.map +1 -0
- package/dist/chunk-DGY6XSP2.js +187 -0
- package/dist/chunk-DGY6XSP2.js.map +1 -0
- package/dist/chunk-RMG5RYPG.cjs +189 -0
- package/dist/chunk-RMG5RYPG.cjs.map +1 -0
- package/dist/chunk-WI3XUYBA.cjs +194 -0
- package/dist/chunk-WI3XUYBA.cjs.map +1 -0
- package/dist/components.cjs +15 -6
- package/dist/components.cjs.map +1 -1
- package/dist/components.d.cts +49 -6
- package/dist/components.d.ts +49 -6
- package/dist/components.js +2 -10
- package/dist/components.js.map +1 -1
- package/dist/generators.cjs +17 -0
- package/dist/generators.cjs.map +1 -0
- package/dist/generators.d.cts +10 -0
- package/dist/generators.d.ts +10 -0
- package/dist/generators.js +4 -0
- package/dist/generators.js.map +1 -0
- package/dist/index.cjs +90 -127
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -4
- package/dist/index.d.ts +1 -4
- package/dist/index.js +70 -114
- package/dist/index.js.map +1 -1
- package/dist/types-BCd4p4VZ.d.cts +127 -0
- package/dist/types-BCd4p4VZ.d.ts +127 -0
- package/package.json +22 -16
- package/src/components/Mutation.tsx +82 -227
- package/src/components/Query.tsx +86 -264
- package/src/components/QueryOptions.tsx +58 -179
- package/src/generators/__snapshots__/clientDataReturnTypeFull.ts +40 -0
- package/src/generators/__snapshots__/clientGetImportPath.ts +40 -0
- package/src/generators/__snapshots__/clientPostImportPath.ts +30 -0
- package/src/generators/__snapshots__/findByTags.ts +40 -0
- package/src/generators/__snapshots__/findByTagsPathParamsObject.ts +40 -0
- package/src/generators/__snapshots__/findByTagsWithZod.ts +40 -0
- package/src/generators/__snapshots__/getAsMutation.ts +32 -0
- package/src/generators/__snapshots__/postAsQuery.ts +39 -0
- package/src/generators/__snapshots__/updatePetById.ts +30 -0
- package/src/generators/__snapshots__/updatePetByIdPathParamsObject.ts +34 -0
- package/src/generators/index.ts +2 -0
- package/src/generators/mutationGenerator.tsx +96 -0
- package/src/generators/queryGenerator.tsx +101 -0
- package/src/plugin.ts +61 -50
- package/src/types.ts +63 -55
- package/dist/chunk-ECJ346AA.js +0 -542
- package/dist/chunk-ECJ346AA.js.map +0 -1
- package/dist/chunk-H4LHXYRJ.cjs +0 -542
- package/dist/chunk-H4LHXYRJ.cjs.map +0 -1
- package/dist/index-B3C-JOIU.d.cts +0 -299
- package/dist/index-B3C-JOIU.d.ts +0 -299
- package/src/OperationGenerator.tsx +0 -75
- package/src/components/SchemaType.tsx +0 -59
- package/src/components/__snapshots__/Mutation/Pets.ts +0 -42
- package/src/components/__snapshots__/Query/showPetById.ts +0 -55
package/dist/index.cjs
CHANGED
|
@@ -1,167 +1,130 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
2
|
|
|
3
|
+
var chunkWI3XUYBA_cjs = require('./chunk-WI3XUYBA.cjs');
|
|
4
|
+
require('./chunk-RMG5RYPG.cjs');
|
|
5
|
+
var path = require('path');
|
|
6
|
+
var core = require('@kubb/core');
|
|
7
|
+
var transformers = require('@kubb/core/transformers');
|
|
8
|
+
var utils = require('@kubb/core/utils');
|
|
9
|
+
var pluginOas = require('@kubb/plugin-oas');
|
|
10
|
+
var pluginTs = require('@kubb/plugin-ts');
|
|
11
|
+
var pluginZod = require('@kubb/plugin-zod');
|
|
3
12
|
|
|
13
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
4
14
|
|
|
5
|
-
var
|
|
15
|
+
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
6
16
|
|
|
7
|
-
// src/plugin.ts
|
|
8
|
-
var _path = require('path'); var _path2 = _interopRequireDefault(_path);
|
|
9
|
-
var _core = require('@kubb/core');
|
|
10
|
-
var _transformers = require('@kubb/core/transformers');
|
|
11
|
-
var _utils = require('@kubb/core/utils');
|
|
12
|
-
var _pluginoas = require('@kubb/plugin-oas');
|
|
13
|
-
var _utils3 = require('@kubb/plugin-oas/utils');
|
|
14
|
-
var _plugints = require('@kubb/plugin-ts');
|
|
15
|
-
var _pluginzod = require('@kubb/plugin-zod');
|
|
16
|
-
|
|
17
|
-
// src/OperationGenerator.tsx
|
|
18
|
-
|
|
19
|
-
var _components = require('@kubb/plugin-oas/components');
|
|
20
|
-
var _react = require('@kubb/react');
|
|
21
|
-
var _jsxruntime = require('@kubb/react/jsx-runtime');
|
|
22
|
-
var OperationGenerator = class extends _pluginoas.OperationGenerator {
|
|
23
|
-
async get(operation, options) {
|
|
24
|
-
const { oas, pluginManager, plugin, mode } = this.context;
|
|
25
|
-
const root = _react.createRoot.call(void 0, {
|
|
26
|
-
logger: pluginManager.logger
|
|
27
|
-
});
|
|
28
|
-
if (!_optionalChain([options, 'access', _ => _.templates, 'optionalAccess', _2 => _2.query]) || !_optionalChain([options, 'access', _3 => _3.templates, 'optionalAccess', _4 => _4.queryOptions])) {
|
|
29
|
-
return [];
|
|
30
|
-
}
|
|
31
|
-
root.render(
|
|
32
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.App, { pluginManager, plugin: { ...plugin, options }, mode, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _components.Oas, { oas, operations: [operation], generator: this, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _components.Oas.Operation, { operation, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
33
|
-
_chunkH4LHXYRJcjs.Query.File,
|
|
34
|
-
{
|
|
35
|
-
templates: {
|
|
36
|
-
query: options.templates.query,
|
|
37
|
-
queryOptions: options.templates.queryOptions
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
) }) }) })
|
|
41
|
-
);
|
|
42
|
-
return root.files;
|
|
43
|
-
}
|
|
44
|
-
async post(operation, options) {
|
|
45
|
-
const { oas, pluginManager, plugin, mode } = this.context;
|
|
46
|
-
const root = _react.createRoot.call(void 0, {
|
|
47
|
-
logger: pluginManager.logger
|
|
48
|
-
});
|
|
49
|
-
if (!_optionalChain([options, 'access', _5 => _5.templates, 'optionalAccess', _6 => _6.mutation])) {
|
|
50
|
-
return [];
|
|
51
|
-
}
|
|
52
|
-
root.render(
|
|
53
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.App, { pluginManager, plugin: { ...plugin, options }, mode, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _components.Oas, { oas, operations: [operation], generator: this, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _components.Oas.Operation, { operation, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkH4LHXYRJcjs.Mutation.File, { templates: options.templates.mutation }) }) }) })
|
|
54
|
-
);
|
|
55
|
-
return root.files;
|
|
56
|
-
}
|
|
57
|
-
async put(operation, options) {
|
|
58
|
-
return this.post(operation, options);
|
|
59
|
-
}
|
|
60
|
-
async patch(operation, options) {
|
|
61
|
-
return this.post(operation, options);
|
|
62
|
-
}
|
|
63
|
-
async delete(operation, options) {
|
|
64
|
-
return this.post(operation, options);
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
// src/plugin.ts
|
|
69
17
|
var pluginSwrName = "plugin-swr";
|
|
70
|
-
var pluginSwr =
|
|
71
|
-
const {
|
|
72
|
-
|
|
18
|
+
var pluginSwr = core.createPlugin((options) => {
|
|
19
|
+
const {
|
|
20
|
+
output = { path: "hooks" },
|
|
21
|
+
group,
|
|
22
|
+
exclude = [],
|
|
23
|
+
include,
|
|
24
|
+
override = [],
|
|
25
|
+
parser = "client",
|
|
26
|
+
transformers: transformers$1 = {},
|
|
27
|
+
query,
|
|
28
|
+
mutation,
|
|
29
|
+
client,
|
|
30
|
+
pathParamsType = "inline"
|
|
31
|
+
} = options;
|
|
32
|
+
const template = group?.output ? group.output : `${output.path}/{{tag}}SWRController`;
|
|
73
33
|
return {
|
|
74
34
|
name: pluginSwrName,
|
|
75
35
|
options: {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
query: _chunkH4LHXYRJcjs.Query.templates,
|
|
80
|
-
queryOptions: _chunkH4LHXYRJcjs.QueryOptions.templates,
|
|
81
|
-
...templates
|
|
36
|
+
output: {
|
|
37
|
+
exportType: "barrelNamed",
|
|
38
|
+
...output
|
|
82
39
|
},
|
|
40
|
+
pathParamsType,
|
|
83
41
|
client: {
|
|
84
42
|
importPath: "@kubb/plugin-client/client",
|
|
85
|
-
|
|
43
|
+
dataReturnType: "data",
|
|
44
|
+
...client
|
|
45
|
+
},
|
|
46
|
+
query: {
|
|
47
|
+
importPath: "swr",
|
|
48
|
+
methods: ["get"],
|
|
49
|
+
...query
|
|
86
50
|
},
|
|
87
|
-
|
|
88
|
-
|
|
51
|
+
mutation: {
|
|
52
|
+
importPath: "swr/mutation",
|
|
53
|
+
methods: ["post", "put", "delete", "patch"],
|
|
54
|
+
...mutation
|
|
55
|
+
},
|
|
56
|
+
parser,
|
|
57
|
+
baseURL: void 0
|
|
89
58
|
},
|
|
90
|
-
pre: [
|
|
59
|
+
pre: [pluginOas.pluginOasName, pluginTs.pluginTsName, parser === "zod" ? pluginZod.pluginZodName : void 0].filter(Boolean),
|
|
91
60
|
resolvePath(baseName, pathMode, options2) {
|
|
92
|
-
const root =
|
|
93
|
-
const mode =
|
|
61
|
+
const root = path__default.default.resolve(this.config.root, this.config.output.path);
|
|
62
|
+
const mode = pathMode ?? core.FileManager.getMode(path__default.default.resolve(root, output.path));
|
|
94
63
|
if (mode === "single") {
|
|
95
|
-
return
|
|
64
|
+
return path__default.default.resolve(root, output.path);
|
|
96
65
|
}
|
|
97
|
-
if (
|
|
98
|
-
const tag =
|
|
99
|
-
return
|
|
66
|
+
if (options2?.tag && group?.type === "tag") {
|
|
67
|
+
const tag = transformers.camelCase(options2.tag);
|
|
68
|
+
return path__default.default.resolve(root, utils.renderTemplate(template, { tag }), baseName);
|
|
100
69
|
}
|
|
101
|
-
return
|
|
70
|
+
return path__default.default.resolve(root, output.path, baseName);
|
|
102
71
|
},
|
|
103
72
|
resolveName(name, type) {
|
|
104
|
-
let resolvedName =
|
|
73
|
+
let resolvedName = transformers.camelCase(name);
|
|
105
74
|
if (type === "file" || type === "function") {
|
|
106
|
-
resolvedName =
|
|
107
|
-
prefix: "use",
|
|
75
|
+
resolvedName = transformers.camelCase(name, {
|
|
108
76
|
isFile: type === "file"
|
|
109
77
|
});
|
|
110
78
|
}
|
|
111
79
|
if (type === "type") {
|
|
112
|
-
resolvedName =
|
|
80
|
+
resolvedName = transformers.pascalCase(name);
|
|
113
81
|
}
|
|
114
82
|
if (type) {
|
|
115
|
-
return
|
|
83
|
+
return transformers$1?.name?.(resolvedName, type) || resolvedName;
|
|
116
84
|
}
|
|
117
85
|
return resolvedName;
|
|
118
86
|
},
|
|
119
87
|
async buildStart() {
|
|
120
|
-
const [swaggerPlugin] =
|
|
88
|
+
const [swaggerPlugin] = core.PluginManager.getDependedPlugins(this.plugins, [pluginOas.pluginOasName]);
|
|
121
89
|
const oas = await swaggerPlugin.context.getOas();
|
|
122
|
-
const root =
|
|
123
|
-
const mode =
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
});
|
|
134
|
-
const files = await operationGenerator.build();
|
|
135
|
-
await this.addFile(...files);
|
|
136
|
-
},
|
|
137
|
-
async buildEnd() {
|
|
138
|
-
if (this.config.output.write === false) {
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
const root = _path2.default.resolve(this.config.root, this.config.output.path);
|
|
142
|
-
if (_optionalChain([group, 'optionalAccess', _12 => _12.type]) === "tag") {
|
|
143
|
-
const rootFiles = await _utils3.getGroupedByTagFiles.call(void 0, {
|
|
144
|
-
logger: this.logger,
|
|
145
|
-
files: this.fileManager.files,
|
|
90
|
+
const root = path__default.default.resolve(this.config.root, this.config.output.path);
|
|
91
|
+
const mode = core.FileManager.getMode(path__default.default.resolve(root, output.path));
|
|
92
|
+
const baseURL = await swaggerPlugin.context.getBaseURL();
|
|
93
|
+
const operationGenerator = new pluginOas.OperationGenerator(
|
|
94
|
+
{
|
|
95
|
+
...this.plugin.options,
|
|
96
|
+
baseURL
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
oas,
|
|
100
|
+
pluginManager: this.pluginManager,
|
|
146
101
|
plugin: this.plugin,
|
|
147
|
-
|
|
148
|
-
|
|
102
|
+
contentType: swaggerPlugin.context.contentType,
|
|
103
|
+
exclude,
|
|
104
|
+
include,
|
|
105
|
+
override,
|
|
106
|
+
mode
|
|
107
|
+
}
|
|
108
|
+
);
|
|
109
|
+
const files = await operationGenerator.build(chunkWI3XUYBA_cjs.queryGenerator, chunkWI3XUYBA_cjs.mutationGenerator);
|
|
110
|
+
await this.addFile(...files);
|
|
111
|
+
if (this.config.output.exportType) {
|
|
112
|
+
const barrelFiles = await this.fileManager.getBarrelFiles({
|
|
149
113
|
root,
|
|
150
|
-
output
|
|
114
|
+
output,
|
|
115
|
+
files: this.fileManager.files,
|
|
116
|
+
meta: {
|
|
117
|
+
pluginKey: this.plugin.key
|
|
118
|
+
},
|
|
119
|
+
logger: this.logger
|
|
151
120
|
});
|
|
152
|
-
await this.addFile(...
|
|
121
|
+
await this.addFile(...barrelFiles);
|
|
153
122
|
}
|
|
154
|
-
await this.fileManager.addIndexes({
|
|
155
|
-
root,
|
|
156
|
-
output,
|
|
157
|
-
meta: { pluginKey: this.plugin.key },
|
|
158
|
-
logger: this.logger
|
|
159
|
-
});
|
|
160
123
|
}
|
|
161
124
|
};
|
|
162
125
|
});
|
|
163
126
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
127
|
+
exports.pluginSwr = pluginSwr;
|
|
128
|
+
exports.pluginSwrName = pluginSwrName;
|
|
129
|
+
//# sourceMappingURL=index.cjs.map
|
|
167
130
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/kubb/kubb/packages/plugin-swr/dist/index.cjs","../src/plugin.ts","../src/OperationGenerator.tsx"],"names":[],"mappings":"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","file":"/home/runner/work/kubb/kubb/packages/plugin-swr/dist/index.cjs","sourcesContent":[null,"import path from 'node:path'\n\nimport { FileManager, PluginManager, createPlugin } from '@kubb/core'\nimport { camelCase, pascalCase } from '@kubb/core/transformers'\nimport { renderTemplate } from '@kubb/core/utils'\nimport { pluginOasName } from '@kubb/plugin-oas'\nimport { getGroupedByTagFiles } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\n\nimport { OperationGenerator } from './OperationGenerator.tsx'\nimport { Mutation, Query, QueryOptions } from './components/index.ts'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'\nimport type { PluginSwr } from './types.ts'\n\nexport const pluginSwrName = 'plugin-swr' satisfies PluginSwr['name']\n\nexport const pluginSwr = createPlugin<PluginSwr>((options) => {\n const { output = { path: 'hooks' }, group, exclude = [], include, override = [], parser, transformers = {}, templates, dataReturnType = 'data' } = options\n const template = group?.output ? group.output : `${output.path}/{{tag}}SWRController`\n\n return {\n name: pluginSwrName,\n options: {\n extName: output.extName,\n templates: {\n mutation: Mutation.templates,\n query: Query.templates,\n queryOptions: QueryOptions.templates,\n ...templates,\n },\n client: {\n importPath: '@kubb/plugin-client/client',\n ...options.client,\n },\n dataReturnType,\n parser,\n },\n pre: [pluginOasName, pluginTsName, parser === 'zod' ? pluginZodName : undefined].filter(Boolean),\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 let resolvedName = camelCase(name)\n\n if (type === 'file' || type === 'function') {\n resolvedName = camelCase(name, {\n prefix: 'use',\n isFile: type === 'file',\n })\n }\n\n if (type === 'type') {\n resolvedName = pascalCase(name)\n }\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()\n await this.addFile(...files)\n },\n async buildEnd() {\n if (this.config.output.write === false) {\n return\n }\n\n const root = path.resolve(this.config.root, this.config.output.path)\n\n if (group?.type === 'tag') {\n const rootFiles = await getGroupedByTagFiles({\n logger: this.logger,\n files: this.fileManager.files,\n plugin: this.plugin,\n template,\n exportAs: group.exportAs || '{{tag}}SWRHooks',\n root,\n output,\n })\n\n await this.addFile(...rootFiles)\n }\n\n await this.fileManager.addIndexes({\n root,\n output,\n meta: { pluginKey: this.plugin.key },\n logger: this.logger,\n })\n },\n }\n})\n","import { OperationGenerator as Generator } from '@kubb/plugin-oas'\nimport { Oas } from '@kubb/plugin-oas/components'\nimport { App, createRoot } from '@kubb/react'\n\nimport { Mutation } from './components/Mutation.tsx'\nimport { Query } from './components/Query.tsx'\n\nimport type { Operation } from '@kubb/oas'\nimport type { OperationMethodResult } from '@kubb/plugin-oas'\nimport type { FileMeta, PluginSwr } from './types.ts'\n\nexport class OperationGenerator extends Generator<PluginSwr['resolvedOptions'], PluginSwr, FileMeta> {\n async get(operation: Operation, options: PluginSwr['resolvedOptions']): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin, mode } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n if (!options.templates?.query || !options.templates?.queryOptions) {\n return []\n }\n\n root.render(\n <App pluginManager={pluginManager} plugin={{ ...plugin, options }} mode={mode}>\n <Oas oas={oas} operations={[operation]} generator={this}>\n <Oas.Operation operation={operation}>\n <Query.File\n templates={{\n query: options.templates.query,\n queryOptions: options.templates.queryOptions,\n }}\n />\n </Oas.Operation>\n </Oas>\n </App>,\n )\n\n return root.files\n }\n\n async post(operation: Operation, options: PluginSwr['resolvedOptions']): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin, mode } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n if (!options.templates?.mutation) {\n return []\n }\n\n root.render(\n <App pluginManager={pluginManager} plugin={{ ...plugin, options }} mode={mode}>\n <Oas oas={oas} operations={[operation]} generator={this}>\n <Oas.Operation operation={operation}>\n <Mutation.File templates={options.templates.mutation} />\n </Oas.Operation>\n </Oas>\n </App>,\n )\n\n return root.files\n }\n\n async put(operation: Operation, options: PluginSwr['resolvedOptions']): OperationMethodResult<FileMeta> {\n return this.post(operation, options)\n }\n async patch(operation: Operation, options: PluginSwr['resolvedOptions']): OperationMethodResult<FileMeta> {\n return this.post(operation, options)\n }\n async delete(operation: Operation, options: PluginSwr['resolvedOptions']): OperationMethodResult<FileMeta> {\n return this.post(operation, options)\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/plugin.ts"],"names":["createPlugin","transformers","pluginOasName","pluginTsName","pluginZodName","options","path","FileManager","camelCase","renderTemplate","pascalCase","PluginManager","OperationGenerator","queryGenerator","mutationGenerator"],"mappings":"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","file":"index.cjs","sourcesContent":["import path from 'node:path'\n\nimport { FileManager, PluginManager, createPlugin } from '@kubb/core'\nimport { camelCase, pascalCase } from '@kubb/core/transformers'\nimport { renderTemplate } from '@kubb/core/utils'\nimport { OperationGenerator, pluginOasName } from '@kubb/plugin-oas'\n\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'\nimport { mutationGenerator, queryGenerator } from './generators'\nimport type { PluginSwr } from './types.ts'\n\nexport const pluginSwrName = 'plugin-swr' satisfies PluginSwr['name']\n\nexport const pluginSwr = createPlugin<PluginSwr>((options) => {\n const {\n output = { path: 'hooks' },\n group,\n exclude = [],\n include,\n override = [],\n parser = 'client',\n transformers = {},\n query,\n mutation,\n client,\n pathParamsType = 'inline',\n } = options\n const template = group?.output ? group.output : `${output.path}/{{tag}}SWRController`\n\n return {\n name: pluginSwrName,\n options: {\n output: {\n exportType: 'barrelNamed',\n ...output,\n },\n pathParamsType,\n client: {\n importPath: '@kubb/plugin-client/client',\n dataReturnType: 'data',\n ...client,\n },\n query: {\n importPath: 'swr',\n methods: ['get'],\n ...query,\n },\n mutation: {\n importPath: 'swr/mutation',\n methods: ['post', 'put', 'delete', 'patch'],\n ...mutation,\n },\n parser,\n baseURL: undefined,\n },\n pre: [pluginOasName, pluginTsName, parser === 'zod' ? pluginZodName : undefined].filter(Boolean),\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 let resolvedName = camelCase(name)\n\n if (type === 'file' || type === 'function') {\n resolvedName = camelCase(name, {\n isFile: type === 'file',\n })\n }\n\n if (type === 'type') {\n resolvedName = pascalCase(name)\n }\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 const baseURL = await swaggerPlugin.context.getBaseURL()\n\n const operationGenerator = new OperationGenerator(\n {\n ...this.plugin.options,\n baseURL,\n },\n {\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\n const files = await operationGenerator.build(queryGenerator, mutationGenerator)\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"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import * as _kubb_core from '@kubb/core';
|
|
2
|
-
import { O as Options, P as PluginSwr } from './
|
|
3
|
-
import '@kubb/core/utils';
|
|
2
|
+
import { O as Options, P as PluginSwr } from './types-BCd4p4VZ.cjs';
|
|
4
3
|
import '@kubb/oas';
|
|
5
|
-
import 'react';
|
|
6
|
-
import '@kubb/fs/types';
|
|
7
4
|
import '@kubb/plugin-oas';
|
|
8
5
|
|
|
9
6
|
declare const pluginSwrName = "plugin-swr";
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import * as _kubb_core from '@kubb/core';
|
|
2
|
-
import { O as Options, P as PluginSwr } from './
|
|
3
|
-
import '@kubb/core/utils';
|
|
2
|
+
import { O as Options, P as PluginSwr } from './types-BCd4p4VZ.js';
|
|
4
3
|
import '@kubb/oas';
|
|
5
|
-
import 'react';
|
|
6
|
-
import '@kubb/fs/types';
|
|
7
4
|
import '@kubb/plugin-oas';
|
|
8
5
|
|
|
9
6
|
declare const pluginSwrName = "plugin-swr";
|
package/dist/index.js
CHANGED
|
@@ -1,91 +1,54 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
} from
|
|
1
|
+
import { queryGenerator, mutationGenerator } from './chunk-DGY6XSP2.js';
|
|
2
|
+
import './chunk-7WG6LPZJ.js';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { createPlugin, FileManager, PluginManager } from '@kubb/core';
|
|
5
|
+
import { camelCase, pascalCase } from '@kubb/core/transformers';
|
|
6
|
+
import { renderTemplate } from '@kubb/core/utils';
|
|
7
|
+
import { pluginOasName, OperationGenerator } from '@kubb/plugin-oas';
|
|
8
|
+
import { pluginTsName } from '@kubb/plugin-ts';
|
|
9
|
+
import { pluginZodName } from '@kubb/plugin-zod';
|
|
6
10
|
|
|
7
|
-
// src/plugin.ts
|
|
8
|
-
import path from "path";
|
|
9
|
-
import { FileManager, PluginManager, createPlugin } from "@kubb/core";
|
|
10
|
-
import { camelCase, pascalCase } from "@kubb/core/transformers";
|
|
11
|
-
import { renderTemplate } from "@kubb/core/utils";
|
|
12
|
-
import { pluginOasName } from "@kubb/plugin-oas";
|
|
13
|
-
import { getGroupedByTagFiles } from "@kubb/plugin-oas/utils";
|
|
14
|
-
import { pluginTsName } from "@kubb/plugin-ts";
|
|
15
|
-
import { pluginZodName } from "@kubb/plugin-zod";
|
|
16
|
-
|
|
17
|
-
// src/OperationGenerator.tsx
|
|
18
|
-
import { OperationGenerator as Generator } from "@kubb/plugin-oas";
|
|
19
|
-
import { Oas } from "@kubb/plugin-oas/components";
|
|
20
|
-
import { App, createRoot } from "@kubb/react";
|
|
21
|
-
import { jsx } from "@kubb/react/jsx-runtime";
|
|
22
|
-
var OperationGenerator = class extends Generator {
|
|
23
|
-
async get(operation, options) {
|
|
24
|
-
const { oas, pluginManager, plugin, mode } = this.context;
|
|
25
|
-
const root = createRoot({
|
|
26
|
-
logger: pluginManager.logger
|
|
27
|
-
});
|
|
28
|
-
if (!options.templates?.query || !options.templates?.queryOptions) {
|
|
29
|
-
return [];
|
|
30
|
-
}
|
|
31
|
-
root.render(
|
|
32
|
-
/* @__PURE__ */ jsx(App, { pluginManager, plugin: { ...plugin, options }, mode, children: /* @__PURE__ */ jsx(Oas, { oas, operations: [operation], generator: this, children: /* @__PURE__ */ jsx(Oas.Operation, { operation, children: /* @__PURE__ */ jsx(
|
|
33
|
-
Query.File,
|
|
34
|
-
{
|
|
35
|
-
templates: {
|
|
36
|
-
query: options.templates.query,
|
|
37
|
-
queryOptions: options.templates.queryOptions
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
) }) }) })
|
|
41
|
-
);
|
|
42
|
-
return root.files;
|
|
43
|
-
}
|
|
44
|
-
async post(operation, options) {
|
|
45
|
-
const { oas, pluginManager, plugin, mode } = this.context;
|
|
46
|
-
const root = createRoot({
|
|
47
|
-
logger: pluginManager.logger
|
|
48
|
-
});
|
|
49
|
-
if (!options.templates?.mutation) {
|
|
50
|
-
return [];
|
|
51
|
-
}
|
|
52
|
-
root.render(
|
|
53
|
-
/* @__PURE__ */ jsx(App, { pluginManager, plugin: { ...plugin, options }, mode, children: /* @__PURE__ */ jsx(Oas, { oas, operations: [operation], generator: this, children: /* @__PURE__ */ jsx(Oas.Operation, { operation, children: /* @__PURE__ */ jsx(Mutation.File, { templates: options.templates.mutation }) }) }) })
|
|
54
|
-
);
|
|
55
|
-
return root.files;
|
|
56
|
-
}
|
|
57
|
-
async put(operation, options) {
|
|
58
|
-
return this.post(operation, options);
|
|
59
|
-
}
|
|
60
|
-
async patch(operation, options) {
|
|
61
|
-
return this.post(operation, options);
|
|
62
|
-
}
|
|
63
|
-
async delete(operation, options) {
|
|
64
|
-
return this.post(operation, options);
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
// src/plugin.ts
|
|
69
11
|
var pluginSwrName = "plugin-swr";
|
|
70
12
|
var pluginSwr = createPlugin((options) => {
|
|
71
|
-
const {
|
|
13
|
+
const {
|
|
14
|
+
output = { path: "hooks" },
|
|
15
|
+
group,
|
|
16
|
+
exclude = [],
|
|
17
|
+
include,
|
|
18
|
+
override = [],
|
|
19
|
+
parser = "client",
|
|
20
|
+
transformers = {},
|
|
21
|
+
query,
|
|
22
|
+
mutation,
|
|
23
|
+
client,
|
|
24
|
+
pathParamsType = "inline"
|
|
25
|
+
} = options;
|
|
72
26
|
const template = group?.output ? group.output : `${output.path}/{{tag}}SWRController`;
|
|
73
27
|
return {
|
|
74
28
|
name: pluginSwrName,
|
|
75
29
|
options: {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
query: Query.templates,
|
|
80
|
-
queryOptions: QueryOptions.templates,
|
|
81
|
-
...templates
|
|
30
|
+
output: {
|
|
31
|
+
exportType: "barrelNamed",
|
|
32
|
+
...output
|
|
82
33
|
},
|
|
34
|
+
pathParamsType,
|
|
83
35
|
client: {
|
|
84
36
|
importPath: "@kubb/plugin-client/client",
|
|
85
|
-
|
|
37
|
+
dataReturnType: "data",
|
|
38
|
+
...client
|
|
39
|
+
},
|
|
40
|
+
query: {
|
|
41
|
+
importPath: "swr",
|
|
42
|
+
methods: ["get"],
|
|
43
|
+
...query
|
|
44
|
+
},
|
|
45
|
+
mutation: {
|
|
46
|
+
importPath: "swr/mutation",
|
|
47
|
+
methods: ["post", "put", "delete", "patch"],
|
|
48
|
+
...mutation
|
|
86
49
|
},
|
|
87
|
-
|
|
88
|
-
|
|
50
|
+
parser,
|
|
51
|
+
baseURL: void 0
|
|
89
52
|
},
|
|
90
53
|
pre: [pluginOasName, pluginTsName, parser === "zod" ? pluginZodName : void 0].filter(Boolean),
|
|
91
54
|
resolvePath(baseName, pathMode, options2) {
|
|
@@ -104,7 +67,6 @@ var pluginSwr = createPlugin((options) => {
|
|
|
104
67
|
let resolvedName = camelCase(name);
|
|
105
68
|
if (type === "file" || type === "function") {
|
|
106
69
|
resolvedName = camelCase(name, {
|
|
107
|
-
prefix: "use",
|
|
108
70
|
isFile: type === "file"
|
|
109
71
|
});
|
|
110
72
|
}
|
|
@@ -121,47 +83,41 @@ var pluginSwr = createPlugin((options) => {
|
|
|
121
83
|
const oas = await swaggerPlugin.context.getOas();
|
|
122
84
|
const root = path.resolve(this.config.root, this.config.output.path);
|
|
123
85
|
const mode = FileManager.getMode(path.resolve(root, output.path));
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
});
|
|
134
|
-
const files = await operationGenerator.build();
|
|
135
|
-
await this.addFile(...files);
|
|
136
|
-
},
|
|
137
|
-
async buildEnd() {
|
|
138
|
-
if (this.config.output.write === false) {
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
const root = path.resolve(this.config.root, this.config.output.path);
|
|
142
|
-
if (group?.type === "tag") {
|
|
143
|
-
const rootFiles = await getGroupedByTagFiles({
|
|
144
|
-
logger: this.logger,
|
|
145
|
-
files: this.fileManager.files,
|
|
86
|
+
const baseURL = await swaggerPlugin.context.getBaseURL();
|
|
87
|
+
const operationGenerator = new OperationGenerator(
|
|
88
|
+
{
|
|
89
|
+
...this.plugin.options,
|
|
90
|
+
baseURL
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
oas,
|
|
94
|
+
pluginManager: this.pluginManager,
|
|
146
95
|
plugin: this.plugin,
|
|
147
|
-
|
|
148
|
-
|
|
96
|
+
contentType: swaggerPlugin.context.contentType,
|
|
97
|
+
exclude,
|
|
98
|
+
include,
|
|
99
|
+
override,
|
|
100
|
+
mode
|
|
101
|
+
}
|
|
102
|
+
);
|
|
103
|
+
const files = await operationGenerator.build(queryGenerator, mutationGenerator);
|
|
104
|
+
await this.addFile(...files);
|
|
105
|
+
if (this.config.output.exportType) {
|
|
106
|
+
const barrelFiles = await this.fileManager.getBarrelFiles({
|
|
149
107
|
root,
|
|
150
|
-
output
|
|
108
|
+
output,
|
|
109
|
+
files: this.fileManager.files,
|
|
110
|
+
meta: {
|
|
111
|
+
pluginKey: this.plugin.key
|
|
112
|
+
},
|
|
113
|
+
logger: this.logger
|
|
151
114
|
});
|
|
152
|
-
await this.addFile(...
|
|
115
|
+
await this.addFile(...barrelFiles);
|
|
153
116
|
}
|
|
154
|
-
await this.fileManager.addIndexes({
|
|
155
|
-
root,
|
|
156
|
-
output,
|
|
157
|
-
meta: { pluginKey: this.plugin.key },
|
|
158
|
-
logger: this.logger
|
|
159
|
-
});
|
|
160
117
|
}
|
|
161
118
|
};
|
|
162
119
|
});
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
};
|
|
120
|
+
|
|
121
|
+
export { pluginSwr, pluginSwrName };
|
|
122
|
+
//# sourceMappingURL=index.js.map
|
|
167
123
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin.ts","../src/OperationGenerator.tsx"],"sourcesContent":["import path from 'node:path'\n\nimport { FileManager, PluginManager, createPlugin } from '@kubb/core'\nimport { camelCase, pascalCase } from '@kubb/core/transformers'\nimport { renderTemplate } from '@kubb/core/utils'\nimport { pluginOasName } from '@kubb/plugin-oas'\nimport { getGroupedByTagFiles } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\n\nimport { OperationGenerator } from './OperationGenerator.tsx'\nimport { Mutation, Query, QueryOptions } from './components/index.ts'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'\nimport type { PluginSwr } from './types.ts'\n\nexport const pluginSwrName = 'plugin-swr' satisfies PluginSwr['name']\n\nexport const pluginSwr = createPlugin<PluginSwr>((options) => {\n const { output = { path: 'hooks' }, group, exclude = [], include, override = [], parser, transformers = {}, templates, dataReturnType = 'data' } = options\n const template = group?.output ? group.output : `${output.path}/{{tag}}SWRController`\n\n return {\n name: pluginSwrName,\n options: {\n extName: output.extName,\n templates: {\n mutation: Mutation.templates,\n query: Query.templates,\n queryOptions: QueryOptions.templates,\n ...templates,\n },\n client: {\n importPath: '@kubb/plugin-client/client',\n ...options.client,\n },\n dataReturnType,\n parser,\n },\n pre: [pluginOasName, pluginTsName, parser === 'zod' ? pluginZodName : undefined].filter(Boolean),\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 let resolvedName = camelCase(name)\n\n if (type === 'file' || type === 'function') {\n resolvedName = camelCase(name, {\n prefix: 'use',\n isFile: type === 'file',\n })\n }\n\n if (type === 'type') {\n resolvedName = pascalCase(name)\n }\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()\n await this.addFile(...files)\n },\n async buildEnd() {\n if (this.config.output.write === false) {\n return\n }\n\n const root = path.resolve(this.config.root, this.config.output.path)\n\n if (group?.type === 'tag') {\n const rootFiles = await getGroupedByTagFiles({\n logger: this.logger,\n files: this.fileManager.files,\n plugin: this.plugin,\n template,\n exportAs: group.exportAs || '{{tag}}SWRHooks',\n root,\n output,\n })\n\n await this.addFile(...rootFiles)\n }\n\n await this.fileManager.addIndexes({\n root,\n output,\n meta: { pluginKey: this.plugin.key },\n logger: this.logger,\n })\n },\n }\n})\n","import { OperationGenerator as Generator } from '@kubb/plugin-oas'\nimport { Oas } from '@kubb/plugin-oas/components'\nimport { App, createRoot } from '@kubb/react'\n\nimport { Mutation } from './components/Mutation.tsx'\nimport { Query } from './components/Query.tsx'\n\nimport type { Operation } from '@kubb/oas'\nimport type { OperationMethodResult } from '@kubb/plugin-oas'\nimport type { FileMeta, PluginSwr } from './types.ts'\n\nexport class OperationGenerator extends Generator<PluginSwr['resolvedOptions'], PluginSwr, FileMeta> {\n async get(operation: Operation, options: PluginSwr['resolvedOptions']): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin, mode } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n if (!options.templates?.query || !options.templates?.queryOptions) {\n return []\n }\n\n root.render(\n <App pluginManager={pluginManager} plugin={{ ...plugin, options }} mode={mode}>\n <Oas oas={oas} operations={[operation]} generator={this}>\n <Oas.Operation operation={operation}>\n <Query.File\n templates={{\n query: options.templates.query,\n queryOptions: options.templates.queryOptions,\n }}\n />\n </Oas.Operation>\n </Oas>\n </App>,\n )\n\n return root.files\n }\n\n async post(operation: Operation, options: PluginSwr['resolvedOptions']): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin, mode } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n if (!options.templates?.mutation) {\n return []\n }\n\n root.render(\n <App pluginManager={pluginManager} plugin={{ ...plugin, options }} mode={mode}>\n <Oas oas={oas} operations={[operation]} generator={this}>\n <Oas.Operation operation={operation}>\n <Mutation.File templates={options.templates.mutation} />\n </Oas.Operation>\n </Oas>\n </App>,\n )\n\n return root.files\n }\n\n async put(operation: Operation, options: PluginSwr['resolvedOptions']): OperationMethodResult<FileMeta> {\n return this.post(operation, options)\n }\n async patch(operation: Operation, options: PluginSwr['resolvedOptions']): OperationMethodResult<FileMeta> {\n return this.post(operation, options)\n }\n async delete(operation: Operation, options: PluginSwr['resolvedOptions']): OperationMethodResult<FileMeta> {\n return this.post(operation, options)\n }\n}\n"],"mappings":"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","names":["options"]}
|
|
1
|
+
{"version":3,"sources":["../src/plugin.ts"],"names":["options"],"mappings":";;;;;;;;;;AAeO,IAAM,aAAgB,GAAA,aAAA;AAEhB,IAAA,SAAA,GAAY,YAAwB,CAAA,CAAC,OAAY,KAAA;AAC5D,EAAM,MAAA;AAAA,IACJ,MAAA,GAAS,EAAE,IAAA,EAAM,OAAQ,EAAA;AAAA,IACzB,KAAA;AAAA,IACA,UAAU,EAAC;AAAA,IACX,OAAA;AAAA,IACA,WAAW,EAAC;AAAA,IACZ,MAAS,GAAA,QAAA;AAAA,IACT,eAAe,EAAC;AAAA,IAChB,KAAA;AAAA,IACA,QAAA;AAAA,IACA,MAAA;AAAA,IACA,cAAiB,GAAA,QAAA;AAAA,GACf,GAAA,OAAA,CAAA;AACJ,EAAA,MAAM,WAAW,KAAO,EAAA,MAAA,GAAS,MAAM,MAAS,GAAA,CAAA,EAAG,OAAO,IAAI,CAAA,qBAAA,CAAA,CAAA;AAE9D,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,aAAA;AAAA,IACN,OAAS,EAAA;AAAA,MACP,MAAQ,EAAA;AAAA,QACN,UAAY,EAAA,aAAA;AAAA,QACZ,GAAG,MAAA;AAAA,OACL;AAAA,MACA,cAAA;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,UAAY,EAAA,4BAAA;AAAA,QACZ,cAAgB,EAAA,MAAA;AAAA,QAChB,GAAG,MAAA;AAAA,OACL;AAAA,MACA,KAAO,EAAA;AAAA,QACL,UAAY,EAAA,KAAA;AAAA,QACZ,OAAA,EAAS,CAAC,KAAK,CAAA;AAAA,QACf,GAAG,KAAA;AAAA,OACL;AAAA,MACA,QAAU,EAAA;AAAA,QACR,UAAY,EAAA,cAAA;AAAA,QACZ,OAAS,EAAA,CAAC,MAAQ,EAAA,KAAA,EAAO,UAAU,OAAO,CAAA;AAAA,QAC1C,GAAG,QAAA;AAAA,OACL;AAAA,MACA,MAAA;AAAA,MACA,OAAS,EAAA,KAAA,CAAA;AAAA,KACX;AAAA,IACA,GAAA,EAAK,CAAC,aAAA,EAAe,YAAc,EAAA,MAAA,KAAW,QAAQ,aAAgB,GAAA,KAAA,CAAS,CAAE,CAAA,MAAA,CAAO,OAAO,CAAA;AAAA,IAC/F,WAAA,CAAY,QAAU,EAAA,QAAA,EAAUA,QAAS,EAAA;AACvC,MAAM,MAAA,IAAA,GAAO,KAAK,OAAQ,CAAA,IAAA,CAAK,OAAO,IAAM,EAAA,IAAA,CAAK,MAAO,CAAA,MAAA,CAAO,IAAI,CAAA,CAAA;AACnE,MAAM,MAAA,IAAA,GAAO,YAAY,WAAY,CAAA,OAAA,CAAQ,KAAK,OAAQ,CAAA,IAAA,EAAM,MAAO,CAAA,IAAI,CAAC,CAAA,CAAA;AAE5E,MAAA,IAAI,SAAS,QAAU,EAAA;AAKrB,QAAA,OAAO,IAAK,CAAA,OAAA,CAAQ,IAAM,EAAA,MAAA,CAAO,IAAI,CAAA,CAAA;AAAA,OACvC;AAEA,MAAA,IAAIA,QAAS,EAAA,GAAA,IAAO,KAAO,EAAA,IAAA,KAAS,KAAO,EAAA;AACzC,QAAM,MAAA,GAAA,GAAM,SAAUA,CAAAA,QAAAA,CAAQ,GAAG,CAAA,CAAA;AAEjC,QAAO,OAAA,IAAA,CAAK,QAAQ,IAAM,EAAA,cAAA,CAAe,UAAU,EAAE,GAAA,EAAK,CAAA,EAAG,QAAQ,CAAA,CAAA;AAAA,OACvE;AAEA,MAAA,OAAO,IAAK,CAAA,OAAA,CAAQ,IAAM,EAAA,MAAA,CAAO,MAAM,QAAQ,CAAA,CAAA;AAAA,KACjD;AAAA,IACA,WAAA,CAAY,MAAM,IAAM,EAAA;AACtB,MAAI,IAAA,YAAA,GAAe,UAAU,IAAI,CAAA,CAAA;AAEjC,MAAI,IAAA,IAAA,KAAS,MAAU,IAAA,IAAA,KAAS,UAAY,EAAA;AAC1C,QAAA,YAAA,GAAe,UAAU,IAAM,EAAA;AAAA,UAC7B,QAAQ,IAAS,KAAA,MAAA;AAAA,SAClB,CAAA,CAAA;AAAA,OACH;AAEA,MAAA,IAAI,SAAS,MAAQ,EAAA;AACnB,QAAA,YAAA,GAAe,WAAW,IAAI,CAAA,CAAA;AAAA,OAChC;AAEA,MAAA,IAAI,IAAM,EAAA;AACR,QAAA,OAAO,YAAc,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,GAAA,aAAA,CAAc,mBAAyC,IAAK,CAAA,OAAA,EAAS,CAAC,aAAa,CAAC,CAAA,CAAA;AAE5I,MAAA,MAAM,GAAM,GAAA,MAAM,aAAc,CAAA,OAAA,CAAQ,MAAO,EAAA,CAAA;AAC/C,MAAM,MAAA,IAAA,GAAO,KAAK,OAAQ,CAAA,IAAA,CAAK,OAAO,IAAM,EAAA,IAAA,CAAK,MAAO,CAAA,MAAA,CAAO,IAAI,CAAA,CAAA;AACnE,MAAM,MAAA,IAAA,GAAO,YAAY,OAAQ,CAAA,IAAA,CAAK,QAAQ,IAAM,EAAA,MAAA,CAAO,IAAI,CAAC,CAAA,CAAA;AAChE,MAAA,MAAM,OAAU,GAAA,MAAM,aAAc,CAAA,OAAA,CAAQ,UAAW,EAAA,CAAA;AAEvD,MAAA,MAAM,qBAAqB,IAAI,kBAAA;AAAA,QAC7B;AAAA,UACE,GAAG,KAAK,MAAO,CAAA,OAAA;AAAA,UACf,OAAA;AAAA,SACF;AAAA,QACA;AAAA,UACE,GAAA;AAAA,UACA,eAAe,IAAK,CAAA,aAAA;AAAA,UACpB,QAAQ,IAAK,CAAA,MAAA;AAAA,UACb,WAAA,EAAa,cAAc,OAAQ,CAAA,WAAA;AAAA,UACnC,OAAA;AAAA,UACA,OAAA;AAAA,UACA,QAAA;AAAA,UACA,IAAA;AAAA,SACF;AAAA,OACF,CAAA;AAEA,MAAA,MAAM,KAAQ,GAAA,MAAM,kBAAmB,CAAA,KAAA,CAAM,gBAAgB,iBAAiB,CAAA,CAAA;AAC9E,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","file":"index.js","sourcesContent":["import path from 'node:path'\n\nimport { FileManager, PluginManager, createPlugin } from '@kubb/core'\nimport { camelCase, pascalCase } from '@kubb/core/transformers'\nimport { renderTemplate } from '@kubb/core/utils'\nimport { OperationGenerator, pluginOasName } from '@kubb/plugin-oas'\n\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'\nimport { mutationGenerator, queryGenerator } from './generators'\nimport type { PluginSwr } from './types.ts'\n\nexport const pluginSwrName = 'plugin-swr' satisfies PluginSwr['name']\n\nexport const pluginSwr = createPlugin<PluginSwr>((options) => {\n const {\n output = { path: 'hooks' },\n group,\n exclude = [],\n include,\n override = [],\n parser = 'client',\n transformers = {},\n query,\n mutation,\n client,\n pathParamsType = 'inline',\n } = options\n const template = group?.output ? group.output : `${output.path}/{{tag}}SWRController`\n\n return {\n name: pluginSwrName,\n options: {\n output: {\n exportType: 'barrelNamed',\n ...output,\n },\n pathParamsType,\n client: {\n importPath: '@kubb/plugin-client/client',\n dataReturnType: 'data',\n ...client,\n },\n query: {\n importPath: 'swr',\n methods: ['get'],\n ...query,\n },\n mutation: {\n importPath: 'swr/mutation',\n methods: ['post', 'put', 'delete', 'patch'],\n ...mutation,\n },\n parser,\n baseURL: undefined,\n },\n pre: [pluginOasName, pluginTsName, parser === 'zod' ? pluginZodName : undefined].filter(Boolean),\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 let resolvedName = camelCase(name)\n\n if (type === 'file' || type === 'function') {\n resolvedName = camelCase(name, {\n isFile: type === 'file',\n })\n }\n\n if (type === 'type') {\n resolvedName = pascalCase(name)\n }\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 const baseURL = await swaggerPlugin.context.getBaseURL()\n\n const operationGenerator = new OperationGenerator(\n {\n ...this.plugin.options,\n baseURL,\n },\n {\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\n const files = await operationGenerator.build(queryGenerator, mutationGenerator)\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"]}
|