@kubb/core 2.8.2 → 2.9.1
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-AXZ52CY2.cjs → chunk-LCHP3GH5.cjs} +11 -11
- package/dist/{chunk-L3XMZMJ5.js → chunk-S3BHD7DW.js} +14 -1
- package/dist/chunk-S3BHD7DW.js.map +1 -0
- package/dist/{chunk-XXN4BH6X.cjs → chunk-UMLYXEIH.cjs} +15 -2
- package/dist/chunk-UMLYXEIH.cjs.map +1 -0
- package/dist/{chunk-6KNLOEZF.js → chunk-WJTCEFTE.js} +2 -2
- package/dist/index.cjs +10 -10
- package/dist/index.js +2 -2
- package/dist/mocks.cjs +2 -2
- package/dist/mocks.js +2 -2
- package/dist/transformers.cjs +113 -6
- package/dist/transformers.cjs.map +1 -1
- package/dist/transformers.d.cts +19 -1
- package/dist/transformers.d.ts +19 -1
- package/dist/transformers.js +110 -3
- package/dist/transformers.js.map +1 -1
- package/dist/utils.cjs +97 -23
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +6 -2
- package/dist/utils.d.ts +6 -2
- package/dist/utils.js +94 -20
- package/dist/utils.js.map +1 -1
- package/package.json +7 -4
- package/src/transformers/escape.ts +12 -0
- package/src/transformers/index.ts +14 -2
- package/src/transformers/stringify.ts +8 -0
- package/src/transformers/toNumber.ts +13 -0
- package/src/transformers/toRegExp.ts +35 -0
- package/src/transformers/trim.ts +15 -0
- package/src/utils/FunctionParams.ts +99 -26
- package/dist/chunk-L3XMZMJ5.js.map +0 -1
- package/dist/chunk-XXN4BH6X.cjs.map +0 -1
- /package/dist/{chunk-AXZ52CY2.cjs.map → chunk-LCHP3GH5.cjs.map} +0 -0
- /package/dist/{chunk-6KNLOEZF.js.map → chunk-WJTCEFTE.js.map} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubb/core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.9.1",
|
|
4
4
|
"description": "Generator core",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -95,17 +95,20 @@
|
|
|
95
95
|
"p-queue": "^8.0.1",
|
|
96
96
|
"seedrandom": "^3.0.5",
|
|
97
97
|
"semver": "^7.6.0",
|
|
98
|
-
"
|
|
99
|
-
"@kubb/
|
|
98
|
+
"unraw": "^3.0.0",
|
|
99
|
+
"@kubb/parser": "2.9.1",
|
|
100
|
+
"@kubb/types": "2.9.1"
|
|
100
101
|
},
|
|
101
102
|
"devDependencies": {
|
|
102
103
|
"@types/fs-extra": "^11.0.4",
|
|
103
104
|
"@types/lodash.isequal": "^4.5.8",
|
|
104
|
-
"@types/
|
|
105
|
+
"@types/lodash.tonumber": "^4.0.9",
|
|
106
|
+
"@types/react": "^18.2.67",
|
|
105
107
|
"@types/seedrandom": "^3.0.8",
|
|
106
108
|
"@types/semver": "^7.5.8",
|
|
107
109
|
"eslint": "^8.57.0",
|
|
108
110
|
"lodash.isequal": "^4.5.0",
|
|
111
|
+
"lodash.tonumber": "^4.0.3",
|
|
109
112
|
"ora": "^8.0.1",
|
|
110
113
|
"tinyrainbow": "^1.1.1",
|
|
111
114
|
"tsup": "^8.0.2",
|
|
@@ -29,3 +29,15 @@ export function jsStringEscape(input: any): string {
|
|
|
29
29
|
}
|
|
30
30
|
})
|
|
31
31
|
}
|
|
32
|
+
|
|
33
|
+
export function escapeStringRegexp(string: string) {
|
|
34
|
+
if (typeof string !== 'string') {
|
|
35
|
+
throw new TypeError('Expected a string')
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Escape characters with special meaning either inside or outside character sets.
|
|
39
|
+
// Use a simple backslash escape when it’s always valid, and a `\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.
|
|
40
|
+
return string
|
|
41
|
+
.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&')
|
|
42
|
+
.replace(/-/g, '\\x2d')
|
|
43
|
+
}
|
|
@@ -5,8 +5,11 @@ import { escape, jsStringEscape } from './escape.ts'
|
|
|
5
5
|
import { createIndent } from './indent.ts'
|
|
6
6
|
import { nameSorter } from './nameSorter.ts'
|
|
7
7
|
import { searchAndReplace } from './searchAndReplace.ts'
|
|
8
|
+
import { stringify } from './stringify.ts'
|
|
9
|
+
import { isNumber, toNumber } from './toNumber.ts'
|
|
10
|
+
import { toRegExp, toRegExpString } from './toRegExp.ts'
|
|
8
11
|
import { transformReservedWord } from './transformReservedWord.ts'
|
|
9
|
-
import { trim, trimExtName } from './trim.ts'
|
|
12
|
+
import { trim, trimExtName, trimQuotes } from './trim.ts'
|
|
10
13
|
|
|
11
14
|
export { camelCase, pascalCase, pathCase } from './casing.ts'
|
|
12
15
|
export { combineCodes } from './combineCodes.ts'
|
|
@@ -15,8 +18,11 @@ export { escape, jsStringEscape } from './escape.ts'
|
|
|
15
18
|
export { createIndent } from './indent.ts'
|
|
16
19
|
export { nameSorter } from './nameSorter.ts'
|
|
17
20
|
export { searchAndReplace } from './searchAndReplace.ts'
|
|
21
|
+
export { stringify } from './stringify.ts'
|
|
22
|
+
export { isNumber, toNumber } from './toNumber.ts'
|
|
23
|
+
export { toRegExp, toRegExpString } from './toRegExp.ts'
|
|
18
24
|
export { transformReservedWord } from './transformReservedWord.ts'
|
|
19
|
-
export { trim, trimExtName } from './trim.ts'
|
|
25
|
+
export { trim, trimExtName, trimQuotes } from './trim.ts'
|
|
20
26
|
|
|
21
27
|
export default {
|
|
22
28
|
combineCodes,
|
|
@@ -26,7 +32,13 @@ export default {
|
|
|
26
32
|
transformReservedWord,
|
|
27
33
|
nameSorter,
|
|
28
34
|
searchAndReplace,
|
|
35
|
+
toNumber,
|
|
36
|
+
isNumber,
|
|
37
|
+
stringify,
|
|
38
|
+
toRegExp,
|
|
39
|
+
toRegExpString,
|
|
29
40
|
trim,
|
|
41
|
+
trimQuotes,
|
|
30
42
|
trimExtName,
|
|
31
43
|
JSDoc: {
|
|
32
44
|
createJSDocBlockText,
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import _toNumber from 'lodash.tonumber'
|
|
2
|
+
|
|
3
|
+
export function isNumber(value: unknown): value is number {
|
|
4
|
+
if (typeof value === 'string') {
|
|
5
|
+
if (value === '') {
|
|
6
|
+
return false
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
return !isNaN(toNumber(value))
|
|
10
|
+
}
|
|
11
|
+
return typeof value === 'number'
|
|
12
|
+
}
|
|
13
|
+
export const toNumber = _toNumber
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsStringEscape } from './escape'
|
|
2
|
+
import { trimQuotes } from './trim'
|
|
3
|
+
|
|
4
|
+
function stringToRegex(text: string) {
|
|
5
|
+
const isStartWithSlash = text.startsWith('/')
|
|
6
|
+
const isEndWithSlash = text.endsWith('/')
|
|
7
|
+
|
|
8
|
+
return new RegExp(text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : undefined))
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @experimental
|
|
13
|
+
*/
|
|
14
|
+
export function toRegExp(text: string | RegExp): RegExp {
|
|
15
|
+
if (typeof text === 'string') {
|
|
16
|
+
const source = trimQuotes(text)
|
|
17
|
+
|
|
18
|
+
return stringToRegex(source)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return stringToRegex(text.toString())
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function toRegExpString(text: string): string {
|
|
25
|
+
const isStartWithSlash = text.startsWith('/')
|
|
26
|
+
const isEndWithSlash = text.endsWith('/')
|
|
27
|
+
|
|
28
|
+
const regexp = `new RegExp('${
|
|
29
|
+
jsStringEscape(
|
|
30
|
+
text.slice(isStartWithSlash ? 1 : 0, isEndWithSlash ? -1 : undefined),
|
|
31
|
+
)
|
|
32
|
+
}')`
|
|
33
|
+
|
|
34
|
+
return regexp
|
|
35
|
+
}
|
package/src/transformers/trim.ts
CHANGED
|
@@ -2,6 +2,21 @@ export function trim(text: string): string {
|
|
|
2
2
|
return text.replaceAll(/\n/g, '').trim()
|
|
3
3
|
}
|
|
4
4
|
|
|
5
|
+
export function trimQuotes(text: string): string {
|
|
6
|
+
if (text.match(/^"(.*)"$/)) {
|
|
7
|
+
return text.replace(/^"(.*)"$/, '$1')
|
|
8
|
+
}
|
|
9
|
+
if (text.match(/^'(.*)'$/)) {
|
|
10
|
+
return text.replace(/^'(.*)'$/, '$1')
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
if (text.match(/^`(.*)`$/)) {
|
|
14
|
+
return text.replace(/^`(.*)`$/, '$1')
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return text
|
|
18
|
+
}
|
|
19
|
+
|
|
5
20
|
export function trimExtName(text: string): string {
|
|
6
21
|
return text.replace(/\.[^/.]+$/, '')
|
|
7
22
|
}
|
|
@@ -32,55 +32,128 @@ type FunctionParamsASTWithType = {
|
|
|
32
32
|
|
|
33
33
|
export type FunctionParamsAST = FunctionParamsASTWithoutType | FunctionParamsASTWithType
|
|
34
34
|
export class FunctionParams {
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
type?: 'generics' | 'typed'
|
|
36
|
+
#items: Array<FunctionParamsAST | FunctionParamsAST[]> = []
|
|
37
37
|
constructor(type?: 'generics' | 'typed') {
|
|
38
38
|
this.type = type
|
|
39
39
|
|
|
40
40
|
return this
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
get items(): FunctionParamsAST[] {
|
|
44
|
+
return this.#items.flat()
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
add(item: FunctionParamsAST | Array<FunctionParamsAST | FunctionParamsAST[] | undefined> | undefined): FunctionParams {
|
|
44
48
|
if (!item) {
|
|
45
49
|
return this
|
|
46
50
|
}
|
|
47
51
|
|
|
48
52
|
if (Array.isArray(item)) {
|
|
49
|
-
item.filter(Boolean).forEach((it) => this
|
|
53
|
+
item.filter(Boolean).forEach((it) => this.#items.push(it))
|
|
50
54
|
return this
|
|
51
55
|
}
|
|
52
|
-
this
|
|
56
|
+
this.#items.push(item)
|
|
53
57
|
|
|
54
58
|
return this
|
|
55
59
|
}
|
|
60
|
+
static #orderItems(items: Array<FunctionParamsAST | FunctionParamsAST[]>) {
|
|
61
|
+
return orderBy(items.filter(Boolean), [
|
|
62
|
+
(v) => {
|
|
63
|
+
if (Array.isArray(v)) {
|
|
64
|
+
return undefined
|
|
65
|
+
}
|
|
66
|
+
return !v.default
|
|
67
|
+
},
|
|
68
|
+
(v) => {
|
|
69
|
+
if (Array.isArray(v)) {
|
|
70
|
+
return undefined
|
|
71
|
+
}
|
|
72
|
+
return v.required ?? true
|
|
73
|
+
},
|
|
74
|
+
], [
|
|
75
|
+
'desc',
|
|
76
|
+
'desc',
|
|
77
|
+
])
|
|
78
|
+
}
|
|
56
79
|
|
|
57
|
-
|
|
58
|
-
const
|
|
80
|
+
static #addParams(acc: string[], item: FunctionParamsAST) {
|
|
81
|
+
const { enabled = true, name, type, required = true, ...rest } = item
|
|
82
|
+
|
|
83
|
+
if (!enabled) {
|
|
84
|
+
return acc
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (!name) {
|
|
88
|
+
// when name is not se we will use TypeScript generics
|
|
89
|
+
acc.push(`${type}${rest.default ? ` = ${rest.default}` : ''}`)
|
|
90
|
+
|
|
91
|
+
return acc
|
|
92
|
+
}
|
|
93
|
+
// TODO check whey we still need the camelcase here
|
|
94
|
+
const parameterName = name.startsWith('{') ? name : camelCase(name)
|
|
95
|
+
|
|
96
|
+
if (type) {
|
|
97
|
+
if (required) {
|
|
98
|
+
acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ''}`)
|
|
99
|
+
} else {
|
|
100
|
+
acc.push(`${parameterName}?: ${type}`)
|
|
101
|
+
}
|
|
102
|
+
} else {
|
|
103
|
+
acc.push(`${parameterName}`)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
return acc
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
static toObject(items: FunctionParamsAST[]): FunctionParamsAST {
|
|
110
|
+
let type: string[] = []
|
|
111
|
+
let name: string[] = []
|
|
112
|
+
|
|
113
|
+
const enabled = items.every(item => item.enabled) ? items.at(0)?.enabled : true
|
|
114
|
+
const required = items.every(item => item.required) ?? true
|
|
115
|
+
|
|
116
|
+
items.forEach(item => {
|
|
117
|
+
name = FunctionParams.#addParams(name, { ...item, type: undefined })
|
|
118
|
+
if (items.some(item => item.type)) {
|
|
119
|
+
type = FunctionParams.#addParams(type, item)
|
|
120
|
+
}
|
|
121
|
+
})
|
|
122
|
+
|
|
123
|
+
return {
|
|
124
|
+
name: `{ ${name.join(', ')} }`,
|
|
125
|
+
type: type.length ? `{ ${type.join(', ')} }` : undefined,
|
|
126
|
+
enabled,
|
|
127
|
+
required,
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
static toString(items: (FunctionParamsAST | FunctionParamsAST[])[]): string {
|
|
132
|
+
const sortedData = this.#orderItems(items)
|
|
59
133
|
|
|
60
134
|
return sortedData
|
|
61
|
-
.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
acc.push(`${type}${rest.default ? ` = ${rest.default}` : ''}`)
|
|
135
|
+
.reduce((acc, item) => {
|
|
136
|
+
if (Array.isArray(item)) {
|
|
137
|
+
const subItems = this.#orderItems(item) as FunctionParamsAST[]
|
|
138
|
+
const objectItem = FunctionParams.toObject(subItems)
|
|
66
139
|
|
|
67
|
-
return acc
|
|
68
|
-
}
|
|
69
|
-
// TODO check whey we still need the camelcase here
|
|
70
|
-
const parameterName = name.startsWith('{') ? name : camelCase(name)
|
|
71
|
-
|
|
72
|
-
if (type) {
|
|
73
|
-
if (required) {
|
|
74
|
-
acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ''}`)
|
|
75
|
-
} else {
|
|
76
|
-
acc.push(`${parameterName}?: ${type}`)
|
|
77
|
-
}
|
|
78
|
-
} else {
|
|
79
|
-
acc.push(`${parameterName}`)
|
|
140
|
+
return FunctionParams.#addParams(acc, objectItem)
|
|
80
141
|
}
|
|
81
142
|
|
|
82
|
-
return acc
|
|
143
|
+
return FunctionParams.#addParams(acc, item)
|
|
83
144
|
}, [] as string[])
|
|
84
145
|
.join(', ')
|
|
85
146
|
}
|
|
147
|
+
|
|
148
|
+
toObject(): FunctionParamsAST {
|
|
149
|
+
const items = FunctionParams.#orderItems(this.#items).flat()
|
|
150
|
+
|
|
151
|
+
return FunctionParams.toObject(items)
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
toString(): string {
|
|
155
|
+
const items = FunctionParams.#orderItems(this.#items)
|
|
156
|
+
|
|
157
|
+
return FunctionParams.toString(items)
|
|
158
|
+
}
|
|
86
159
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/transformers/searchAndReplace.ts","../src/transformers/trim.ts","../src/transformers/transformReservedWord.ts"],"sourcesContent":["type Options = {\n text: string\n replaceBy: string\n prefix?: string\n key: string\n searchValues?: (prefix: string, key: string) => Array<RegExp | string>\n}\n\nexport function searchAndReplace(options: Options): string {\n const { text, replaceBy, prefix = '', key } = options\n\n const searchValues = options.searchValues?.(prefix, key) || [\n `${prefix}[\"${key}\"]`,\n `${prefix}['${key}']`,\n `${prefix}[\\`${key}\\`]`,\n `${prefix}\"${key}\"`,\n `${prefix}'${key}'`,\n `${prefix}\\`${key}\\``,\n new RegExp(`${prefix}${key}`, 'g'),\n ]\n\n return searchValues.reduce((prev, searchValue) => {\n return prev.toString().replaceAll(searchValue, replaceBy)\n }, text) as string\n}\n","export function trim(text: string): string {\n return text.replaceAll(/\\n/g, '').trim()\n}\n\nexport function trimExtName(text: string): string {\n return text.replace(/\\.[^/.]+$/, '')\n}\n","/**\n * @link https://github.com/jonschlinkert/reserved/blob/master/index.js\n */\nconst reservedWords = [\n 'abstract',\n 'arguments',\n 'boolean',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'class',\n 'const',\n 'continue',\n 'debugger',\n 'default',\n 'delete',\n 'do',\n 'double',\n 'else',\n 'enum',\n 'eval',\n 'export',\n 'extends',\n 'false',\n 'final',\n 'finally',\n 'float',\n 'for',\n 'function',\n 'goto',\n 'if',\n 'implements',\n 'import',\n 'in',\n 'instanceof',\n 'int',\n 'interface',\n 'let',\n 'long',\n 'native',\n 'new',\n 'null',\n 'package',\n 'private',\n 'protected',\n 'public',\n 'return',\n 'short',\n 'static',\n 'super',\n 'switch',\n 'synchronized',\n 'this',\n 'throw',\n 'throws',\n 'transient',\n 'true',\n 'try',\n 'typeof',\n 'var',\n 'void',\n 'volatile',\n 'while',\n 'with',\n 'yield',\n\n 'Array',\n 'Date',\n 'eval',\n 'function',\n 'hasOwnProperty',\n 'Infinity',\n 'isFinite',\n 'isNaN',\n 'isPrototypeOf',\n 'length',\n 'Math',\n 'name',\n 'NaN',\n 'Number',\n 'Object',\n 'prototype',\n 'String',\n 'toString',\n 'undefined',\n 'valueOf',\n]\n\nexport function transformReservedWord(word: string): string {\n if ((word && reservedWords.includes(word)) || word?.match(/^\\d/)) {\n return `_${word}`\n }\n\n return word\n}\n"],"mappings":";;;;;AAAA;AAQO,SAAS,iBAAiB,SAA0B;AACzD,QAAM,EAAE,MAAM,WAAW,SAAS,IAAI,IAAI,IAAI;AAE9C,QAAM,eAAe,QAAQ,eAAe,QAAQ,GAAG,KAAK;AAAA,IAC1D,GAAG,MAAM,KAAK,GAAG;AAAA,IACjB,GAAG,MAAM,KAAK,GAAG;AAAA,IACjB,GAAG,MAAM,MAAM,GAAG;AAAA,IAClB,GAAG,MAAM,IAAI,GAAG;AAAA,IAChB,GAAG,MAAM,IAAI,GAAG;AAAA,IAChB,GAAG,MAAM,KAAK,GAAG;AAAA,IACjB,IAAI,OAAO,GAAG,MAAM,GAAG,GAAG,IAAI,GAAG;AAAA,EACnC;AAEA,SAAO,aAAa,OAAO,CAAC,MAAM,gBAAgB;AAChD,WAAO,KAAK,SAAS,EAAE,WAAW,aAAa,SAAS;AAAA,EAC1D,GAAG,IAAI;AACT;;;ACxBA;AAAO,SAAS,KAAK,MAAsB;AACzC,SAAO,KAAK,WAAW,OAAO,EAAE,EAAE,KAAK;AACzC;AAEO,SAAS,YAAY,MAAsB;AAChD,SAAO,KAAK,QAAQ,aAAa,EAAE;AACrC;;;ACNA;AAGA,IAAM,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,SAAS,sBAAsB,MAAsB;AAC1D,MAAK,QAAQ,cAAc,SAAS,IAAI,KAAM,MAAM,MAAM,KAAK,GAAG;AAChE,WAAO,IAAI,IAAI;AAAA,EACjB;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/transformers/searchAndReplace.ts","../src/transformers/trim.ts","../src/transformers/transformReservedWord.ts"],"names":[],"mappings":";;;;;AAAA;AAQO,SAAS,iBAAiB,SAA0B;AACzD,QAAM,EAAE,MAAM,WAAW,SAAS,IAAI,IAAI,IAAI;AAE9C,QAAM,eAAe,QAAQ,eAAe,QAAQ,GAAG,KAAK;AAAA,IAC1D,GAAG,MAAM,KAAK,GAAG;AAAA,IACjB,GAAG,MAAM,KAAK,GAAG;AAAA,IACjB,GAAG,MAAM,MAAM,GAAG;AAAA,IAClB,GAAG,MAAM,IAAI,GAAG;AAAA,IAChB,GAAG,MAAM,IAAI,GAAG;AAAA,IAChB,GAAG,MAAM,KAAK,GAAG;AAAA,IACjB,IAAI,OAAO,GAAG,MAAM,GAAG,GAAG,IAAI,GAAG;AAAA,EACnC;AAEA,SAAO,aAAa,OAAO,CAAC,MAAM,gBAAgB;AAChD,WAAO,KAAK,SAAS,EAAE,WAAW,aAAa,SAAS;AAAA,EAC1D,GAAG,IAAI;AACT;;;ACxBA;AAAO,SAAS,KAAK,MAAsB;AACzC,SAAO,KAAK,WAAW,OAAO,EAAE,EAAE,KAAK;AACzC;AAEO,SAAS,YAAY,MAAsB;AAChD,SAAO,KAAK,QAAQ,aAAa,EAAE;AACrC;;;ACNA;AAGA,IAAM,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,SAAS,sBAAsB,MAAsB;AAC1D,MAAK,QAAQ,cAAc,SAAS,IAAI,KAAM,MAAM,MAAM,KAAK,GAAG;AAChE,WAAO,IAAI,IAAI;AAAA,EACjB;AAEA,SAAO;AACT","sourcesContent":["type Options = {\n text: string\n replaceBy: string\n prefix?: string\n key: string\n searchValues?: (prefix: string, key: string) => Array<RegExp | string>\n}\n\nexport function searchAndReplace(options: Options): string {\n const { text, replaceBy, prefix = '', key } = options\n\n const searchValues = options.searchValues?.(prefix, key) || [\n `${prefix}[\"${key}\"]`,\n `${prefix}['${key}']`,\n `${prefix}[\\`${key}\\`]`,\n `${prefix}\"${key}\"`,\n `${prefix}'${key}'`,\n `${prefix}\\`${key}\\``,\n new RegExp(`${prefix}${key}`, 'g'),\n ]\n\n return searchValues.reduce((prev, searchValue) => {\n return prev.toString().replaceAll(searchValue, replaceBy)\n }, text) as string\n}\n","export function trim(text: string): string {\n return text.replaceAll(/\\n/g, '').trim()\n}\n\nexport function trimExtName(text: string): string {\n return text.replace(/\\.[^/.]+$/, '')\n}\n","/**\n * @link https://github.com/jonschlinkert/reserved/blob/master/index.js\n */\nconst reservedWords = [\n 'abstract',\n 'arguments',\n 'boolean',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'class',\n 'const',\n 'continue',\n 'debugger',\n 'default',\n 'delete',\n 'do',\n 'double',\n 'else',\n 'enum',\n 'eval',\n 'export',\n 'extends',\n 'false',\n 'final',\n 'finally',\n 'float',\n 'for',\n 'function',\n 'goto',\n 'if',\n 'implements',\n 'import',\n 'in',\n 'instanceof',\n 'int',\n 'interface',\n 'let',\n 'long',\n 'native',\n 'new',\n 'null',\n 'package',\n 'private',\n 'protected',\n 'public',\n 'return',\n 'short',\n 'static',\n 'super',\n 'switch',\n 'synchronized',\n 'this',\n 'throw',\n 'throws',\n 'transient',\n 'true',\n 'try',\n 'typeof',\n 'var',\n 'void',\n 'volatile',\n 'while',\n 'with',\n 'yield',\n\n 'Array',\n 'Date',\n 'eval',\n 'function',\n 'hasOwnProperty',\n 'Infinity',\n 'isFinite',\n 'isNaN',\n 'isPrototypeOf',\n 'length',\n 'Math',\n 'name',\n 'NaN',\n 'Number',\n 'Object',\n 'prototype',\n 'String',\n 'toString',\n 'undefined',\n 'valueOf',\n]\n\nexport function transformReservedWord(word: string): string {\n if ((word && reservedWords.includes(word)) || word?.match(/^\\d/)) {\n return `_${word}`\n }\n\n return word\n}\n"]}
|
|
File without changes
|
|
File without changes
|