@kubb/plugin-client 3.0.0-alpha.0 → 3.0.0-alpha.2
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/dist/components.d.cts +1 -1
- package/dist/components.d.ts +1 -1
- package/dist/index.cjs +3 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3 -9
- package/dist/index.js.map +1 -1
- package/dist/{types-DWYt1NR3.d.cts → types-xK4X9e5d.d.cts} +0 -5
- package/dist/{types-DWYt1NR3.d.ts → types-xK4X9e5d.d.ts} +0 -5
- package/package.json +14 -14
- package/src/plugin.ts +3 -10
- package/src/types.ts +0 -6
- package/globals.d.ts +0 -24
package/dist/components.d.cts
CHANGED
package/dist/components.d.ts
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -104,18 +104,12 @@ var pluginClient = _core.createPlugin.call(void 0, (options) => {
|
|
|
104
104
|
}
|
|
105
105
|
return resolvedName;
|
|
106
106
|
},
|
|
107
|
-
async writeFile(path2, source) {
|
|
108
|
-
if (!source) {
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
return this.fileManager.write(path2, source, { sanity: false });
|
|
112
|
-
},
|
|
113
107
|
async buildStart() {
|
|
114
108
|
const [swaggerPlugin] = _core.PluginManager.getDependedPlugins(this.plugins, [_pluginoas.pluginOasName]);
|
|
115
|
-
const oas = await swaggerPlugin.
|
|
109
|
+
const oas = await swaggerPlugin.context.getOas();
|
|
116
110
|
const root = _path2.default.resolve(this.config.root, this.config.output.path);
|
|
117
111
|
const mode = _core.FileManager.getMode(_path2.default.resolve(root, output.path));
|
|
118
|
-
const baseURL = await swaggerPlugin.
|
|
112
|
+
const baseURL = await swaggerPlugin.context.getBaseURL();
|
|
119
113
|
const operationGenerator = new OperationGenerator(
|
|
120
114
|
{
|
|
121
115
|
...this.plugin.options,
|
|
@@ -125,7 +119,7 @@ var pluginClient = _core.createPlugin.call(void 0, (options) => {
|
|
|
125
119
|
oas,
|
|
126
120
|
pluginManager: this.pluginManager,
|
|
127
121
|
plugin: this.plugin,
|
|
128
|
-
contentType: swaggerPlugin.
|
|
122
|
+
contentType: swaggerPlugin.context.contentType,
|
|
129
123
|
exclude,
|
|
130
124
|
include,
|
|
131
125
|
override,
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/kubb/kubb/packages/plugin-client/dist/index.cjs","../src/plugin.ts","../src/OperationGenerator.tsx"],"names":[],"mappings":"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","file":"/home/runner/work/kubb/kubb/packages/plugin-client/dist/index.cjs","sourcesContent":[null,"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 { pluginOasName } from '@kubb/plugin-oas'\nimport { getGroupedByTagFiles } from '@kubb/plugin-oas/utils'\n\nimport { OperationGenerator } from './OperationGenerator.tsx'\nimport { Client, Operations } from './components/index.ts'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'\nimport type { PluginClient } from './types.ts'\n\nexport const pluginClientName = 'plugin-client' satisfies PluginClient['name']\n\nexport const pluginClient = createPlugin<PluginClient>((options) => {\n const {\n output = { path: 'clients' },\n group,\n exclude = [],\n include,\n override = [],\n transformers = {},\n dataReturnType = 'data',\n pathParamsType = 'inline',\n templates,\n } = options\n\n const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`\n\n return {\n name: pluginClientName,\n options: {\n extName: output.extName,\n dataReturnType,\n client: {\n importPath: '@kubb/plugin-client/client',\n ...options.client,\n },\n pathParamsType,\n templates: {\n operations: Operations.templates,\n client: Client.templates,\n ...templates,\n },\n baseURL: undefined,\n },\n pre: [pluginOasName],\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, { isFile: type === 'file' })\n\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async writeFile(path, source) {\n if (!source) {\n return\n }\n\n return this.fileManager.write(path, source, { sanity: false })\n },\n async buildStart() {\n const [swaggerPlugin]: [Plugin<SwaggerPluginOptions>] = PluginManager.getDependedPlugins<SwaggerPluginOptions>(this.plugins, [pluginOasName])\n\n const oas = await swaggerPlugin.api.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.api.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.api.contentType,\n exclude,\n include,\n override,\n mode,\n },\n )\n\n const files = await operationGenerator.build()\n\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}}Service',\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 { Client, Operations } from './components/index.ts'\n\nimport type { Operation } from '@kubb/oas'\nimport type { OperationMethodResult, OperationsByMethod } from '@kubb/plugin-oas'\nimport type { FileMeta, PluginClient } from './types.ts'\n\nexport class OperationGenerator extends Generator<PluginClient['resolvedOptions'], PluginClient> {\n async all(operations: Operation[], _operationsByMethod: OperationsByMethod): OperationMethodResult<FileMeta> {\n const { pluginManager, oas, plugin, mode } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n const templates = {\n operations: Operations.templates,\n client: Client.templates,\n ...this.options.templates,\n }\n\n root.render(\n <App pluginManager={pluginManager} plugin={plugin} mode={mode}>\n <Oas oas={oas} operations={operations} generator={this}>\n {templates.operations && <Operations.File baseURL={this.options.baseURL} templates={templates.operations} />}\n </Oas>\n </App>,\n )\n\n return root.files\n }\n\n async operation(operation: Operation, options: PluginClient['resolvedOptions']): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin, mode } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n const templates = {\n operations: Operations.templates,\n client: Client.templates,\n ...options.templates,\n }\n\n if (!templates.client) {\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 <Client.File baseURL={this.options.baseURL} templates={templates.client} />\n </Oas.Operation>\n </Oas>\n </App>,\n )\n\n return root.files\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/kubb/kubb/packages/plugin-client/dist/index.cjs","../src/plugin.ts","../src/OperationGenerator.tsx"],"names":[],"mappings":"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","file":"/home/runner/work/kubb/kubb/packages/plugin-client/dist/index.cjs","sourcesContent":[null,"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 { pluginOasName } from '@kubb/plugin-oas'\nimport { getGroupedByTagFiles } from '@kubb/plugin-oas/utils'\n\nimport { OperationGenerator } from './OperationGenerator.tsx'\nimport { Client, Operations } from './components/index.ts'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'\nimport type { PluginClient } from './types.ts'\n\nexport const pluginClientName = 'plugin-client' satisfies PluginClient['name']\n\nexport const pluginClient = createPlugin<PluginClient>((options) => {\n const {\n output = { path: 'clients' },\n group,\n exclude = [],\n include,\n override = [],\n transformers = {},\n dataReturnType = 'data',\n pathParamsType = 'inline',\n templates,\n } = options\n\n const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`\n\n return {\n name: pluginClientName,\n options: {\n extName: output.extName,\n dataReturnType,\n client: {\n importPath: '@kubb/plugin-client/client',\n ...options.client,\n },\n pathParamsType,\n templates: {\n operations: Operations.templates,\n client: Client.templates,\n ...templates,\n },\n baseURL: undefined,\n },\n pre: [pluginOasName],\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, { 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 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()\n\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}}Service',\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 { Client, Operations } from './components/index.ts'\n\nimport type { Operation } from '@kubb/oas'\nimport type { OperationMethodResult, OperationsByMethod } from '@kubb/plugin-oas'\nimport type { FileMeta, PluginClient } from './types.ts'\n\nexport class OperationGenerator extends Generator<PluginClient['resolvedOptions'], PluginClient> {\n async all(operations: Operation[], _operationsByMethod: OperationsByMethod): OperationMethodResult<FileMeta> {\n const { pluginManager, oas, plugin, mode } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n const templates = {\n operations: Operations.templates,\n client: Client.templates,\n ...this.options.templates,\n }\n\n root.render(\n <App pluginManager={pluginManager} plugin={plugin} mode={mode}>\n <Oas oas={oas} operations={operations} generator={this}>\n {templates.operations && <Operations.File baseURL={this.options.baseURL} templates={templates.operations} />}\n </Oas>\n </App>,\n )\n\n return root.files\n }\n\n async operation(operation: Operation, options: PluginClient['resolvedOptions']): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin, mode } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n const templates = {\n operations: Operations.templates,\n client: Client.templates,\n ...options.templates,\n }\n\n if (!templates.client) {\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 <Client.File baseURL={this.options.baseURL} templates={templates.client} />\n </Oas.Operation>\n </Oas>\n </App>,\n )\n\n return root.files\n }\n}\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _kubb_core from '@kubb/core';
|
|
2
|
-
import { O as Options, P as PluginClient } from './types-
|
|
2
|
+
import { O as Options, P as PluginClient } from './types-xK4X9e5d.cjs';
|
|
3
3
|
import '@kubb/fs/types';
|
|
4
4
|
import '@kubb/plugin-oas';
|
|
5
5
|
import '@kubb/core/utils';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _kubb_core from '@kubb/core';
|
|
2
|
-
import { O as Options, P as PluginClient } from './types-
|
|
2
|
+
import { O as Options, P as PluginClient } from './types-xK4X9e5d.js';
|
|
3
3
|
import '@kubb/fs/types';
|
|
4
4
|
import '@kubb/plugin-oas';
|
|
5
5
|
import '@kubb/core/utils';
|
package/dist/index.js
CHANGED
|
@@ -104,18 +104,12 @@ var pluginClient = createPlugin((options) => {
|
|
|
104
104
|
}
|
|
105
105
|
return resolvedName;
|
|
106
106
|
},
|
|
107
|
-
async writeFile(path2, source) {
|
|
108
|
-
if (!source) {
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
return this.fileManager.write(path2, source, { sanity: false });
|
|
112
|
-
},
|
|
113
107
|
async buildStart() {
|
|
114
108
|
const [swaggerPlugin] = PluginManager.getDependedPlugins(this.plugins, [pluginOasName]);
|
|
115
|
-
const oas = await swaggerPlugin.
|
|
109
|
+
const oas = await swaggerPlugin.context.getOas();
|
|
116
110
|
const root = path.resolve(this.config.root, this.config.output.path);
|
|
117
111
|
const mode = FileManager.getMode(path.resolve(root, output.path));
|
|
118
|
-
const baseURL = await swaggerPlugin.
|
|
112
|
+
const baseURL = await swaggerPlugin.context.getBaseURL();
|
|
119
113
|
const operationGenerator = new OperationGenerator(
|
|
120
114
|
{
|
|
121
115
|
...this.plugin.options,
|
|
@@ -125,7 +119,7 @@ var pluginClient = createPlugin((options) => {
|
|
|
125
119
|
oas,
|
|
126
120
|
pluginManager: this.pluginManager,
|
|
127
121
|
plugin: this.plugin,
|
|
128
|
-
contentType: swaggerPlugin.
|
|
122
|
+
contentType: swaggerPlugin.context.contentType,
|
|
129
123
|
exclude,
|
|
130
124
|
include,
|
|
131
125
|
override,
|
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 } from '@kubb/core/transformers'\nimport { renderTemplate } from '@kubb/core/utils'\nimport { pluginOasName } from '@kubb/plugin-oas'\nimport { getGroupedByTagFiles } from '@kubb/plugin-oas/utils'\n\nimport { OperationGenerator } from './OperationGenerator.tsx'\nimport { Client, Operations } from './components/index.ts'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'\nimport type { PluginClient } from './types.ts'\n\nexport const pluginClientName = 'plugin-client' satisfies PluginClient['name']\n\nexport const pluginClient = createPlugin<PluginClient>((options) => {\n const {\n output = { path: 'clients' },\n group,\n exclude = [],\n include,\n override = [],\n transformers = {},\n dataReturnType = 'data',\n pathParamsType = 'inline',\n templates,\n } = options\n\n const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`\n\n return {\n name: pluginClientName,\n options: {\n extName: output.extName,\n dataReturnType,\n client: {\n importPath: '@kubb/plugin-client/client',\n ...options.client,\n },\n pathParamsType,\n templates: {\n operations: Operations.templates,\n client: Client.templates,\n ...templates,\n },\n baseURL: undefined,\n },\n pre: [pluginOasName],\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, { isFile: type === 'file' })\n\n if (type) {\n return transformers?.name?.(resolvedName, type) || resolvedName\n }\n\n return resolvedName\n },\n async writeFile(path, source) {\n if (!source) {\n return\n }\n\n return this.fileManager.write(path, source, { sanity: false })\n },\n async buildStart() {\n const [swaggerPlugin]: [Plugin<SwaggerPluginOptions>] = PluginManager.getDependedPlugins<SwaggerPluginOptions>(this.plugins, [pluginOasName])\n\n const oas = await swaggerPlugin.api.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.api.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.api.contentType,\n exclude,\n include,\n override,\n mode,\n },\n )\n\n const files = await operationGenerator.build()\n\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}}Service',\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 { Client, Operations } from './components/index.ts'\n\nimport type { Operation } from '@kubb/oas'\nimport type { OperationMethodResult, OperationsByMethod } from '@kubb/plugin-oas'\nimport type { FileMeta, PluginClient } from './types.ts'\n\nexport class OperationGenerator extends Generator<PluginClient['resolvedOptions'], PluginClient> {\n async all(operations: Operation[], _operationsByMethod: OperationsByMethod): OperationMethodResult<FileMeta> {\n const { pluginManager, oas, plugin, mode } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n const templates = {\n operations: Operations.templates,\n client: Client.templates,\n ...this.options.templates,\n }\n\n root.render(\n <App pluginManager={pluginManager} plugin={plugin} mode={mode}>\n <Oas oas={oas} operations={operations} generator={this}>\n {templates.operations && <Operations.File baseURL={this.options.baseURL} templates={templates.operations} />}\n </Oas>\n </App>,\n )\n\n return root.files\n }\n\n async operation(operation: Operation, options: PluginClient['resolvedOptions']): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin, mode } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n const templates = {\n operations: Operations.templates,\n client: Client.templates,\n ...options.templates,\n }\n\n if (!templates.client) {\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 <Client.File baseURL={this.options.baseURL} templates={templates.client} />\n </Oas.Operation>\n </Oas>\n </App>,\n )\n\n return root.files\n }\n}\n"],"mappings":"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","names":["options","path"]}
|
|
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 } from '@kubb/core/transformers'\nimport { renderTemplate } from '@kubb/core/utils'\nimport { pluginOasName } from '@kubb/plugin-oas'\nimport { getGroupedByTagFiles } from '@kubb/plugin-oas/utils'\n\nimport { OperationGenerator } from './OperationGenerator.tsx'\nimport { Client, Operations } from './components/index.ts'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'\nimport type { PluginClient } from './types.ts'\n\nexport const pluginClientName = 'plugin-client' satisfies PluginClient['name']\n\nexport const pluginClient = createPlugin<PluginClient>((options) => {\n const {\n output = { path: 'clients' },\n group,\n exclude = [],\n include,\n override = [],\n transformers = {},\n dataReturnType = 'data',\n pathParamsType = 'inline',\n templates,\n } = options\n\n const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`\n\n return {\n name: pluginClientName,\n options: {\n extName: output.extName,\n dataReturnType,\n client: {\n importPath: '@kubb/plugin-client/client',\n ...options.client,\n },\n pathParamsType,\n templates: {\n operations: Operations.templates,\n client: Client.templates,\n ...templates,\n },\n baseURL: undefined,\n },\n pre: [pluginOasName],\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, { 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 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()\n\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}}Service',\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 { Client, Operations } from './components/index.ts'\n\nimport type { Operation } from '@kubb/oas'\nimport type { OperationMethodResult, OperationsByMethod } from '@kubb/plugin-oas'\nimport type { FileMeta, PluginClient } from './types.ts'\n\nexport class OperationGenerator extends Generator<PluginClient['resolvedOptions'], PluginClient> {\n async all(operations: Operation[], _operationsByMethod: OperationsByMethod): OperationMethodResult<FileMeta> {\n const { pluginManager, oas, plugin, mode } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n const templates = {\n operations: Operations.templates,\n client: Client.templates,\n ...this.options.templates,\n }\n\n root.render(\n <App pluginManager={pluginManager} plugin={plugin} mode={mode}>\n <Oas oas={oas} operations={operations} generator={this}>\n {templates.operations && <Operations.File baseURL={this.options.baseURL} templates={templates.operations} />}\n </Oas>\n </App>,\n )\n\n return root.files\n }\n\n async operation(operation: Operation, options: PluginClient['resolvedOptions']): OperationMethodResult<FileMeta> {\n const { oas, pluginManager, plugin, mode } = this.context\n\n const root = createRoot({\n logger: pluginManager.logger,\n })\n\n const templates = {\n operations: Operations.templates,\n client: Client.templates,\n ...options.templates,\n }\n\n if (!templates.client) {\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 <Client.File baseURL={this.options.baseURL} templates={templates.client} />\n </Oas.Operation>\n </Oas>\n </App>,\n )\n\n return root.files\n }\n}\n"],"mappings":"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","names":["options"]}
|
|
@@ -224,10 +224,5 @@ type ResolvedOptions = {
|
|
|
224
224
|
templates: NonNullable<Templates>;
|
|
225
225
|
};
|
|
226
226
|
type PluginClient = PluginFactoryOptions<'plugin-client', Options, ResolvedOptions, never, ResolvePathOptions>;
|
|
227
|
-
declare module '@kubb/core' {
|
|
228
|
-
interface _Register {
|
|
229
|
-
['@kubb/plugin-client']: PluginClient;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
227
|
|
|
233
228
|
export { Client as C, type Options as O, type PluginClient as P, Operations as a };
|
|
@@ -224,10 +224,5 @@ type ResolvedOptions = {
|
|
|
224
224
|
templates: NonNullable<Templates>;
|
|
225
225
|
};
|
|
226
226
|
type PluginClient = PluginFactoryOptions<'plugin-client', Options, ResolvedOptions, never, ResolvePathOptions>;
|
|
227
|
-
declare module '@kubb/core' {
|
|
228
|
-
interface _Register {
|
|
229
|
-
['@kubb/plugin-client']: PluginClient;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
227
|
|
|
233
228
|
export { Client as C, type Options as O, type PluginClient as P, Operations as a };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubb/plugin-client",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.2",
|
|
4
4
|
"description": "Generator plugin-client",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -64,27 +64,27 @@
|
|
|
64
64
|
"!/**/__tests__/**"
|
|
65
65
|
],
|
|
66
66
|
"dependencies": {
|
|
67
|
-
"@kubb/core": "3.0.0-alpha.
|
|
68
|
-
"@kubb/fs": "3.0.0-alpha.
|
|
69
|
-
"@kubb/oas": "3.0.0-alpha.
|
|
70
|
-
"@kubb/parser-ts": "3.0.0-alpha.
|
|
71
|
-
"@kubb/plugin-oas": "3.0.0-alpha.
|
|
72
|
-
"@kubb/plugin-ts": "3.0.0-alpha.
|
|
73
|
-
"@kubb/react": "3.0.0-alpha.
|
|
67
|
+
"@kubb/core": "3.0.0-alpha.2",
|
|
68
|
+
"@kubb/fs": "3.0.0-alpha.2",
|
|
69
|
+
"@kubb/oas": "3.0.0-alpha.2",
|
|
70
|
+
"@kubb/parser-ts": "3.0.0-alpha.2",
|
|
71
|
+
"@kubb/plugin-oas": "3.0.0-alpha.2",
|
|
72
|
+
"@kubb/plugin-ts": "3.0.0-alpha.2",
|
|
73
|
+
"@kubb/react": "3.0.0-alpha.2"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
|
-
"@types/react": "^18.3.
|
|
77
|
-
"axios": "^1.7.
|
|
76
|
+
"@types/react": "^18.3.4",
|
|
77
|
+
"axios": "^1.7.5",
|
|
78
78
|
"react": "^18.3.1",
|
|
79
79
|
"tsup": "^8.2.4",
|
|
80
80
|
"typescript": "^5.5.4",
|
|
81
|
-
"@kubb/config-biome": "3.0.0-alpha.
|
|
82
|
-
"@kubb/config-ts": "3.0.0-alpha.
|
|
83
|
-
"@kubb/config-tsup": "3.0.0-alpha.
|
|
81
|
+
"@kubb/config-biome": "3.0.0-alpha.2",
|
|
82
|
+
"@kubb/config-ts": "3.0.0-alpha.2",
|
|
83
|
+
"@kubb/config-tsup": "3.0.0-alpha.2"
|
|
84
84
|
},
|
|
85
85
|
"peerDependencies": {
|
|
86
86
|
"axios": "^1.7.2",
|
|
87
|
-
"@kubb/react": "3.0.0-alpha.
|
|
87
|
+
"@kubb/react": "3.0.0-alpha.2"
|
|
88
88
|
},
|
|
89
89
|
"peerDependenciesMeta": {
|
|
90
90
|
"axios": {
|
package/src/plugin.ts
CHANGED
|
@@ -77,20 +77,13 @@ export const pluginClient = createPlugin<PluginClient>((options) => {
|
|
|
77
77
|
|
|
78
78
|
return resolvedName
|
|
79
79
|
},
|
|
80
|
-
async writeFile(path, source) {
|
|
81
|
-
if (!source) {
|
|
82
|
-
return
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
return this.fileManager.write(path, source, { sanity: false })
|
|
86
|
-
},
|
|
87
80
|
async buildStart() {
|
|
88
81
|
const [swaggerPlugin]: [Plugin<SwaggerPluginOptions>] = PluginManager.getDependedPlugins<SwaggerPluginOptions>(this.plugins, [pluginOasName])
|
|
89
82
|
|
|
90
|
-
const oas = await swaggerPlugin.
|
|
83
|
+
const oas = await swaggerPlugin.context.getOas()
|
|
91
84
|
const root = path.resolve(this.config.root, this.config.output.path)
|
|
92
85
|
const mode = FileManager.getMode(path.resolve(root, output.path))
|
|
93
|
-
const baseURL = await swaggerPlugin.
|
|
86
|
+
const baseURL = await swaggerPlugin.context.getBaseURL()
|
|
94
87
|
|
|
95
88
|
const operationGenerator = new OperationGenerator(
|
|
96
89
|
{
|
|
@@ -101,7 +94,7 @@ export const pluginClient = createPlugin<PluginClient>((options) => {
|
|
|
101
94
|
oas,
|
|
102
95
|
pluginManager: this.pluginManager,
|
|
103
96
|
plugin: this.plugin,
|
|
104
|
-
contentType: swaggerPlugin.
|
|
97
|
+
contentType: swaggerPlugin.context.contentType,
|
|
105
98
|
exclude,
|
|
106
99
|
include,
|
|
107
100
|
override,
|
package/src/types.ts
CHANGED
|
@@ -121,9 +121,3 @@ export type FileMeta = {
|
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
export type PluginClient = PluginFactoryOptions<'plugin-client', Options, ResolvedOptions, never, ResolvePathOptions>
|
|
124
|
-
|
|
125
|
-
declare module '@kubb/core' {
|
|
126
|
-
export interface _Register {
|
|
127
|
-
['@kubb/plugin-client']: PluginClient
|
|
128
|
-
}
|
|
129
|
-
}
|
package/globals.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/// <reference no-default-lib="true" />
|
|
2
|
-
/// <reference lib="esnext" />
|
|
3
|
-
|
|
4
|
-
type Environments = import('./src/types.ts').Environments
|
|
5
|
-
|
|
6
|
-
declare module 'global' {
|
|
7
|
-
namespace NodeJS {
|
|
8
|
-
export interface ProcessEnv extends Partial<Record<keyof Environments, string>> {}
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* `tsconfig.json`
|
|
13
|
-
* @example
|
|
14
|
-
"compilerOptions": {
|
|
15
|
-
___ "types": ["@kubb/plugin-client/globals"]
|
|
16
|
-
}
|
|
17
|
-
* @example implementation
|
|
18
|
-
{
|
|
19
|
-
___ env?: NodeJS.ProcessEnv
|
|
20
|
-
}
|
|
21
|
-
*/
|
|
22
|
-
declare namespace NodeJS {
|
|
23
|
-
export interface ProcessEnv extends Partial<Record<keyof Environments, string>> {}
|
|
24
|
-
}
|