@kubb/core 2.0.0-alpha.9 → 2.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.cjs +302 -248
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +72 -69
- package/dist/index.d.ts +72 -69
- package/dist/index.js +299 -244
- package/dist/index.js.map +1 -1
- package/dist/transformers.cjs +222 -0
- package/dist/transformers.cjs.map +1 -0
- package/dist/transformers.d.cts +55 -0
- package/dist/transformers.d.ts +55 -0
- package/dist/transformers.js +207 -0
- package/dist/transformers.js.map +1 -0
- package/dist/utils.cjs +302 -274
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +515 -67
- package/dist/utils.d.ts +515 -67
- package/dist/utils.js +303 -274
- package/dist/utils.js.map +1 -1
- package/package.json +19 -15
- package/src/BarrelManager.ts +55 -65
- package/src/FileManager.ts +100 -31
- package/src/PluginManager.ts +41 -39
- package/src/PromiseManager.ts +5 -1
- package/src/build.ts +1 -11
- package/src/index.ts +0 -1
- package/src/plugin.ts +4 -4
- package/src/transformers/casing.ts +9 -0
- package/src/transformers/createJSDocBlockText.ts +9 -0
- package/src/transformers/index.ts +36 -0
- package/src/transformers/trim.ts +7 -0
- package/src/types.ts +22 -39
- package/src/utils/FunctionParams.ts +3 -2
- package/src/utils/TreeNode.ts +6 -3
- package/src/utils/URLPath.ts +5 -5
- package/src/utils/executeStrategies.ts +14 -2
- package/src/utils/index.ts +0 -1
- package/src/SchemaGenerator.ts +0 -8
- package/src/utils/transformers/createJSDocBlockText.ts +0 -15
- package/src/utils/transformers/index.ts +0 -22
- package/src/utils/transformers/trim.ts +0 -3
- /package/src/{utils/transformers → transformers}/combineCodes.ts +0 -0
- /package/src/{utils/transformers → transformers}/escape.ts +0 -0
- /package/src/{utils/transformers → transformers}/indent.ts +0 -0
- /package/src/{utils/transformers → transformers}/nameSorter.ts +0 -0
- /package/src/{utils/transformers → transformers}/searchAndReplace.ts +0 -0
- /package/src/{utils/transformers → transformers}/transformReservedWord.ts +0 -0
package/src/plugin.ts
CHANGED
|
@@ -26,10 +26,10 @@ type Options = {
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
// not publicly exported
|
|
29
|
-
export type CorePluginOptions = PluginFactoryOptions<'core',
|
|
29
|
+
export type CorePluginOptions = PluginFactoryOptions<'core', Options, Options, PluginContext, never>
|
|
30
30
|
|
|
31
31
|
export const pluginName = 'core' satisfies CorePluginOptions['name']
|
|
32
|
-
export const pluginKey: CorePluginOptions['key'] = [
|
|
32
|
+
export const pluginKey: CorePluginOptions['key'] = [pluginName] satisfies CorePluginOptions['key']
|
|
33
33
|
|
|
34
34
|
export const definePlugin = createPlugin<CorePluginOptions>((options) => {
|
|
35
35
|
const { fileManager, pluginManager, resolvePath, resolveName, logger } = options
|
|
@@ -37,8 +37,8 @@ export const definePlugin = createPlugin<CorePluginOptions>((options) => {
|
|
|
37
37
|
return {
|
|
38
38
|
name: pluginName,
|
|
39
39
|
options,
|
|
40
|
-
key: ['
|
|
41
|
-
|
|
40
|
+
key: ['core'],
|
|
41
|
+
|
|
42
42
|
api() {
|
|
43
43
|
return {
|
|
44
44
|
get config() {
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { camelCase as changeCaseCamel, camelCaseTransformMerge, pascalCase as changePascalCase, pascalCaseTransformMerge } from 'change-case'
|
|
2
|
+
|
|
3
|
+
export function camelCase(text: string): string {
|
|
4
|
+
return changeCaseCamel(text, { delimiter: '', stripRegexp: /[^A-Z0-9$]/gi, transform: camelCaseTransformMerge })
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export function pascalCase(text: string): string {
|
|
8
|
+
return changePascalCase(text, { delimiter: '', stripRegexp: /[^A-Z0-9$]/gi, transform: pascalCaseTransformMerge })
|
|
9
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { camelCase, pascalCase } from './casing.ts'
|
|
2
|
+
import { combineCodes } from './combineCodes.ts'
|
|
3
|
+
import { createJSDocBlockText } from './createJSDocBlockText.ts'
|
|
4
|
+
import { escape, jsStringEscape } from './escape.ts'
|
|
5
|
+
import { createIndent } from './indent.ts'
|
|
6
|
+
import { nameSorter } from './nameSorter.ts'
|
|
7
|
+
import { searchAndReplace } from './searchAndReplace.ts'
|
|
8
|
+
import { transformReservedWord } from './transformReservedWord.ts'
|
|
9
|
+
import { trim, trimExtName } from './trim.ts'
|
|
10
|
+
|
|
11
|
+
export { camelCase, pascalCase } from './casing.ts'
|
|
12
|
+
export { combineCodes } from './combineCodes.ts'
|
|
13
|
+
export { createJSDocBlockText } from './createJSDocBlockText.ts'
|
|
14
|
+
export { escape, jsStringEscape } from './escape.ts'
|
|
15
|
+
export { createIndent } from './indent.ts'
|
|
16
|
+
export { nameSorter } from './nameSorter.ts'
|
|
17
|
+
export { searchAndReplace } from './searchAndReplace.ts'
|
|
18
|
+
export { transformReservedWord } from './transformReservedWord.ts'
|
|
19
|
+
export { trim, trimExtName } from './trim.ts'
|
|
20
|
+
|
|
21
|
+
export default {
|
|
22
|
+
combineCodes,
|
|
23
|
+
escape,
|
|
24
|
+
jsStringEscape,
|
|
25
|
+
createIndent,
|
|
26
|
+
transformReservedWord,
|
|
27
|
+
nameSorter,
|
|
28
|
+
searchAndReplace,
|
|
29
|
+
trim,
|
|
30
|
+
trimExtName,
|
|
31
|
+
JSDoc: {
|
|
32
|
+
createJSDocBlockText,
|
|
33
|
+
},
|
|
34
|
+
camelCase,
|
|
35
|
+
pascalCase,
|
|
36
|
+
} as const
|
package/src/types.ts
CHANGED
|
@@ -123,8 +123,6 @@ export type CLIOptions = {
|
|
|
123
123
|
|
|
124
124
|
// plugin
|
|
125
125
|
|
|
126
|
-
export type KubbPluginKind = 'schema' | 'controller'
|
|
127
|
-
|
|
128
126
|
export type KubbUnionPlugins = PluginUnion
|
|
129
127
|
|
|
130
128
|
export type KubbObjectPlugin = keyof OptionsPlugins
|
|
@@ -134,10 +132,6 @@ export type PluginFactoryOptions<
|
|
|
134
132
|
* Name to be used for the plugin, this will also be used for they key.
|
|
135
133
|
*/
|
|
136
134
|
TName extends string = string,
|
|
137
|
-
/**
|
|
138
|
-
* @type "schema" | "controller"
|
|
139
|
-
*/
|
|
140
|
-
TKind extends KubbPluginKind = KubbPluginKind,
|
|
141
135
|
/**
|
|
142
136
|
* Options of the plugin.
|
|
143
137
|
*/
|
|
@@ -161,18 +155,17 @@ export type PluginFactoryOptions<
|
|
|
161
155
|
TAppMeta = unknown,
|
|
162
156
|
> = {
|
|
163
157
|
name: TName
|
|
164
|
-
kind: TKind
|
|
165
158
|
/**
|
|
166
159
|
* Same behaviour like what has been done with `QueryKey` in `@tanstack/react-query`
|
|
167
160
|
*/
|
|
168
|
-
key: [
|
|
161
|
+
key: [name: TName | string, identifier?: string | number]
|
|
169
162
|
options: TOptions
|
|
170
163
|
resolvedOptions: TResolvedOptions
|
|
171
164
|
api: TAPI
|
|
172
165
|
resolvePathOptions: TResolvePathOptions
|
|
173
166
|
appMeta: {
|
|
174
167
|
pluginManager: PluginManager
|
|
175
|
-
plugin: KubbPlugin<PluginFactoryOptions<TName,
|
|
168
|
+
plugin: KubbPlugin<PluginFactoryOptions<TName, TOptions, TResolvedOptions, TAPI, TResolvePathOptions, TAppMeta>>
|
|
176
169
|
} & TAppMeta
|
|
177
170
|
}
|
|
178
171
|
|
|
@@ -182,18 +175,23 @@ export type KubbUserPlugin<TOptions extends PluginFactoryOptions = PluginFactory
|
|
|
182
175
|
& {
|
|
183
176
|
/**
|
|
184
177
|
* Unique name used for the plugin
|
|
178
|
+
* The name of the plugin follows the format scope:foo-bar or foo-bar, adding scope: can avoid naming conflicts with other plugins.
|
|
185
179
|
* @example @kubb/typescript
|
|
186
180
|
*/
|
|
187
181
|
name: TOptions['name']
|
|
188
|
-
/**
|
|
189
|
-
* Internal key used when a developer uses more than one of the same plugin
|
|
190
|
-
* @private
|
|
191
|
-
*/
|
|
192
|
-
key?: TOptions['key']
|
|
193
182
|
/**
|
|
194
183
|
* Options set for a specific plugin(see kubb.config.js), passthrough of options.
|
|
195
184
|
*/
|
|
196
185
|
options: TOptions['resolvedOptions']
|
|
186
|
+
/**
|
|
187
|
+
* Specifies the preceding plugins for the current plugin. You can pass an array of preceding plugin names, and the current plugin will be executed after these plugins.
|
|
188
|
+
* Can be used to validate depended plugins.
|
|
189
|
+
*/
|
|
190
|
+
pre?: Array<string>
|
|
191
|
+
/**
|
|
192
|
+
* Specifies the succeeding plugins for the current plugin. You can pass an array of succeeding plugin names, and the current plugin will be executed before these plugins.
|
|
193
|
+
*/
|
|
194
|
+
post?: Array<string>
|
|
197
195
|
}
|
|
198
196
|
& (TOptions['api'] extends never ? {
|
|
199
197
|
api?: never
|
|
@@ -201,22 +199,10 @@ export type KubbUserPlugin<TOptions extends PluginFactoryOptions = PluginFactory
|
|
|
201
199
|
: {
|
|
202
200
|
api: (this: TOptions['name'] extends 'core' ? null : Omit<PluginContext<TOptions>, 'addFile'>) => TOptions['api']
|
|
203
201
|
})
|
|
204
|
-
& (TOptions['kind'] extends never ? {
|
|
205
|
-
kind?: never
|
|
206
|
-
}
|
|
207
|
-
: {
|
|
208
|
-
/**
|
|
209
|
-
* Kind/type for the plugin
|
|
210
|
-
* Type 'schema' can be used for JSON schema's, TypeScript types, ...
|
|
211
|
-
* Type 'controller' can be used to create generate API calls, React-Query hooks, Axios controllers, ...
|
|
212
|
-
* @default undefined
|
|
213
|
-
*/
|
|
214
|
-
kind: TOptions['kind']
|
|
215
|
-
})
|
|
216
202
|
|
|
217
203
|
export type KubbUserPluginWithLifeCycle<TOptions extends PluginFactoryOptions = PluginFactoryOptions> = KubbUserPlugin<TOptions> & PluginLifecycle<TOptions>
|
|
218
204
|
|
|
219
|
-
type UnknownKubbUserPlugin = KubbUserPlugin<PluginFactoryOptions<any, any, any, any, any, any
|
|
205
|
+
type UnknownKubbUserPlugin = KubbUserPlugin<PluginFactoryOptions<any, any, any, any, any, any>>
|
|
220
206
|
|
|
221
207
|
export type KubbPlugin<TOptions extends PluginFactoryOptions = PluginFactoryOptions> =
|
|
222
208
|
& {
|
|
@@ -231,16 +217,18 @@ export type KubbPlugin<TOptions extends PluginFactoryOptions = PluginFactoryOpti
|
|
|
231
217
|
*/
|
|
232
218
|
key: TOptions['key']
|
|
233
219
|
/**
|
|
234
|
-
*
|
|
220
|
+
* Specifies the preceding plugins for the current plugin. You can pass an array of preceding plugin names, and the current plugin will be executed after these plugins.
|
|
221
|
+
* Can be used to validate depended plugins.
|
|
235
222
|
*/
|
|
236
|
-
|
|
223
|
+
pre?: Array<string>
|
|
237
224
|
/**
|
|
238
|
-
*
|
|
239
|
-
* Type 'schema' can be used for JSON schema's, TypeScript types, ...
|
|
240
|
-
* Type 'controller' can be used to create generate API calls, React-Query hooks, Axios controllers, ...
|
|
241
|
-
* @default undefined
|
|
225
|
+
* Specifies the succeeding plugins for the current plugin. You can pass an array of succeeding plugin names, and the current plugin will be executed before these plugins.
|
|
242
226
|
*/
|
|
243
|
-
|
|
227
|
+
post?: Array<string>
|
|
228
|
+
/**
|
|
229
|
+
* Options set for a specific plugin(see kubb.config.js), passthrough of options.
|
|
230
|
+
*/
|
|
231
|
+
options: TOptions['resolvedOptions']
|
|
244
232
|
/**
|
|
245
233
|
* Define an api that can be used by other plugins, see `PluginManager' where we convert from `KubbUserPlugin` to `KubbPlugin`(used when calling `createPlugin`).
|
|
246
234
|
*/
|
|
@@ -255,11 +243,6 @@ export type KubbPlugin<TOptions extends PluginFactoryOptions = PluginFactoryOpti
|
|
|
255
243
|
export type KubbPluginWithLifeCycle<TOptions extends PluginFactoryOptions = PluginFactoryOptions> = KubbPlugin<TOptions> & PluginLifecycle<TOptions>
|
|
256
244
|
|
|
257
245
|
export type PluginLifecycle<TOptions extends PluginFactoryOptions = PluginFactoryOptions> = {
|
|
258
|
-
/**
|
|
259
|
-
* Valdiate all plugins to see if their depended plugins are installed and configured.
|
|
260
|
-
* @type hookParallel
|
|
261
|
-
*/
|
|
262
|
-
validate?: (this: Omit<PluginContext<TOptions>, 'addFile'>, plugins: NonNullable<KubbConfig['plugins']>) => PossiblePromise<true>
|
|
263
246
|
/**
|
|
264
247
|
* Start of the lifecycle of a plugin.
|
|
265
248
|
* @type hookParallel
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { camelCase, camelCaseTransformMerge } from 'change-case'
|
|
2
1
|
import { orderBy } from 'natural-orderby'
|
|
3
2
|
|
|
3
|
+
import transformers from '../transformers/index.ts'
|
|
4
|
+
|
|
4
5
|
type FunctionParamsASTWithoutType = {
|
|
5
6
|
name?: string
|
|
6
7
|
type?: string
|
|
@@ -66,7 +67,7 @@ export class FunctionParams {
|
|
|
66
67
|
return acc
|
|
67
68
|
}
|
|
68
69
|
// TODO check whey we still need the camelcase here
|
|
69
|
-
const parameterName = name.startsWith('{') ? name : camelCase(name
|
|
70
|
+
const parameterName = name.startsWith('{') ? name : transformers.camelCase(name)
|
|
70
71
|
|
|
71
72
|
if (type) {
|
|
72
73
|
if (required) {
|
package/src/utils/TreeNode.ts
CHANGED
|
@@ -3,10 +3,13 @@ import dirTree from 'directory-tree'
|
|
|
3
3
|
import { FileManager } from '../FileManager.ts'
|
|
4
4
|
|
|
5
5
|
import type { DirectoryTree, DirectoryTreeOptions } from 'directory-tree'
|
|
6
|
+
import type { KubbFile } from '../FileManager.ts'
|
|
6
7
|
|
|
7
8
|
export type TreeNodeOptions = DirectoryTreeOptions
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
type BarrelData = { type: KubbFile.Mode; path: KubbFile.Path; name: string }
|
|
11
|
+
|
|
12
|
+
export class TreeNode<T = BarrelData> {
|
|
10
13
|
public data: T
|
|
11
14
|
|
|
12
15
|
public parent?: TreeNode<T>
|
|
@@ -91,7 +94,7 @@ export class TreeNode<T = unknown> {
|
|
|
91
94
|
return this
|
|
92
95
|
}
|
|
93
96
|
|
|
94
|
-
public static build
|
|
97
|
+
public static build(path: string, options: TreeNodeOptions = {}): TreeNode | null {
|
|
95
98
|
try {
|
|
96
99
|
const exclude = Array.isArray(options.exclude) ? options.exclude : [options.exclude].filter(Boolean)
|
|
97
100
|
const filteredTree = dirTree(path, { extensions: options.extensions, exclude: [/node_modules/, ...exclude] })
|
|
@@ -114,7 +117,7 @@ export class TreeNode<T = unknown> {
|
|
|
114
117
|
|
|
115
118
|
filteredTree.children?.forEach((child) => recurse(treeNode, child))
|
|
116
119
|
|
|
117
|
-
return treeNode
|
|
120
|
+
return treeNode
|
|
118
121
|
} catch (e) {
|
|
119
122
|
throw new Error('Something went wrong with creating index files with the TreehNode class', { cause: e })
|
|
120
123
|
}
|
package/src/utils/URLPath.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import transformers from '../transformers/index.ts'
|
|
2
2
|
|
|
3
3
|
export type URLObject = {
|
|
4
4
|
url: string
|
|
@@ -90,8 +90,8 @@ export class URLPath {
|
|
|
90
90
|
if (found) {
|
|
91
91
|
newPath = found.reduce((prev, curr) => {
|
|
92
92
|
const pathParam = replacer
|
|
93
|
-
? replacer(camelCase(curr
|
|
94
|
-
: camelCase(curr
|
|
93
|
+
? replacer(transformers.camelCase(curr))
|
|
94
|
+
: transformers.camelCase(curr)
|
|
95
95
|
const replacement = `\${${pathParam}}`
|
|
96
96
|
|
|
97
97
|
return prev.replace(curr, replacement)
|
|
@@ -114,8 +114,8 @@ export class URLPath {
|
|
|
114
114
|
item = item.replaceAll('{', '').replaceAll('}', '')
|
|
115
115
|
|
|
116
116
|
const pathParam = replacer
|
|
117
|
-
? replacer(camelCase(item
|
|
118
|
-
: camelCase(item
|
|
117
|
+
? replacer(transformers.camelCase(item))
|
|
118
|
+
: transformers.camelCase(item)
|
|
119
119
|
|
|
120
120
|
params[pathParam] = pathParam
|
|
121
121
|
}, this.path)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable unused-imports/no-unused-vars */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
3
|
-
type PromiseFunc<T = unknown, T2 = never> = (state
|
|
3
|
+
type PromiseFunc<T = unknown, T2 = never> = (state?: T) => T2 extends never ? Promise<T> : Promise<T> | T2
|
|
4
4
|
|
|
5
5
|
export type ValueOfPromiseFuncArray<TInput extends Array<unknown>> = TInput extends Array<PromiseFunc<infer X, infer Y>> ? X | Y : never
|
|
6
6
|
|
|
@@ -58,11 +58,23 @@ export function hookFirst<TInput extends Array<PromiseFunc<TValue, null>>, TValu
|
|
|
58
58
|
return promise as TOutput
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
type HookParallelOutput<TInput extends Array<PromiseFunc<TValue, null>>, TValue> = Promise<PromiseSettledResult<Awaited<ValueOfPromiseFuncArray<TInput>>>[]>
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Run promises in parallel with allSettled
|
|
65
|
+
*/
|
|
66
|
+
export function hookParallel<TInput extends Array<PromiseFunc<TValue, null>>, TValue = unknown, TOutput = HookParallelOutput<TInput, TValue>>(
|
|
67
|
+
promises: TInput,
|
|
68
|
+
): TOutput {
|
|
69
|
+
return Promise.allSettled(promises.filter(Boolean).map(promise => promise())) as TOutput
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export type Strategy = 'seq' | 'first' | 'parallel'
|
|
62
73
|
|
|
63
74
|
export type StrategySwitch<TStrategy extends Strategy, TInput extends Array<PromiseFunc<TValue, null>>, TValue> = TStrategy extends 'first'
|
|
64
75
|
? HookFirstOutput<TInput, TValue>
|
|
65
76
|
: TStrategy extends 'seq' ? SeqOutput<TInput, TValue>
|
|
77
|
+
: TStrategy extends 'parallel' ? HookParallelOutput<TInput, TValue>
|
|
66
78
|
: never
|
|
67
79
|
|
|
68
80
|
// tests
|
package/src/utils/index.ts
CHANGED
|
@@ -12,7 +12,6 @@ export * from './read.ts'
|
|
|
12
12
|
export * from './renderTemplate.ts'
|
|
13
13
|
export * from './throttle.ts'
|
|
14
14
|
export * from './timeout.ts'
|
|
15
|
-
export * from './transformers/index.ts'
|
|
16
15
|
export * from './TreeNode.ts'
|
|
17
16
|
export * from './uniqueName.ts'
|
|
18
17
|
export * from './URLPath.ts'
|
package/src/SchemaGenerator.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Generator } from './Generator.ts'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Abstract class that contains the building blocks for plugins to create their own SchemaGenerator
|
|
5
|
-
*/
|
|
6
|
-
export abstract class SchemaGenerator<TOptions extends object, TInput, TOutput> extends Generator<TOptions> {
|
|
7
|
-
abstract build(schema: TInput, name: string, description?: string): TOutput
|
|
8
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export function createJSDocBlockText({ comments, newLine }: { comments: Array<string>; newLine?: boolean }): string {
|
|
2
|
-
const filteredComments = comments.filter(Boolean)
|
|
3
|
-
|
|
4
|
-
if (!filteredComments.length) {
|
|
5
|
-
return ''
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
const source = `/**\n * ${filteredComments.join('\n * ')}\n */`
|
|
9
|
-
|
|
10
|
-
if (newLine) {
|
|
11
|
-
return `${source}\n`
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
return source
|
|
15
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { combineCodes } from './combineCodes.ts'
|
|
2
|
-
import { createJSDocBlockText } from './createJSDocBlockText.ts'
|
|
3
|
-
import { escape, jsStringEscape } from './escape.ts'
|
|
4
|
-
import { createIndent } from './indent.ts'
|
|
5
|
-
import { nameSorter } from './nameSorter.ts'
|
|
6
|
-
import { searchAndReplace } from './searchAndReplace.ts'
|
|
7
|
-
import { transformReservedWord } from './transformReservedWord.ts'
|
|
8
|
-
import { trim } from './trim.ts'
|
|
9
|
-
|
|
10
|
-
export const transformers = {
|
|
11
|
-
combineCodes,
|
|
12
|
-
escape,
|
|
13
|
-
jsStringEscape,
|
|
14
|
-
createIndent,
|
|
15
|
-
transformReservedWord,
|
|
16
|
-
nameSorter,
|
|
17
|
-
searchAndReplace,
|
|
18
|
-
trim,
|
|
19
|
-
JSDoc: {
|
|
20
|
-
createJSDocBlockText,
|
|
21
|
-
},
|
|
22
|
-
} as const
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|