@kubb/plugin-msw 3.0.0-alpha.13 → 3.0.0-alpha.15
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/chunk-2H7SYKGX.js +24 -0
- package/dist/chunk-2H7SYKGX.js.map +1 -0
- package/dist/chunk-HYNRHFXE.cjs +130 -0
- package/dist/chunk-HYNRHFXE.cjs.map +1 -0
- package/dist/chunk-SFLIUHHL.cjs +27 -0
- package/dist/chunk-SFLIUHHL.cjs.map +1 -0
- package/dist/chunk-YSIJ7IAG.js +121 -0
- package/dist/chunk-YSIJ7IAG.js.map +1 -0
- package/dist/components.cjs +5 -5
- package/dist/components.d.cts +7 -71
- package/dist/components.d.ts +7 -71
- package/dist/components.js +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 +9 -125
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -86
- package/dist/index.d.ts +4 -86
- package/dist/index.js +2 -124
- package/dist/index.js.map +1 -1
- package/dist/types-cZ4a5aFe.d.cts +76 -0
- package/dist/types-cZ4a5aFe.d.ts +76 -0
- package/package.json +21 -13
- package/src/components/Handlers.tsx +19 -0
- package/src/components/Mock.tsx +10 -85
- package/src/components/index.ts +1 -1
- package/src/generators/handlersGenerator.tsx +32 -0
- package/src/generators/index.ts +2 -0
- package/src/generators/mockGenerator.tsx +35 -0
- package/src/plugin.ts +5 -14
- package/src/types.ts +4 -12
- package/dist/chunk-3KHLTEUD.js +0 -98
- package/dist/chunk-3KHLTEUD.js.map +0 -1
- package/dist/chunk-BD7UJBXM.cjs +0 -101
- package/dist/chunk-BD7UJBXM.cjs.map +0 -1
- package/src/OperationGenerator.tsx +0 -66
- package/src/components/Operations.tsx +0 -94
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubb/plugin-msw",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.15",
|
|
4
4
|
"description": "Generator swagger",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -40,6 +40,11 @@
|
|
|
40
40
|
"require": "./dist/components.cjs",
|
|
41
41
|
"default": "./dist/components.cjs"
|
|
42
42
|
},
|
|
43
|
+
"./generators": {
|
|
44
|
+
"import": "./dist/generators.js",
|
|
45
|
+
"require": "./dist/generators.cjs",
|
|
46
|
+
"default": "./dist/generators.cjs"
|
|
47
|
+
},
|
|
43
48
|
"./package.json": "./package.json",
|
|
44
49
|
"./*": "./*"
|
|
45
50
|
},
|
|
@@ -56,6 +61,9 @@
|
|
|
56
61
|
],
|
|
57
62
|
"components": [
|
|
58
63
|
"./dist/components.d.ts"
|
|
64
|
+
],
|
|
65
|
+
"generators": [
|
|
66
|
+
"./dist/generators.d.ts"
|
|
59
67
|
]
|
|
60
68
|
}
|
|
61
69
|
},
|
|
@@ -66,14 +74,14 @@
|
|
|
66
74
|
"!/**/__tests__/**"
|
|
67
75
|
],
|
|
68
76
|
"dependencies": {
|
|
69
|
-
"@kubb/core": "3.0.0-alpha.
|
|
70
|
-
"@kubb/fs": "3.0.0-alpha.
|
|
71
|
-
"@kubb/oas": "3.0.0-alpha.
|
|
72
|
-
"@kubb/parser-ts": "3.0.0-alpha.
|
|
73
|
-
"@kubb/plugin-faker": "3.0.0-alpha.
|
|
74
|
-
"@kubb/plugin-oas": "3.0.0-alpha.
|
|
75
|
-
"@kubb/plugin-ts": "3.0.0-alpha.
|
|
76
|
-
"@kubb/react": "3.0.0-alpha.
|
|
77
|
+
"@kubb/core": "3.0.0-alpha.15",
|
|
78
|
+
"@kubb/fs": "3.0.0-alpha.15",
|
|
79
|
+
"@kubb/oas": "3.0.0-alpha.15",
|
|
80
|
+
"@kubb/parser-ts": "3.0.0-alpha.15",
|
|
81
|
+
"@kubb/plugin-faker": "3.0.0-alpha.15",
|
|
82
|
+
"@kubb/plugin-oas": "3.0.0-alpha.15",
|
|
83
|
+
"@kubb/plugin-ts": "3.0.0-alpha.15",
|
|
84
|
+
"@kubb/react": "3.0.0-alpha.15"
|
|
77
85
|
},
|
|
78
86
|
"devDependencies": {
|
|
79
87
|
"@types/react": "^18.3.5",
|
|
@@ -81,12 +89,12 @@
|
|
|
81
89
|
"react": "^18.3.1",
|
|
82
90
|
"tsup": "^8.2.4",
|
|
83
91
|
"typescript": "^5.5.4",
|
|
84
|
-
"@kubb/config-biome": "3.0.0-alpha.
|
|
85
|
-
"@kubb/config-ts": "3.0.0-alpha.
|
|
86
|
-
"@kubb/config-tsup": "3.0.0-alpha.
|
|
92
|
+
"@kubb/config-biome": "3.0.0-alpha.15",
|
|
93
|
+
"@kubb/config-ts": "3.0.0-alpha.15",
|
|
94
|
+
"@kubb/config-tsup": "3.0.0-alpha.15"
|
|
87
95
|
},
|
|
88
96
|
"peerDependencies": {
|
|
89
|
-
"@kubb/react": "3.0.0-alpha.
|
|
97
|
+
"@kubb/react": "3.0.0-alpha.15"
|
|
90
98
|
},
|
|
91
99
|
"engines": {
|
|
92
100
|
"node": ">=20"
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { File } from '@kubb/react'
|
|
2
|
+
import type { ReactNode } from 'react'
|
|
3
|
+
|
|
4
|
+
type HandlersProps = {
|
|
5
|
+
/**
|
|
6
|
+
* Name of the function
|
|
7
|
+
*/
|
|
8
|
+
name: string
|
|
9
|
+
// custom
|
|
10
|
+
handlers: string[]
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function Handlers({ name, handlers }: HandlersProps): ReactNode {
|
|
14
|
+
return (
|
|
15
|
+
<File.Source name={name} isIndexable isExportable>
|
|
16
|
+
{`export const ${name} = ${JSON.stringify(handlers).replaceAll(`"`, '')} as const`}
|
|
17
|
+
</File.Source>
|
|
18
|
+
)
|
|
19
|
+
}
|
package/src/components/Mock.tsx
CHANGED
|
@@ -1,37 +1,26 @@
|
|
|
1
1
|
import { URLPath } from '@kubb/core/utils'
|
|
2
|
-
import { File
|
|
3
|
-
import { pluginFakerName } from '@kubb/plugin-faker'
|
|
4
|
-
import { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'
|
|
2
|
+
import { File } from '@kubb/react'
|
|
5
3
|
|
|
6
|
-
import type {
|
|
4
|
+
import type { Operation } from '@kubb/oas'
|
|
7
5
|
import type { ReactNode } from 'react'
|
|
8
|
-
import type { FileMeta, PluginMsw } from '../types.ts'
|
|
9
6
|
|
|
10
|
-
type
|
|
7
|
+
type Props = {
|
|
11
8
|
/**
|
|
12
9
|
* Name of the function
|
|
13
10
|
*/
|
|
14
11
|
name: string
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
*/
|
|
18
|
-
method: HttpMethod
|
|
19
|
-
/**
|
|
20
|
-
* Path of the mock
|
|
21
|
-
*/
|
|
22
|
-
path: URLPath
|
|
23
|
-
/**
|
|
24
|
-
* Name of the import for the mock(this is a function).
|
|
25
|
-
* @example createPet
|
|
26
|
-
*/
|
|
12
|
+
operation: Operation
|
|
13
|
+
// custom
|
|
27
14
|
responseName: string
|
|
28
15
|
}
|
|
29
16
|
|
|
30
|
-
function
|
|
17
|
+
export function Mock({ name, responseName, operation }: Props): ReactNode {
|
|
18
|
+
const path = new URLPath(operation.path)
|
|
19
|
+
|
|
31
20
|
return (
|
|
32
|
-
<File.Source name={name} isExportable
|
|
21
|
+
<File.Source name={name} isIndexable isExportable>
|
|
33
22
|
{`
|
|
34
|
-
export const ${name} = http.${method}('*${path.toURLPath()}', function handler(info) {
|
|
23
|
+
export const ${name} = http.${operation.method}('*${path.toURLPath()}', function handler(info) {
|
|
35
24
|
return new Response(JSON.stringify(${responseName}()), {
|
|
36
25
|
headers: {
|
|
37
26
|
'Content-Type': 'application/json',
|
|
@@ -42,67 +31,3 @@ function Template({ name, method, path, responseName }: TemplateProps): ReactNod
|
|
|
42
31
|
</File.Source>
|
|
43
32
|
)
|
|
44
33
|
}
|
|
45
|
-
|
|
46
|
-
const defaultTemplates = { default: Template } as const
|
|
47
|
-
|
|
48
|
-
type Props = {
|
|
49
|
-
/**
|
|
50
|
-
* This will make it possible to override the default behaviour.
|
|
51
|
-
*/
|
|
52
|
-
Template?: React.ComponentType<React.ComponentProps<typeof Template>>
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export function Mock({ Template = defaultTemplates.default }: Props): ReactNode {
|
|
56
|
-
const { pluginManager } = useApp<PluginMsw>()
|
|
57
|
-
const { getSchemas, getName } = useOperationManager()
|
|
58
|
-
const operation = useOperation()
|
|
59
|
-
|
|
60
|
-
const schemas = getSchemas(operation)
|
|
61
|
-
const name = getName(operation, { type: 'function' })
|
|
62
|
-
const responseName = pluginManager.resolveName({
|
|
63
|
-
pluginKey: [pluginFakerName],
|
|
64
|
-
name: schemas.response.name,
|
|
65
|
-
type: 'type',
|
|
66
|
-
})
|
|
67
|
-
|
|
68
|
-
return <Template name={name} responseName={responseName} method={operation.method} path={new URLPath(operation.path)} />
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
type FileProps = {
|
|
72
|
-
/**
|
|
73
|
-
* This will make it possible to override the default behaviour.
|
|
74
|
-
*/
|
|
75
|
-
templates?: typeof defaultTemplates
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
Mock.File = function ({ templates = defaultTemplates }: FileProps): ReactNode {
|
|
79
|
-
const {
|
|
80
|
-
pluginManager,
|
|
81
|
-
plugin: {
|
|
82
|
-
options: { extName },
|
|
83
|
-
},
|
|
84
|
-
} = useApp<PluginMsw>()
|
|
85
|
-
const { getSchemas, getFile } = useOperationManager()
|
|
86
|
-
const operation = useOperation()
|
|
87
|
-
|
|
88
|
-
const schemas = getSchemas(operation)
|
|
89
|
-
const file = getFile(operation)
|
|
90
|
-
const fileFaker = getFile(operation, { pluginKey: [pluginFakerName] })
|
|
91
|
-
const responseName = pluginManager.resolveName({
|
|
92
|
-
pluginKey: [pluginFakerName],
|
|
93
|
-
name: schemas.response.name,
|
|
94
|
-
type: 'function',
|
|
95
|
-
})
|
|
96
|
-
|
|
97
|
-
const Template = templates.default
|
|
98
|
-
|
|
99
|
-
return (
|
|
100
|
-
<File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>
|
|
101
|
-
<File.Import name={['http']} path={'msw'} />
|
|
102
|
-
{fileFaker && responseName && <File.Import name={[responseName]} root={file.path} path={fileFaker.path} />}
|
|
103
|
-
<Mock Template={Template} />
|
|
104
|
-
</File>
|
|
105
|
-
)
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
Mock.templates = defaultTemplates
|
package/src/components/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { Mock } from './Mock.tsx'
|
|
2
|
-
export {
|
|
2
|
+
export { Handlers } from './Handlers.tsx'
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { createReactGenerator } from '@kubb/plugin-oas'
|
|
2
|
+
import { useOperationManager } from '@kubb/plugin-oas/hooks'
|
|
3
|
+
import { File, useApp } from '@kubb/react'
|
|
4
|
+
import { Handlers } from '../components/Handlers.tsx'
|
|
5
|
+
import { pluginMswName } from '../plugin.ts'
|
|
6
|
+
import type { PluginMsw } from '../types'
|
|
7
|
+
|
|
8
|
+
export const handlersGenerator = createReactGenerator<PluginMsw>({
|
|
9
|
+
name: 'plugin-msw',
|
|
10
|
+
Operations({ operations }) {
|
|
11
|
+
const { pluginManager } = useApp<PluginMsw>()
|
|
12
|
+
const { getName, getFile } = useOperationManager()
|
|
13
|
+
|
|
14
|
+
const file = pluginManager.getFile({ name: 'handlers', extName: '.ts', pluginKey: [pluginMswName] })
|
|
15
|
+
|
|
16
|
+
const imports = operations.map((operation) => {
|
|
17
|
+
const operationFile = getFile(operation, { pluginKey: [pluginMswName] })
|
|
18
|
+
const operationName = getName(operation, { pluginKey: [pluginMswName], type: 'function' })
|
|
19
|
+
|
|
20
|
+
return <File.Import key={operationFile.path} name={[operationName]} root={file.path} path={operationFile.path} />
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
const handlers = operations.map((operation) => getName(operation, { type: 'function', pluginKey: [pluginMswName] }))
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<File baseName={file.baseName} path={file.path} meta={file.meta}>
|
|
27
|
+
{imports}
|
|
28
|
+
<Handlers name={'handlers'} handlers={handlers} />
|
|
29
|
+
</File>
|
|
30
|
+
)
|
|
31
|
+
},
|
|
32
|
+
})
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { pluginFakerName } from '@kubb/plugin-faker'
|
|
2
|
+
import { createReactGenerator } from '@kubb/plugin-oas'
|
|
3
|
+
import { useOperationManager } from '@kubb/plugin-oas/hooks'
|
|
4
|
+
import { pluginTsName } from '@kubb/plugin-ts'
|
|
5
|
+
import { File, useApp } from '@kubb/react'
|
|
6
|
+
import { Mock } from '../components'
|
|
7
|
+
import type { PluginMsw } from '../types'
|
|
8
|
+
|
|
9
|
+
export const mockGenerator = createReactGenerator<PluginMsw>({
|
|
10
|
+
name: 'plugin-msw',
|
|
11
|
+
Operation({ operation }) {
|
|
12
|
+
const { pluginManager, plugin } = useApp<PluginMsw>()
|
|
13
|
+
const { getSchemas, getName, getFile } = useOperationManager()
|
|
14
|
+
|
|
15
|
+
const name = getName(operation, { type: 'function' })
|
|
16
|
+
const file = getFile(operation)
|
|
17
|
+
const fakerFile = getFile(operation, { pluginKey: [pluginFakerName] })
|
|
18
|
+
const fakerSchemas = getSchemas(operation, { pluginKey: [pluginTsName] })
|
|
19
|
+
|
|
20
|
+
const responseName = pluginManager.resolveName({
|
|
21
|
+
pluginKey: [pluginFakerName],
|
|
22
|
+
name: fakerSchemas.response.name,
|
|
23
|
+
type: 'function',
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
return (
|
|
27
|
+
<File baseName={file.baseName} path={file.path} meta={file.meta}>
|
|
28
|
+
<File.Import name={['http']} path={'msw'} />
|
|
29
|
+
{fakerFile && responseName && <File.Import extName={plugin.output?.extName} name={[responseName]} root={file.path} path={fakerFile.path} />}
|
|
30
|
+
|
|
31
|
+
<Mock name={name} responseName={responseName} operation={operation} />
|
|
32
|
+
</File>
|
|
33
|
+
)
|
|
34
|
+
},
|
|
35
|
+
})
|
package/src/plugin.ts
CHANGED
|
@@ -3,22 +3,20 @@ import path from 'node:path'
|
|
|
3
3
|
import { FileManager, PluginManager, createPlugin } from '@kubb/core'
|
|
4
4
|
import { camelCase } from '@kubb/core/transformers'
|
|
5
5
|
import { renderTemplate } from '@kubb/core/utils'
|
|
6
|
-
import { pluginOasName } from '@kubb/plugin-oas'
|
|
6
|
+
import { OperationGenerator, pluginOasName } from '@kubb/plugin-oas'
|
|
7
7
|
|
|
8
8
|
import { pluginFakerName } from '@kubb/plugin-faker'
|
|
9
9
|
import { pluginTsName } from '@kubb/plugin-ts'
|
|
10
10
|
|
|
11
|
-
import { OperationGenerator } from './OperationGenerator.tsx'
|
|
12
|
-
import { Mock, Operations } from './components/index.ts'
|
|
13
|
-
|
|
14
11
|
import type { Plugin } from '@kubb/core'
|
|
15
12
|
import type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'
|
|
13
|
+
import { handlersGenerator, mockGenerator } from './generators'
|
|
16
14
|
import type { PluginMsw } from './types.ts'
|
|
17
15
|
|
|
18
16
|
export const pluginMswName = 'plugin-msw' satisfies PluginMsw['name']
|
|
19
17
|
|
|
20
18
|
export const pluginMsw = createPlugin<PluginMsw>((options) => {
|
|
21
|
-
const { output = { path: 'handlers' }, group, exclude = [], include, override = [], transformers = {},
|
|
19
|
+
const { output = { path: 'handlers' }, group, exclude = [], include, override = [], transformers = {}, handlers = false } = options
|
|
22
20
|
const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`
|
|
23
21
|
|
|
24
22
|
return {
|
|
@@ -27,14 +25,7 @@ export const pluginMsw = createPlugin<PluginMsw>((options) => {
|
|
|
27
25
|
exportType: 'barrelNamed',
|
|
28
26
|
...output,
|
|
29
27
|
},
|
|
30
|
-
options: {
|
|
31
|
-
extName: output.extName,
|
|
32
|
-
templates: {
|
|
33
|
-
operations: Operations.templates,
|
|
34
|
-
mock: Mock.templates,
|
|
35
|
-
...templates,
|
|
36
|
-
},
|
|
37
|
-
},
|
|
28
|
+
options: {},
|
|
38
29
|
pre: [pluginOasName, pluginTsName, pluginFakerName],
|
|
39
30
|
resolvePath(baseName, pathMode, options) {
|
|
40
31
|
const root = path.resolve(this.config.root, this.config.output.path)
|
|
@@ -85,7 +76,7 @@ export const pluginMsw = createPlugin<PluginMsw>((options) => {
|
|
|
85
76
|
mode,
|
|
86
77
|
})
|
|
87
78
|
|
|
88
|
-
const files = await operationGenerator.build()
|
|
79
|
+
const files = await operationGenerator.build(...[mockGenerator, handlers ? handlersGenerator : undefined].filter(Boolean))
|
|
89
80
|
await this.addFile(...files)
|
|
90
81
|
|
|
91
82
|
if (this.config.output.exportType) {
|
package/src/types.ts
CHANGED
|
@@ -2,12 +2,6 @@ import type { Plugin, PluginFactoryOptions, ResolveNameParams } from '@kubb/core
|
|
|
2
2
|
import type * as KubbFile from '@kubb/fs/types'
|
|
3
3
|
|
|
4
4
|
import type { Exclude, Include, Override, ResolvePathOptions } from '@kubb/plugin-oas'
|
|
5
|
-
import type { Mock, Operations } from './components/index.ts'
|
|
6
|
-
|
|
7
|
-
type Templates = {
|
|
8
|
-
operations?: typeof Operations.templates | false
|
|
9
|
-
mock?: typeof Mock.templates | false
|
|
10
|
-
}
|
|
11
5
|
|
|
12
6
|
export type Options = {
|
|
13
7
|
output?: {
|
|
@@ -72,14 +66,12 @@ export type Options = {
|
|
|
72
66
|
name?: (name: ResolveNameParams['name'], type?: ResolveNameParams['type']) => string
|
|
73
67
|
}
|
|
74
68
|
/**
|
|
75
|
-
*
|
|
69
|
+
* Create `handlers.ts` file with all handlers for all mocks.
|
|
70
|
+
* @default `false`
|
|
76
71
|
*/
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
type ResolvedOptions = {
|
|
80
|
-
extName: KubbFile.Extname | undefined
|
|
81
|
-
templates: NonNullable<Templates>
|
|
72
|
+
handlers?: boolean
|
|
82
73
|
}
|
|
74
|
+
type ResolvedOptions = {}
|
|
83
75
|
|
|
84
76
|
export type FileMeta = {
|
|
85
77
|
pluginKey?: Plugin['key']
|
package/dist/chunk-3KHLTEUD.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { URLPath } from '@kubb/core/utils';
|
|
2
|
-
import { useApp, File } from '@kubb/react';
|
|
3
|
-
import { pluginFakerName } from '@kubb/plugin-faker';
|
|
4
|
-
import { useOperationManager, useOperation, useOperations } from '@kubb/plugin-oas/hooks';
|
|
5
|
-
import { jsx, jsxs } from '@kubb/react/jsx-runtime';
|
|
6
|
-
|
|
7
|
-
// src/components/Mock.tsx
|
|
8
|
-
function Template({ name, method, path, responseName }) {
|
|
9
|
-
return /* @__PURE__ */ jsx(File.Source, { name, isExportable: true, isIndexable: true, children: `
|
|
10
|
-
export const ${name} = http.${method}('*${path.toURLPath()}', function handler(info) {
|
|
11
|
-
return new Response(JSON.stringify(${responseName}()), {
|
|
12
|
-
headers: {
|
|
13
|
-
'Content-Type': 'application/json',
|
|
14
|
-
},
|
|
15
|
-
})
|
|
16
|
-
})
|
|
17
|
-
` });
|
|
18
|
-
}
|
|
19
|
-
var defaultTemplates = { default: Template };
|
|
20
|
-
function Mock({ Template: Template3 = defaultTemplates.default }) {
|
|
21
|
-
const { pluginManager } = useApp();
|
|
22
|
-
const { getSchemas, getName } = useOperationManager();
|
|
23
|
-
const operation = useOperation();
|
|
24
|
-
const schemas = getSchemas(operation);
|
|
25
|
-
const name = getName(operation, { type: "function" });
|
|
26
|
-
const responseName = pluginManager.resolveName({
|
|
27
|
-
pluginKey: [pluginFakerName],
|
|
28
|
-
name: schemas.response.name,
|
|
29
|
-
type: "type"
|
|
30
|
-
});
|
|
31
|
-
return /* @__PURE__ */ jsx(Template3, { name, responseName, method: operation.method, path: new URLPath(operation.path) });
|
|
32
|
-
}
|
|
33
|
-
Mock.File = function({ templates = defaultTemplates }) {
|
|
34
|
-
const {
|
|
35
|
-
pluginManager,
|
|
36
|
-
plugin: {
|
|
37
|
-
options: { extName }
|
|
38
|
-
}
|
|
39
|
-
} = useApp();
|
|
40
|
-
const { getSchemas, getFile } = useOperationManager();
|
|
41
|
-
const operation = useOperation();
|
|
42
|
-
const schemas = getSchemas(operation);
|
|
43
|
-
const file = getFile(operation);
|
|
44
|
-
const fileFaker = getFile(operation, { pluginKey: [pluginFakerName] });
|
|
45
|
-
const responseName = pluginManager.resolveName({
|
|
46
|
-
pluginKey: [pluginFakerName],
|
|
47
|
-
name: schemas.response.name,
|
|
48
|
-
type: "function"
|
|
49
|
-
});
|
|
50
|
-
const Template3 = templates.default;
|
|
51
|
-
return /* @__PURE__ */ jsxs(File, { baseName: file.baseName, path: file.path, meta: file.meta, children: [
|
|
52
|
-
/* @__PURE__ */ jsx(File.Import, { name: ["http"], path: "msw" }),
|
|
53
|
-
fileFaker && responseName && /* @__PURE__ */ jsx(File.Import, { name: [responseName], root: file.path, path: fileFaker.path }),
|
|
54
|
-
/* @__PURE__ */ jsx(Mock, { Template: Template3 })
|
|
55
|
-
] });
|
|
56
|
-
};
|
|
57
|
-
Mock.templates = defaultTemplates;
|
|
58
|
-
function Template2({ name, handlers }) {
|
|
59
|
-
return /* @__PURE__ */ jsx(File.Source, { name, isExportable: true, isIndexable: true, children: `export const ${name} = ${JSON.stringify(handlers).replaceAll(`"`, "")} as const` });
|
|
60
|
-
}
|
|
61
|
-
function RootTemplate({ children }) {
|
|
62
|
-
const {
|
|
63
|
-
pluginManager,
|
|
64
|
-
plugin: { key: pluginKey }
|
|
65
|
-
} = useApp();
|
|
66
|
-
const { getName, getFile } = useOperationManager();
|
|
67
|
-
const file = pluginManager.getFile({ name: "handlers", extName: ".ts", pluginKey });
|
|
68
|
-
const operations = useOperations();
|
|
69
|
-
const imports = operations.map((operation) => {
|
|
70
|
-
const operationFile = getFile(operation, { pluginKey });
|
|
71
|
-
const operationName = getName(operation, { pluginKey, type: "function" });
|
|
72
|
-
return /* @__PURE__ */ jsx(File.Import, { name: [operationName], root: file.path, path: operationFile.path }, operationFile.path);
|
|
73
|
-
}).filter(Boolean);
|
|
74
|
-
return /* @__PURE__ */ jsxs(File, { baseName: file.baseName, path: file.path, meta: file.meta, children: [
|
|
75
|
-
imports,
|
|
76
|
-
children
|
|
77
|
-
] });
|
|
78
|
-
}
|
|
79
|
-
var defaultTemplates2 = { default: Template2, root: RootTemplate };
|
|
80
|
-
function Operations({ Template: Template3 = defaultTemplates2.default }) {
|
|
81
|
-
const {
|
|
82
|
-
plugin: { key: pluginKey }
|
|
83
|
-
} = useApp();
|
|
84
|
-
const operations = useOperations();
|
|
85
|
-
const { getName } = useOperationManager();
|
|
86
|
-
return /* @__PURE__ */ jsx(Template3, { name: "handlers", handlers: operations.map((operation) => getName(operation, { type: "function", pluginKey })) });
|
|
87
|
-
}
|
|
88
|
-
Operations.File = function(props) {
|
|
89
|
-
const templates = { ...defaultTemplates2, ...props.templates };
|
|
90
|
-
const Template3 = templates.default;
|
|
91
|
-
const RootTemplate2 = templates.root;
|
|
92
|
-
return /* @__PURE__ */ jsx(RootTemplate2, { children: /* @__PURE__ */ jsx(Operations, { Template: Template3 }) });
|
|
93
|
-
};
|
|
94
|
-
Operations.templates = defaultTemplates2;
|
|
95
|
-
|
|
96
|
-
export { Mock, Operations };
|
|
97
|
-
//# sourceMappingURL=chunk-3KHLTEUD.js.map
|
|
98
|
-
//# sourceMappingURL=chunk-3KHLTEUD.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Mock.tsx","../src/components/Operations.tsx"],"names":["Template","jsx","File","useApp","useOperationManager","jsxs","defaultTemplates","RootTemplate"],"mappings":"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","file":"chunk-3KHLTEUD.js","sourcesContent":["import { URLPath } from '@kubb/core/utils'\nimport { File, useApp } from '@kubb/react'\nimport { pluginFakerName } from '@kubb/plugin-faker'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\n\nimport type { HttpMethod } from '@kubb/oas'\nimport type { ReactNode } from 'react'\nimport type { FileMeta, PluginMsw } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n /**\n * Method of the current operation, see useOperation.\n */\n method: HttpMethod\n /**\n * Path of the mock\n */\n path: URLPath\n /**\n * Name of the import for the mock(this is a function).\n * @example createPet\n */\n responseName: string\n}\n\nfunction Template({ name, method, path, responseName }: TemplateProps): ReactNode {\n return (\n <File.Source name={name} isExportable isIndexable>\n {`\n export const ${name} = http.${method}('*${path.toURLPath()}', function handler(info) {\n return new Response(JSON.stringify(${responseName}()), {\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n })\n `}\n </File.Source>\n )\n}\n\nconst defaultTemplates = { default: Template } as const\n\ntype Props = {\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: React.ComponentType<React.ComponentProps<typeof Template>>\n}\n\nexport function Mock({ Template = defaultTemplates.default }: Props): ReactNode {\n const { pluginManager } = useApp<PluginMsw>()\n const { getSchemas, getName } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation)\n const name = getName(operation, { type: 'function' })\n const responseName = pluginManager.resolveName({\n pluginKey: [pluginFakerName],\n name: schemas.response.name,\n type: 'type',\n })\n\n return <Template name={name} responseName={responseName} method={operation.method} path={new URLPath(operation.path)} />\n}\n\ntype FileProps = {\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: typeof defaultTemplates\n}\n\nMock.File = function ({ templates = defaultTemplates }: FileProps): ReactNode {\n const {\n pluginManager,\n plugin: {\n options: { extName },\n },\n } = useApp<PluginMsw>()\n const { getSchemas, getFile } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation)\n const file = getFile(operation)\n const fileFaker = getFile(operation, { pluginKey: [pluginFakerName] })\n const responseName = pluginManager.resolveName({\n pluginKey: [pluginFakerName],\n name: schemas.response.name,\n type: 'function',\n })\n\n const Template = templates.default\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n <File.Import name={['http']} path={'msw'} />\n {fileFaker && responseName && <File.Import name={[responseName]} root={file.path} path={fileFaker.path} />}\n <Mock Template={Template} />\n </File>\n )\n}\n\nMock.templates = defaultTemplates\n","import { useOperationManager, useOperations } from '@kubb/plugin-oas/hooks'\nimport { File, useApp } from '@kubb/react'\n\nimport type { KubbNode } from '@kubb/react/types'\nimport type { ReactNode } from 'react'\nimport type { FileMeta, PluginMsw } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n handlers: string[]\n}\n\nfunction Template({ name, handlers }: TemplateProps): ReactNode {\n return <File.Source name={name} isExportable isIndexable>{`export const ${name} = ${JSON.stringify(handlers).replaceAll(`\"`, '')} as const`}</File.Source>\n}\n\ntype ParserTemplateProps = {\n children?: React.ReactNode\n}\n\nfunction RootTemplate({ children }: ParserTemplateProps) {\n const {\n pluginManager,\n plugin: { key: pluginKey },\n } = useApp<PluginMsw>()\n\n const { getName, getFile } = useOperationManager()\n\n const file = pluginManager.getFile({ name: 'handlers', extName: '.ts', pluginKey })\n const operations = useOperations()\n\n const imports = operations\n .map((operation) => {\n const operationFile = getFile(operation, { pluginKey })\n const operationName = getName(operation, { pluginKey, type: 'function' })\n\n return <File.Import key={operationFile.path} name={[operationName]} root={file.path} path={operationFile.path} />\n })\n .filter(Boolean)\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n {imports}\n {children}\n </File>\n )\n}\n\nconst defaultTemplates = { default: Template, root: RootTemplate } as const\n\ntype Templates = Partial<typeof defaultTemplates>\n\ntype Props = {\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: React.ComponentType<React.ComponentProps<typeof Template>>\n}\n\nexport function Operations({ Template = defaultTemplates.default }: Props): ReactNode {\n const {\n plugin: { key: pluginKey },\n } = useApp<PluginMsw>()\n\n const operations = useOperations()\n const { getName } = useOperationManager()\n\n return <Template name=\"handlers\" handlers={operations.map((operation) => getName(operation, { type: 'function', pluginKey }))} />\n}\n\ntype FileProps = {\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: Templates\n}\n\nOperations.File = function (props: FileProps): KubbNode {\n const templates = { ...defaultTemplates, ...props.templates }\n\n const Template = templates.default\n const RootTemplate = templates.root\n\n return (\n <RootTemplate>\n <Operations Template={Template} />\n </RootTemplate>\n )\n}\n\nOperations.templates = defaultTemplates\n"]}
|
package/dist/chunk-BD7UJBXM.cjs
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var utils = require('@kubb/core/utils');
|
|
4
|
-
var react = require('@kubb/react');
|
|
5
|
-
var pluginFaker = require('@kubb/plugin-faker');
|
|
6
|
-
var hooks = require('@kubb/plugin-oas/hooks');
|
|
7
|
-
var jsxRuntime = require('@kubb/react/jsx-runtime');
|
|
8
|
-
|
|
9
|
-
// src/components/Mock.tsx
|
|
10
|
-
function Template({ name, method, path, responseName }) {
|
|
11
|
-
return /* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name, isExportable: true, isIndexable: true, children: `
|
|
12
|
-
export const ${name} = http.${method}('*${path.toURLPath()}', function handler(info) {
|
|
13
|
-
return new Response(JSON.stringify(${responseName}()), {
|
|
14
|
-
headers: {
|
|
15
|
-
'Content-Type': 'application/json',
|
|
16
|
-
},
|
|
17
|
-
})
|
|
18
|
-
})
|
|
19
|
-
` });
|
|
20
|
-
}
|
|
21
|
-
var defaultTemplates = { default: Template };
|
|
22
|
-
function Mock({ Template: Template3 = defaultTemplates.default }) {
|
|
23
|
-
const { pluginManager } = react.useApp();
|
|
24
|
-
const { getSchemas, getName } = hooks.useOperationManager();
|
|
25
|
-
const operation = hooks.useOperation();
|
|
26
|
-
const schemas = getSchemas(operation);
|
|
27
|
-
const name = getName(operation, { type: "function" });
|
|
28
|
-
const responseName = pluginManager.resolveName({
|
|
29
|
-
pluginKey: [pluginFaker.pluginFakerName],
|
|
30
|
-
name: schemas.response.name,
|
|
31
|
-
type: "type"
|
|
32
|
-
});
|
|
33
|
-
return /* @__PURE__ */ jsxRuntime.jsx(Template3, { name, responseName, method: operation.method, path: new utils.URLPath(operation.path) });
|
|
34
|
-
}
|
|
35
|
-
Mock.File = function({ templates = defaultTemplates }) {
|
|
36
|
-
const {
|
|
37
|
-
pluginManager,
|
|
38
|
-
plugin: {
|
|
39
|
-
options: { extName }
|
|
40
|
-
}
|
|
41
|
-
} = react.useApp();
|
|
42
|
-
const { getSchemas, getFile } = hooks.useOperationManager();
|
|
43
|
-
const operation = hooks.useOperation();
|
|
44
|
-
const schemas = getSchemas(operation);
|
|
45
|
-
const file = getFile(operation);
|
|
46
|
-
const fileFaker = getFile(operation, { pluginKey: [pluginFaker.pluginFakerName] });
|
|
47
|
-
const responseName = pluginManager.resolveName({
|
|
48
|
-
pluginKey: [pluginFaker.pluginFakerName],
|
|
49
|
-
name: schemas.response.name,
|
|
50
|
-
type: "function"
|
|
51
|
-
});
|
|
52
|
-
const Template3 = templates.default;
|
|
53
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(react.File, { baseName: file.baseName, path: file.path, meta: file.meta, children: [
|
|
54
|
-
/* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: ["http"], path: "msw" }),
|
|
55
|
-
fileFaker && responseName && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: [responseName], root: file.path, path: fileFaker.path }),
|
|
56
|
-
/* @__PURE__ */ jsxRuntime.jsx(Mock, { Template: Template3 })
|
|
57
|
-
] });
|
|
58
|
-
};
|
|
59
|
-
Mock.templates = defaultTemplates;
|
|
60
|
-
function Template2({ name, handlers }) {
|
|
61
|
-
return /* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name, isExportable: true, isIndexable: true, children: `export const ${name} = ${JSON.stringify(handlers).replaceAll(`"`, "")} as const` });
|
|
62
|
-
}
|
|
63
|
-
function RootTemplate({ children }) {
|
|
64
|
-
const {
|
|
65
|
-
pluginManager,
|
|
66
|
-
plugin: { key: pluginKey }
|
|
67
|
-
} = react.useApp();
|
|
68
|
-
const { getName, getFile } = hooks.useOperationManager();
|
|
69
|
-
const file = pluginManager.getFile({ name: "handlers", extName: ".ts", pluginKey });
|
|
70
|
-
const operations = hooks.useOperations();
|
|
71
|
-
const imports = operations.map((operation) => {
|
|
72
|
-
const operationFile = getFile(operation, { pluginKey });
|
|
73
|
-
const operationName = getName(operation, { pluginKey, type: "function" });
|
|
74
|
-
return /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { name: [operationName], root: file.path, path: operationFile.path }, operationFile.path);
|
|
75
|
-
}).filter(Boolean);
|
|
76
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(react.File, { baseName: file.baseName, path: file.path, meta: file.meta, children: [
|
|
77
|
-
imports,
|
|
78
|
-
children
|
|
79
|
-
] });
|
|
80
|
-
}
|
|
81
|
-
var defaultTemplates2 = { default: Template2, root: RootTemplate };
|
|
82
|
-
function Operations({ Template: Template3 = defaultTemplates2.default }) {
|
|
83
|
-
const {
|
|
84
|
-
plugin: { key: pluginKey }
|
|
85
|
-
} = react.useApp();
|
|
86
|
-
const operations = hooks.useOperations();
|
|
87
|
-
const { getName } = hooks.useOperationManager();
|
|
88
|
-
return /* @__PURE__ */ jsxRuntime.jsx(Template3, { name: "handlers", handlers: operations.map((operation) => getName(operation, { type: "function", pluginKey })) });
|
|
89
|
-
}
|
|
90
|
-
Operations.File = function(props) {
|
|
91
|
-
const templates = { ...defaultTemplates2, ...props.templates };
|
|
92
|
-
const Template3 = templates.default;
|
|
93
|
-
const RootTemplate2 = templates.root;
|
|
94
|
-
return /* @__PURE__ */ jsxRuntime.jsx(RootTemplate2, { children: /* @__PURE__ */ jsxRuntime.jsx(Operations, { Template: Template3 }) });
|
|
95
|
-
};
|
|
96
|
-
Operations.templates = defaultTemplates2;
|
|
97
|
-
|
|
98
|
-
exports.Mock = Mock;
|
|
99
|
-
exports.Operations = Operations;
|
|
100
|
-
//# sourceMappingURL=chunk-BD7UJBXM.cjs.map
|
|
101
|
-
//# sourceMappingURL=chunk-BD7UJBXM.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Mock.tsx","../src/components/Operations.tsx"],"names":["jsx","File","Template","useApp","useOperationManager","useOperation","pluginFakerName","URLPath","jsxs","useOperations","defaultTemplates","RootTemplate"],"mappings":"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","file":"chunk-BD7UJBXM.cjs","sourcesContent":["import { URLPath } from '@kubb/core/utils'\nimport { File, useApp } from '@kubb/react'\nimport { pluginFakerName } from '@kubb/plugin-faker'\nimport { useOperation, useOperationManager } from '@kubb/plugin-oas/hooks'\n\nimport type { HttpMethod } from '@kubb/oas'\nimport type { ReactNode } from 'react'\nimport type { FileMeta, PluginMsw } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n /**\n * Method of the current operation, see useOperation.\n */\n method: HttpMethod\n /**\n * Path of the mock\n */\n path: URLPath\n /**\n * Name of the import for the mock(this is a function).\n * @example createPet\n */\n responseName: string\n}\n\nfunction Template({ name, method, path, responseName }: TemplateProps): ReactNode {\n return (\n <File.Source name={name} isExportable isIndexable>\n {`\n export const ${name} = http.${method}('*${path.toURLPath()}', function handler(info) {\n return new Response(JSON.stringify(${responseName}()), {\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n })\n `}\n </File.Source>\n )\n}\n\nconst defaultTemplates = { default: Template } as const\n\ntype Props = {\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: React.ComponentType<React.ComponentProps<typeof Template>>\n}\n\nexport function Mock({ Template = defaultTemplates.default }: Props): ReactNode {\n const { pluginManager } = useApp<PluginMsw>()\n const { getSchemas, getName } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation)\n const name = getName(operation, { type: 'function' })\n const responseName = pluginManager.resolveName({\n pluginKey: [pluginFakerName],\n name: schemas.response.name,\n type: 'type',\n })\n\n return <Template name={name} responseName={responseName} method={operation.method} path={new URLPath(operation.path)} />\n}\n\ntype FileProps = {\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: typeof defaultTemplates\n}\n\nMock.File = function ({ templates = defaultTemplates }: FileProps): ReactNode {\n const {\n pluginManager,\n plugin: {\n options: { extName },\n },\n } = useApp<PluginMsw>()\n const { getSchemas, getFile } = useOperationManager()\n const operation = useOperation()\n\n const schemas = getSchemas(operation)\n const file = getFile(operation)\n const fileFaker = getFile(operation, { pluginKey: [pluginFakerName] })\n const responseName = pluginManager.resolveName({\n pluginKey: [pluginFakerName],\n name: schemas.response.name,\n type: 'function',\n })\n\n const Template = templates.default\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n <File.Import name={['http']} path={'msw'} />\n {fileFaker && responseName && <File.Import name={[responseName]} root={file.path} path={fileFaker.path} />}\n <Mock Template={Template} />\n </File>\n )\n}\n\nMock.templates = defaultTemplates\n","import { useOperationManager, useOperations } from '@kubb/plugin-oas/hooks'\nimport { File, useApp } from '@kubb/react'\n\nimport type { KubbNode } from '@kubb/react/types'\nimport type { ReactNode } from 'react'\nimport type { FileMeta, PluginMsw } from '../types.ts'\n\ntype TemplateProps = {\n /**\n * Name of the function\n */\n name: string\n handlers: string[]\n}\n\nfunction Template({ name, handlers }: TemplateProps): ReactNode {\n return <File.Source name={name} isExportable isIndexable>{`export const ${name} = ${JSON.stringify(handlers).replaceAll(`\"`, '')} as const`}</File.Source>\n}\n\ntype ParserTemplateProps = {\n children?: React.ReactNode\n}\n\nfunction RootTemplate({ children }: ParserTemplateProps) {\n const {\n pluginManager,\n plugin: { key: pluginKey },\n } = useApp<PluginMsw>()\n\n const { getName, getFile } = useOperationManager()\n\n const file = pluginManager.getFile({ name: 'handlers', extName: '.ts', pluginKey })\n const operations = useOperations()\n\n const imports = operations\n .map((operation) => {\n const operationFile = getFile(operation, { pluginKey })\n const operationName = getName(operation, { pluginKey, type: 'function' })\n\n return <File.Import key={operationFile.path} name={[operationName]} root={file.path} path={operationFile.path} />\n })\n .filter(Boolean)\n\n return (\n <File<FileMeta> baseName={file.baseName} path={file.path} meta={file.meta}>\n {imports}\n {children}\n </File>\n )\n}\n\nconst defaultTemplates = { default: Template, root: RootTemplate } as const\n\ntype Templates = Partial<typeof defaultTemplates>\n\ntype Props = {\n /**\n * This will make it possible to override the default behaviour.\n */\n Template?: React.ComponentType<React.ComponentProps<typeof Template>>\n}\n\nexport function Operations({ Template = defaultTemplates.default }: Props): ReactNode {\n const {\n plugin: { key: pluginKey },\n } = useApp<PluginMsw>()\n\n const operations = useOperations()\n const { getName } = useOperationManager()\n\n return <Template name=\"handlers\" handlers={operations.map((operation) => getName(operation, { type: 'function', pluginKey }))} />\n}\n\ntype FileProps = {\n /**\n * This will make it possible to override the default behaviour.\n */\n templates?: Templates\n}\n\nOperations.File = function (props: FileProps): KubbNode {\n const templates = { ...defaultTemplates, ...props.templates }\n\n const Template = templates.default\n const RootTemplate = templates.root\n\n return (\n <RootTemplate>\n <Operations Template={Template} />\n </RootTemplate>\n )\n}\n\nOperations.templates = defaultTemplates\n"]}
|