@kubb/plugin-swr 3.0.0-alpha.2 → 3.0.0-alpha.4
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/index.cjs +12 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +12 -8
- package/dist/index.js.map +1 -1
- package/package.json +14 -14
- package/src/plugin.ts +13 -9
package/dist/index.cjs
CHANGED
|
@@ -133,13 +133,7 @@ var pluginSwr = _core.createPlugin.call(void 0, (options) => {
|
|
|
133
133
|
});
|
|
134
134
|
const files = await operationGenerator.build();
|
|
135
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") {
|
|
136
|
+
if (this.config.output.write && _optionalChain([group, 'optionalAccess', _12 => _12.type]) === "tag") {
|
|
143
137
|
const rootFiles = await _utils3.getGroupedByTagFiles.call(void 0, {
|
|
144
138
|
logger: this.logger,
|
|
145
139
|
files: this.fileManager.files,
|
|
@@ -151,12 +145,22 @@ var pluginSwr = _core.createPlugin.call(void 0, (options) => {
|
|
|
151
145
|
});
|
|
152
146
|
await this.addFile(...rootFiles);
|
|
153
147
|
}
|
|
154
|
-
|
|
148
|
+
},
|
|
149
|
+
async buildEnd() {
|
|
150
|
+
if (this.config.output.write === false) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
const root = _path2.default.resolve(this.config.root, this.config.output.path);
|
|
154
|
+
const files = await this.fileManager.getIndexFiles({
|
|
155
155
|
root,
|
|
156
156
|
output,
|
|
157
157
|
meta: { pluginKey: this.plugin.key },
|
|
158
158
|
logger: this.logger
|
|
159
159
|
});
|
|
160
|
+
await this.fileManager.processFiles({
|
|
161
|
+
logger: this.logger,
|
|
162
|
+
files
|
|
163
|
+
});
|
|
160
164
|
}
|
|
161
165
|
};
|
|
162
166
|
});
|
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":"AAAA;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACA;ACNA,wEAAiB;AAEjB,kCAAyD;AACzD,uDAAsC;AACtC,yCAA+B;AAC/B,6CAA8B;AAC9B,gDAAqC;AACrC,2CAA6B;AAC7B,6CAA8B;ADO9B;AACA;AEhBA;AACA,yDAAoB;AACpB,oCAAgC;AAyBpB,qDAAA;AAhBL,IAAM,mBAAA,EAAN,MAAA,QAAiC,8BAA6D;AAAA,EACnG,MAAM,GAAA,CAAI,SAAA,EAAsB,OAAA,EAAwE;AACtG,IAAA,MAAM,EAAE,GAAA,EAAK,aAAA,EAAe,MAAA,EAAQ,KAAK,EAAA,EAAI,IAAA,CAAK,OAAA;AAElD,IAAA,MAAM,KAAA,EAAO,+BAAA;AAAW,MACtB,MAAA,EAAQ,aAAA,CAAc;AAAA,IACxB,CAAC,CAAA;AAED,IAAA,GAAA,CAAI,iBAAC,OAAA,mBAAQ,SAAA,6BAAW,QAAA,GAAS,iBAAC,OAAA,qBAAQ,SAAA,6BAAW,cAAA,EAAc;AACjE,MAAA,OAAO,CAAC,CAAA;AAAA,IACV;AAEA,IAAA,IAAA,CAAK,MAAA;AAAA,sBACH,6BAAA,UAAC,EAAA,EAAI,aAAA,EAA8B,MAAA,EAAQ,EAAE,GAAG,MAAA,EAAQ,QAAQ,CAAA,EAAG,IAAA,EACjE,QAAA,kBAAA,6BAAA,eAAC,EAAA,EAAI,GAAA,EAAU,UAAA,EAAY,CAAC,SAAS,CAAA,EAAG,SAAA,EAAW,IAAA,EACjD,QAAA,kBAAA,6BAAA,eAAC,CAAI,SAAA,EAAJ,EAAc,SAAA,EACb,QAAA,kBAAA,6BAAA;AAAA,QAAC,uBAAA,CAAM,IAAA;AAAA,QAAN;AAAA,UACC,SAAA,EAAW;AAAA,YACT,KAAA,EAAO,OAAA,CAAQ,SAAA,CAAU,KAAA;AAAA,YACzB,YAAA,EAAc,OAAA,CAAQ,SAAA,CAAU;AAAA,UAClC;AAAA,QAAA;AAAA,MACF,EAAA,CACF,EAAA,CACF,EAAA,CACF;AAAA,IACF,CAAA;AAEA,IAAA,OAAO,IAAA,CAAK,KAAA;AAAA,EACd;AAAA,EAEA,MAAM,IAAA,CAAK,SAAA,EAAsB,OAAA,EAAwE;AACvG,IAAA,MAAM,EAAE,GAAA,EAAK,aAAA,EAAe,MAAA,EAAQ,KAAK,EAAA,EAAI,IAAA,CAAK,OAAA;AAElD,IAAA,MAAM,KAAA,EAAO,+BAAA;AAAW,MACtB,MAAA,EAAQ,aAAA,CAAc;AAAA,IACxB,CAAC,CAAA;AAED,IAAA,GAAA,CAAI,iBAAC,OAAA,qBAAQ,SAAA,6BAAW,UAAA,EAAU;AAChC,MAAA,OAAO,CAAC,CAAA;AAAA,IACV;AAEA,IAAA,IAAA,CAAK,MAAA;AAAA,sBACH,6BAAA,UAAC,EAAA,EAAI,aAAA,EAA8B,MAAA,EAAQ,EAAE,GAAG,MAAA,EAAQ,QAAQ,CAAA,EAAG,IAAA,EACjE,QAAA,kBAAA,6BAAA,eAAC,EAAA,EAAI,GAAA,EAAU,UAAA,EAAY,CAAC,SAAS,CAAA,EAAG,SAAA,EAAW,IAAA,EACjD,QAAA,kBAAA,6BAAA,eAAC,CAAI,SAAA,EAAJ,EAAc,SAAA,EACb,QAAA,kBAAA,6BAAA,0BAAC,CAAS,IAAA,EAAT,EAAc,SAAA,EAAW,OAAA,CAAQ,SAAA,CAAU,SAAA,CAAU,EAAA,CACxD,EAAA,CACF,EAAA,CACF;AAAA,IACF,CAAA;AAEA,IAAA,OAAO,IAAA,CAAK,KAAA;AAAA,EACd;AAAA,EAEA,MAAM,GAAA,CAAI,SAAA,EAAsB,OAAA,EAAwE;AACtG,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,SAAA,EAAW,OAAO,CAAA;AAAA,EACrC;AAAA,EACA,MAAM,KAAA,CAAM,SAAA,EAAsB,OAAA,EAAwE;AACxG,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,SAAA,EAAW,OAAO,CAAA;AAAA,EACrC;AAAA,EACA,MAAM,MAAA,CAAO,SAAA,EAAsB,OAAA,EAAwE;AACzG,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,SAAA,EAAW,OAAO,CAAA;AAAA,EACrC;AACF,CAAA;AFRA;AACA;AClDO,IAAM,cAAA,EAAgB,YAAA;AAEtB,IAAM,UAAA,EAAY,gCAAA,CAAyB,OAAA,EAAA,GAAY;AAC5D,EAAA,MAAM,EAAE,OAAA,EAAS,EAAE,IAAA,EAAM,QAAQ,CAAA,EAAG,KAAA,EAAO,QAAA,EAAU,CAAC,CAAA,EAAG,OAAA,EAAS,SAAA,EAAW,CAAC,CAAA,EAAG,MAAA,EAAQ,aAAA,EAAe,CAAC,CAAA,EAAG,SAAA,EAAW,eAAA,EAAiB,OAAO,EAAA,EAAI,OAAA;AACnJ,EAAA,MAAM,SAAA,kBAAW,KAAA,6BAAO,SAAA,EAAS,KAAA,CAAM,OAAA,EAAS,CAAA,EAAA;AAEzC,EAAA;AACC,IAAA;AACG,IAAA;AACS,MAAA;AACL,MAAA;AACU,QAAA;AACN,QAAA;AACc,QAAA;AACxB,QAAA;AACL,MAAA;AACQ,MAAA;AACM,QAAA;AACD,QAAA;AACb,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AAC8C,IAAA;AACL,IAAA;AACK,MAAA;AACC,MAAA;AAEtB,MAAA;AAKgB,QAAA;AACvC,MAAA;AAE2C,MAAA;AACR,QAAA;AAEQ,QAAA;AAC3C,MAAA;AAEuC,MAAA;AACzC,IAAA;AACwB,IAAA;AACW,MAAA;AAEW,MAAA;AACX,QAAA;AACrB,UAAA;AACS,UAAA;AAClB,QAAA;AACH,MAAA;AAEqB,MAAA;AACW,QAAA;AAChC,MAAA;AAEU,MAAA;AACkC,QAAA;AAC5C,MAAA;AAEO,MAAA;AACT,IAAA;AACmB,IAAA;AACqD,MAAA;AAE9B,MAAA;AACI,MAAA;AACN,MAAA;AAEP,MAAA;AAC7B,QAAA;AACoB,QAAA;AACP,QAAA;AACsB,QAAA;AACnC,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACD,MAAA;AAE4C,MAAA;AAClB,MAAA;AAC7B,IAAA;AACiB,IAAA;AACyB,MAAA;AACtC,QAAA;AACF,MAAA;AAE4C,MAAA;AAEjB,MAAA;AACD,QAAA;AACT,UAAA;AACW,UAAA;AACX,UAAA;AACb,UAAA;AAC4B,UAAA;AAC5B,UAAA;AACA,UAAA;AACD,QAAA;AAE8B,QAAA;AACjC,MAAA;AAEkC,MAAA;AAChC,QAAA;AACA,QAAA;AACmC,QAAA;AACtB,QAAA;AACd,MAAA;AACH,IAAA;AACF,EAAA;AACD;AD+BkD;AACA;AACA;AACA","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":["/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 if (this.config.output.write && 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 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 const files = await this.fileManager.getIndexFiles({\n root,\n output,\n meta: { pluginKey: this.plugin.key },\n logger: this.logger,\n })\n\n await this.fileManager.processFiles({\n logger: this.logger,\n files,\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"]}
|
package/dist/index.js
CHANGED
|
@@ -133,13 +133,7 @@ var pluginSwr = createPlugin((options) => {
|
|
|
133
133
|
});
|
|
134
134
|
const files = await operationGenerator.build();
|
|
135
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") {
|
|
136
|
+
if (this.config.output.write && group?.type === "tag") {
|
|
143
137
|
const rootFiles = await getGroupedByTagFiles({
|
|
144
138
|
logger: this.logger,
|
|
145
139
|
files: this.fileManager.files,
|
|
@@ -151,12 +145,22 @@ var pluginSwr = createPlugin((options) => {
|
|
|
151
145
|
});
|
|
152
146
|
await this.addFile(...rootFiles);
|
|
153
147
|
}
|
|
154
|
-
|
|
148
|
+
},
|
|
149
|
+
async buildEnd() {
|
|
150
|
+
if (this.config.output.write === false) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
const root = path.resolve(this.config.root, this.config.output.path);
|
|
154
|
+
const files = await this.fileManager.getIndexFiles({
|
|
155
155
|
root,
|
|
156
156
|
output,
|
|
157
157
|
meta: { pluginKey: this.plugin.key },
|
|
158
158
|
logger: this.logger
|
|
159
159
|
});
|
|
160
|
+
await this.fileManager.processFiles({
|
|
161
|
+
logger: this.logger,
|
|
162
|
+
files
|
|
163
|
+
});
|
|
160
164
|
}
|
|
161
165
|
};
|
|
162
166
|
});
|
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","../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 if (this.config.output.write && 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 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 const files = await this.fileManager.getIndexFiles({\n root,\n output,\n meta: { pluginKey: this.plugin.key },\n logger: this.logger,\n })\n\n await this.fileManager.processFiles({\n logger: this.logger,\n files,\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"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubb/plugin-swr",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.4",
|
|
4
4
|
"description": "Generator plugin-swr",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -55,27 +55,27 @@
|
|
|
55
55
|
"!/**/__tests__/**"
|
|
56
56
|
],
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@kubb/core": "3.0.0-alpha.
|
|
59
|
-
"@kubb/fs": "3.0.0-alpha.
|
|
60
|
-
"@kubb/oas": "3.0.0-alpha.
|
|
61
|
-
"@kubb/parser-ts": "3.0.0-alpha.
|
|
62
|
-
"@kubb/plugin-client": "3.0.0-alpha.
|
|
63
|
-
"@kubb/plugin-oas": "3.0.0-alpha.
|
|
64
|
-
"@kubb/plugin-ts": "3.0.0-alpha.
|
|
65
|
-
"@kubb/plugin-zod": "3.0.0-alpha.
|
|
66
|
-
"@kubb/react": "3.0.0-alpha.
|
|
58
|
+
"@kubb/core": "3.0.0-alpha.4",
|
|
59
|
+
"@kubb/fs": "3.0.0-alpha.4",
|
|
60
|
+
"@kubb/oas": "3.0.0-alpha.4",
|
|
61
|
+
"@kubb/parser-ts": "3.0.0-alpha.4",
|
|
62
|
+
"@kubb/plugin-client": "3.0.0-alpha.4",
|
|
63
|
+
"@kubb/plugin-oas": "3.0.0-alpha.4",
|
|
64
|
+
"@kubb/plugin-ts": "3.0.0-alpha.4",
|
|
65
|
+
"@kubb/plugin-zod": "3.0.0-alpha.4",
|
|
66
|
+
"@kubb/react": "3.0.0-alpha.4"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@types/react": "^18.3.4",
|
|
70
70
|
"react": "^18.3.1",
|
|
71
71
|
"tsup": "^8.2.4",
|
|
72
72
|
"typescript": "^5.5.4",
|
|
73
|
-
"@kubb/config-biome": "3.0.0-alpha.
|
|
74
|
-
"@kubb/config-ts": "3.0.0-alpha.
|
|
75
|
-
"@kubb/config-tsup": "3.0.0-alpha.
|
|
73
|
+
"@kubb/config-biome": "3.0.0-alpha.4",
|
|
74
|
+
"@kubb/config-ts": "3.0.0-alpha.4",
|
|
75
|
+
"@kubb/config-tsup": "3.0.0-alpha.4"
|
|
76
76
|
},
|
|
77
77
|
"peerDependencies": {
|
|
78
|
-
"@kubb/react": "3.0.0-alpha.
|
|
78
|
+
"@kubb/react": "3.0.0-alpha.4"
|
|
79
79
|
},
|
|
80
80
|
"engines": {
|
|
81
81
|
"node": ">=20"
|
package/src/plugin.ts
CHANGED
|
@@ -99,15 +99,8 @@ export const pluginSwr = createPlugin<PluginSwr>((options) => {
|
|
|
99
99
|
|
|
100
100
|
const files = await operationGenerator.build()
|
|
101
101
|
await this.addFile(...files)
|
|
102
|
-
},
|
|
103
|
-
async buildEnd() {
|
|
104
|
-
if (this.config.output.write === false) {
|
|
105
|
-
return
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
const root = path.resolve(this.config.root, this.config.output.path)
|
|
109
102
|
|
|
110
|
-
if (group?.type === 'tag') {
|
|
103
|
+
if (this.config.output.write && group?.type === 'tag') {
|
|
111
104
|
const rootFiles = await getGroupedByTagFiles({
|
|
112
105
|
logger: this.logger,
|
|
113
106
|
files: this.fileManager.files,
|
|
@@ -120,13 +113,24 @@ export const pluginSwr = createPlugin<PluginSwr>((options) => {
|
|
|
120
113
|
|
|
121
114
|
await this.addFile(...rootFiles)
|
|
122
115
|
}
|
|
116
|
+
},
|
|
117
|
+
async buildEnd() {
|
|
118
|
+
if (this.config.output.write === false) {
|
|
119
|
+
return
|
|
120
|
+
}
|
|
123
121
|
|
|
124
|
-
|
|
122
|
+
const root = path.resolve(this.config.root, this.config.output.path)
|
|
123
|
+
const files = await this.fileManager.getIndexFiles({
|
|
125
124
|
root,
|
|
126
125
|
output,
|
|
127
126
|
meta: { pluginKey: this.plugin.key },
|
|
128
127
|
logger: this.logger,
|
|
129
128
|
})
|
|
129
|
+
|
|
130
|
+
await this.fileManager.processFiles({
|
|
131
|
+
logger: this.logger,
|
|
132
|
+
files,
|
|
133
|
+
})
|
|
130
134
|
},
|
|
131
135
|
}
|
|
132
136
|
})
|