@kubb/parser-ts 3.0.0-alpha.9 → 3.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -5
- package/dist/{chunk-2BN5RQSZ.js → chunk-GUQGBXJ7.js} +11 -34
- package/dist/chunk-GUQGBXJ7.js.map +1 -0
- package/dist/{chunk-TNIGP6OU.cjs → chunk-VJY52WL4.cjs} +84 -72
- package/dist/chunk-VJY52WL4.cjs.map +1 -0
- package/dist/{factory-CFXA_d49.d.cts → factory-CicFXqtM.d.cts} +6 -2
- package/dist/{factory-CFXA_d49.d.ts → factory-CicFXqtM.d.ts} +6 -2
- package/dist/factory.cjs +123 -58
- package/dist/factory.cjs.map +1 -1
- package/dist/factory.d.cts +1 -1
- package/dist/factory.d.ts +1 -1
- package/dist/factory.js +2 -58
- package/dist/factory.js.map +1 -1
- package/dist/index.cjs +23 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -4
- package/dist/index.d.ts +11 -4
- package/dist/index.js +10 -9
- package/dist/index.js.map +1 -1
- package/package.json +6 -9
- package/src/factory.ts +3 -1
- package/src/format.ts +9 -0
- package/src/index.ts +1 -1
- package/src/print.ts +4 -1
- package/dist/chunk-2BN5RQSZ.js.map +0 -1
- package/dist/chunk-TNIGP6OU.cjs.map +0 -1
package/README.md
CHANGED
|
@@ -13,12 +13,8 @@
|
|
|
13
13
|
[![Coverage][coverage-src]][coverage-href]
|
|
14
14
|
[![License][license-src]][license-href]
|
|
15
15
|
|
|
16
|
-
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
17
|
-
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
18
|
-
</p>
|
|
19
|
-
|
|
20
16
|
<h4>
|
|
21
|
-
<a href="https://codesandbox.io/s/github/kubb-labs/kubb/tree/
|
|
17
|
+
<a href="https://codesandbox.io/s/github/kubb-labs/kubb/tree/main//examples/typescript" target="_blank">View Demo</a>
|
|
22
18
|
<span> · </span>
|
|
23
19
|
<a href="https://kubb.dev/" target="_blank">Documentation</a>
|
|
24
20
|
<span> · </span>
|
|
@@ -27,6 +23,19 @@
|
|
|
27
23
|
<a href="https://github.com/kubb-labs/kubb/issues/" target="_blank">Request Feature</a>
|
|
28
24
|
</h4>
|
|
29
25
|
</div>
|
|
26
|
+
## Supporting Kubb
|
|
27
|
+
|
|
28
|
+
Kubb uses an MIT-licensed open source project with its ongoing development made possible entirely by the support of Sponsors. If you would like to become a sponsor, please consider:
|
|
29
|
+
|
|
30
|
+
- [Become a Sponsor on GitHub](https://github.com/sponsors/stijnvanhulle)
|
|
31
|
+
|
|
32
|
+
<p align="center">
|
|
33
|
+
<a href="https://github.com/sponsors/stijnvanhulle">
|
|
34
|
+
<img src="https://raw.githubusercontent.com/stijnvanhulle/sponsors/main/sponsors.svg" alt="My sponsors" />
|
|
35
|
+
</a>
|
|
36
|
+
</p>
|
|
37
|
+
|
|
38
|
+
|
|
30
39
|
<!-- Badges -->
|
|
31
40
|
|
|
32
41
|
[npm-version-src]: https://img.shields.io/npm/v/@kubb/parser-ts?flat&colorA=18181B&colorB=f58517
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { isNumber } from 'remeda';
|
|
2
|
+
import ts from 'typescript';
|
|
3
|
+
|
|
1
4
|
var __defProp = Object.defineProperty;
|
|
2
5
|
var __export = (target, all) => {
|
|
3
6
|
for (var name in all)
|
|
@@ -12,6 +15,7 @@ __export(factory_exports, {
|
|
|
12
15
|
createArrayTypeNode: () => createArrayTypeNode,
|
|
13
16
|
createEnumDeclaration: () => createEnumDeclaration,
|
|
14
17
|
createExportDeclaration: () => createExportDeclaration,
|
|
18
|
+
createFalse: () => createFalse,
|
|
15
19
|
createIdentifier: () => createIdentifier,
|
|
16
20
|
createImportDeclaration: () => createImportDeclaration,
|
|
17
21
|
createIndexSignature: () => createIndexSignature,
|
|
@@ -26,6 +30,7 @@ __export(factory_exports, {
|
|
|
26
30
|
createPropertySignature: () => createPropertySignature,
|
|
27
31
|
createQuestionToken: () => createQuestionToken,
|
|
28
32
|
createStringLiteral: () => createStringLiteral,
|
|
33
|
+
createTrue: () => createTrue,
|
|
29
34
|
createTupleDeclaration: () => createTupleDeclaration,
|
|
30
35
|
createTupleTypeNode: () => createTupleTypeNode,
|
|
31
36
|
createTypeAliasDeclaration: () => createTypeAliasDeclaration,
|
|
@@ -35,8 +40,6 @@ __export(factory_exports, {
|
|
|
35
40
|
keywordTypeNodes: () => keywordTypeNodes,
|
|
36
41
|
modifiers: () => modifiers
|
|
37
42
|
});
|
|
38
|
-
import { isNumber } from "remeda";
|
|
39
|
-
import ts from "typescript";
|
|
40
43
|
var { factory } = ts;
|
|
41
44
|
var modifiers = {
|
|
42
45
|
async: factory.createModifier(ts.SyntaxKind.AsyncKeyword),
|
|
@@ -175,7 +178,7 @@ function appendJSDocToNode({
|
|
|
175
178
|
}
|
|
176
179
|
const text = filteredComments.reduce((acc = "", comment = "") => {
|
|
177
180
|
return `${acc}
|
|
178
|
-
* ${comment}`;
|
|
181
|
+
* ${comment.replaceAll("*/", "*\\/")}`;
|
|
179
182
|
}, "*");
|
|
180
183
|
return ts.addSyntheticLeadingComment({ ...node }, ts.SyntaxKind.MultiLineCommentTrivia, `${text || "*"}
|
|
181
184
|
`, true);
|
|
@@ -421,35 +424,9 @@ var createLiteralTypeNode = factory.createLiteralTypeNode;
|
|
|
421
424
|
var createNull = factory.createNull;
|
|
422
425
|
var createIdentifier = factory.createIdentifier;
|
|
423
426
|
var createTupleTypeNode = factory.createTupleTypeNode;
|
|
427
|
+
var createTrue = factory.createTrue;
|
|
428
|
+
var createFalse = factory.createFalse;
|
|
424
429
|
|
|
425
|
-
export {
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
createIntersectionDeclaration,
|
|
429
|
-
createTupleDeclaration,
|
|
430
|
-
createArrayDeclaration,
|
|
431
|
-
createUnionDeclaration,
|
|
432
|
-
createPropertySignature,
|
|
433
|
-
createParameterSignature,
|
|
434
|
-
createJSDoc,
|
|
435
|
-
appendJSDocToNode,
|
|
436
|
-
createIndexSignature,
|
|
437
|
-
createTypeAliasDeclaration,
|
|
438
|
-
createNamespaceDeclaration,
|
|
439
|
-
createImportDeclaration,
|
|
440
|
-
createExportDeclaration,
|
|
441
|
-
createEnumDeclaration,
|
|
442
|
-
createOmitDeclaration,
|
|
443
|
-
keywordTypeNodes,
|
|
444
|
-
createTypeLiteralNode,
|
|
445
|
-
createTypeReferenceNode,
|
|
446
|
-
createNumericLiteral,
|
|
447
|
-
createStringLiteral,
|
|
448
|
-
createArrayTypeNode,
|
|
449
|
-
createLiteralTypeNode,
|
|
450
|
-
createNull,
|
|
451
|
-
createIdentifier,
|
|
452
|
-
createTupleTypeNode,
|
|
453
|
-
factory_exports
|
|
454
|
-
};
|
|
455
|
-
//# sourceMappingURL=chunk-2BN5RQSZ.js.map
|
|
430
|
+
export { appendJSDocToNode, createArrayDeclaration, createArrayTypeNode, createEnumDeclaration, createExportDeclaration, createFalse, createIdentifier, createImportDeclaration, createIndexSignature, createIntersectionDeclaration, createJSDoc, createLiteralTypeNode, createNamespaceDeclaration, createNull, createNumericLiteral, createOmitDeclaration, createParameterSignature, createPropertySignature, createQuestionToken, createStringLiteral, createTrue, createTupleDeclaration, createTupleTypeNode, createTypeAliasDeclaration, createTypeLiteralNode, createTypeReferenceNode, createUnionDeclaration, factory_exports, keywordTypeNodes, modifiers };
|
|
431
|
+
//# sourceMappingURL=chunk-GUQGBXJ7.js.map
|
|
432
|
+
//# sourceMappingURL=chunk-GUQGBXJ7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/factory.ts"],"names":["modifiers","questionToken","propertyName"],"mappings":"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","file":"chunk-GUQGBXJ7.js","sourcesContent":["import { isNumber } from 'remeda'\nimport ts from 'typescript'\n\nconst { factory } = ts\n\n// https://ts-ast-viewer.com/\n\nexport const modifiers = {\n async: factory.createModifier(ts.SyntaxKind.AsyncKeyword),\n export: factory.createModifier(ts.SyntaxKind.ExportKeyword),\n const: factory.createModifier(ts.SyntaxKind.ConstKeyword),\n static: factory.createModifier(ts.SyntaxKind.StaticKeyword),\n} as const\n\nfunction isValidIdentifier(str: string): boolean {\n if (!str.length || str.trim() !== str) {\n return false\n }\n const node = ts.parseIsolatedEntityName(str, ts.ScriptTarget.Latest)\n\n return !!node && node.kind === ts.SyntaxKind.Identifier && ts.identifierToKeywordKind(node.kind as unknown as ts.Identifier) === undefined\n}\n\nfunction propertyName(name: string | ts.PropertyName): ts.PropertyName {\n if (typeof name === 'string') {\n return isValidIdentifier(name) ? factory.createIdentifier(name) : factory.createStringLiteral(name)\n }\n return name\n}\n\nconst questionToken = factory.createToken(ts.SyntaxKind.QuestionToken)\n\nexport function createQuestionToken(token?: boolean | ts.QuestionToken) {\n if (!token) {\n return undefined\n }\n if (token === true) {\n return questionToken\n }\n return token\n}\n\nexport function createIntersectionDeclaration({\n nodes,\n withParentheses,\n}: {\n nodes: Array<ts.TypeNode>\n withParentheses?: boolean\n}): ts.TypeNode | null {\n if (!nodes.length) {\n return null\n }\n\n if (nodes.length === 1) {\n return nodes[0] || null\n }\n\n const node = factory.createIntersectionTypeNode(nodes)\n\n if (withParentheses) {\n return factory.createParenthesizedType(node)\n }\n\n return node\n}\n\n/**\n * Minimum nodes length of 2\n * @example `string & number`\n */\nexport function createTupleDeclaration({\n nodes,\n withParentheses,\n}: {\n nodes: Array<ts.TypeNode>\n withParentheses?: boolean\n}): ts.TypeNode | null {\n if (!nodes.length) {\n return null\n }\n\n if (nodes.length === 1) {\n return nodes[0] || null\n }\n\n const node = factory.createTupleTypeNode(nodes)\n\n if (withParentheses) {\n return factory.createParenthesizedType(node)\n }\n\n return node\n}\n\nexport function createArrayDeclaration({\n nodes,\n}: {\n nodes: Array<ts.TypeNode>\n}): ts.TypeNode | null {\n if (!nodes.length) {\n return factory.createTupleTypeNode([])\n }\n\n if (nodes.length === 1) {\n return factory.createArrayTypeNode(nodes.at(0)!)\n }\n\n return factory.createExpressionWithTypeArguments(factory.createIdentifier('Array'), [factory.createUnionTypeNode(nodes)])\n}\n\n/**\n * Minimum nodes length of 2\n * @example `string | number`\n */\nexport function createUnionDeclaration({\n nodes,\n withParentheses,\n}: {\n nodes: Array<ts.TypeNode>\n withParentheses?: boolean\n}): ts.TypeNode | null {\n if (!nodes.length) {\n return null\n }\n\n if (nodes.length === 1) {\n return nodes[0] || null\n }\n\n const node = factory.createUnionTypeNode(nodes)\n\n if (withParentheses) {\n return factory.createParenthesizedType(node)\n }\n\n return node\n}\n\nexport function createPropertySignature({\n readOnly,\n modifiers = [],\n name,\n questionToken,\n type,\n}: {\n readOnly?: boolean\n modifiers?: Array<ts.Modifier>\n name: ts.PropertyName | string\n questionToken?: ts.QuestionToken | boolean\n type?: ts.TypeNode\n}) {\n return factory.createPropertySignature(\n [...modifiers, readOnly ? factory.createToken(ts.SyntaxKind.ReadonlyKeyword) : undefined].filter(Boolean),\n propertyName(name),\n createQuestionToken(questionToken),\n type,\n )\n}\n\nexport function createParameterSignature(\n name: string | ts.BindingName,\n {\n modifiers,\n dotDotDotToken,\n questionToken,\n type,\n initializer,\n }: {\n decorators?: Array<ts.Decorator>\n modifiers?: Array<ts.Modifier>\n dotDotDotToken?: ts.DotDotDotToken\n questionToken?: ts.QuestionToken | boolean\n type?: ts.TypeNode\n initializer?: ts.Expression\n },\n): ts.ParameterDeclaration {\n return factory.createParameterDeclaration(modifiers, dotDotDotToken, name, createQuestionToken(questionToken), type, initializer)\n}\n\nexport function createJSDoc({ comments }: { comments: string[] }) {\n if (!comments.length) {\n return null\n }\n return factory.createJSDocComment(\n factory.createNodeArray(\n comments.map((comment, i) => {\n if (i === comments.length - 1) {\n return factory.createJSDocText(comment)\n }\n\n return factory.createJSDocText(`${comment}\\n`)\n }),\n ),\n )\n}\n\n/**\n * @link https://github.com/microsoft/TypeScript/issues/44151\n */\nexport function appendJSDocToNode<TNode extends ts.Node>({\n node,\n comments,\n}: {\n node: TNode\n comments: Array<string | undefined>\n}) {\n const filteredComments = comments.filter(Boolean)\n\n if (!filteredComments.length) {\n return node\n }\n\n const text = filteredComments.reduce((acc = '', comment = '') => {\n return `${acc}\\n * ${comment.replaceAll('*/', '*\\\\/')}`\n }, '*')\n\n // node: {...node}, with that ts.addSyntheticLeadingComment is appending\n return ts.addSyntheticLeadingComment({ ...node }, ts.SyntaxKind.MultiLineCommentTrivia, `${text || '*'}\\n`, true)\n}\n\nexport function createIndexSignature(\n type: ts.TypeNode,\n {\n modifiers,\n indexName = 'key',\n indexType = factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),\n }: {\n indexName?: string\n indexType?: ts.TypeNode\n decorators?: Array<ts.Decorator>\n modifiers?: Array<ts.Modifier>\n } = {},\n) {\n return factory.createIndexSignature(modifiers, [createParameterSignature(indexName, { type: indexType })], type)\n}\n\nexport function createTypeAliasDeclaration({\n modifiers,\n name,\n typeParameters,\n type,\n}: {\n modifiers?: Array<ts.Modifier>\n name: string | ts.Identifier\n typeParameters?: Array<ts.TypeParameterDeclaration>\n type: ts.TypeNode\n}) {\n return factory.createTypeAliasDeclaration(modifiers, name, typeParameters, type)\n}\n\nexport function createNamespaceDeclaration({\n statements,\n name,\n}: {\n name: string\n statements: ts.Statement[]\n}) {\n return factory.createModuleDeclaration(\n [factory.createToken(ts.SyntaxKind.ExportKeyword)],\n factory.createIdentifier(name),\n factory.createModuleBlock(statements),\n ts.NodeFlags.Namespace,\n )\n}\n\n/**\n * In { propertyName: string; name?: string } is `name` being used to make the type more unique when multiple same names are used.\n * @example `import { Pet as Cat } from './Pet'`\n */\nexport function createImportDeclaration({\n name,\n path,\n isTypeOnly = false,\n isNameSpace = false,\n}: {\n name: string | Array<string | { propertyName: string; name?: string }>\n path: string\n isTypeOnly?: boolean\n isNameSpace?: boolean\n}) {\n if (!Array.isArray(name)) {\n let importPropertyName: ts.Identifier | undefined = factory.createIdentifier(name)\n let importName: ts.NamedImportBindings | undefined = undefined\n\n if (isNameSpace) {\n importPropertyName = undefined\n importName = factory.createNamespaceImport(factory.createIdentifier(name))\n }\n\n return factory.createImportDeclaration(\n undefined,\n factory.createImportClause(isTypeOnly, importPropertyName, importName),\n factory.createStringLiteral(path),\n undefined,\n )\n }\n\n return factory.createImportDeclaration(\n undefined,\n factory.createImportClause(\n isTypeOnly,\n undefined,\n factory.createNamedImports(\n name.map((item) => {\n if (typeof item === 'object') {\n const obj = item as { propertyName: string; name?: string }\n if (obj.name) {\n return factory.createImportSpecifier(false, factory.createIdentifier(obj.propertyName), factory.createIdentifier(obj.name))\n }\n\n return factory.createImportSpecifier(false, undefined, factory.createIdentifier(obj.propertyName))\n }\n\n return factory.createImportSpecifier(false, undefined, factory.createIdentifier(item))\n }),\n ),\n ),\n factory.createStringLiteral(path),\n undefined,\n )\n}\n\nexport function createExportDeclaration({\n path,\n asAlias,\n isTypeOnly = false,\n name,\n}: {\n path: string\n asAlias?: boolean\n isTypeOnly?: boolean\n name?: string | Array<ts.Identifier | string>\n}) {\n if (name && !Array.isArray(name) && !asAlias) {\n console.warn(`When using name as string, asAlias should be true ${name}`)\n }\n\n if (!Array.isArray(name)) {\n const parsedName = name?.match(/^\\d/) ? `_${name?.slice(1)}` : name\n\n return factory.createExportDeclaration(\n undefined,\n isTypeOnly,\n asAlias && parsedName ? factory.createNamespaceExport(factory.createIdentifier(parsedName)) : undefined,\n factory.createStringLiteral(path),\n undefined,\n )\n }\n\n return factory.createExportDeclaration(\n undefined,\n isTypeOnly,\n factory.createNamedExports(\n name.map((propertyName) => {\n return factory.createExportSpecifier(false, undefined, typeof propertyName === 'string' ? factory.createIdentifier(propertyName) : propertyName)\n }),\n ),\n factory.createStringLiteral(path),\n undefined,\n )\n}\n\nexport function createEnumDeclaration({\n type = 'enum',\n name,\n typeName,\n enums,\n}: {\n /**\n * @default `'enum'`\n */\n type?: 'enum' | 'asConst' | 'asPascalConst' | 'constEnum' | 'literal'\n /**\n * Enum name in camelCase.\n */\n name: string\n /**\n * Enum name in PascalCase.\n */\n typeName: string\n enums: [key: string | number, value: string | number | boolean][]\n}): [name: ts.Node | undefined, type: ts.Node] {\n if (type === 'literal') {\n return [\n undefined,\n factory.createTypeAliasDeclaration(\n [factory.createToken(ts.SyntaxKind.ExportKeyword)],\n factory.createIdentifier(typeName),\n undefined,\n factory.createUnionTypeNode(\n enums\n .map(([_key, value]) => {\n if (isNumber(value)) {\n return factory.createLiteralTypeNode(factory.createNumericLiteral(value?.toString()))\n }\n\n if (typeof value === 'boolean') {\n return factory.createLiteralTypeNode(value ? factory.createTrue() : factory.createFalse())\n }\n if (value) {\n return factory.createLiteralTypeNode(factory.createStringLiteral(value.toString()))\n }\n\n return undefined\n })\n .filter(Boolean),\n ),\n ),\n ]\n }\n\n if (type === 'enum' || type === 'constEnum') {\n return [\n undefined,\n factory.createEnumDeclaration(\n [factory.createToken(ts.SyntaxKind.ExportKeyword), type === 'constEnum' ? factory.createToken(ts.SyntaxKind.ConstKeyword) : undefined].filter(Boolean),\n factory.createIdentifier(typeName),\n enums\n .map(([key, value]) => {\n let initializer: ts.Expression = factory.createStringLiteral(value?.toString())\n\n if (isNumber(Number.parseInt(value.toString()))) {\n initializer = factory.createNumericLiteral(value as number)\n }\n if (typeof value === 'boolean') {\n initializer = value ? factory.createTrue() : factory.createFalse()\n }\n\n if (isNumber(Number.parseInt(key.toString()))) {\n return factory.createEnumMember(factory.createStringLiteral(`${typeName}_${key}`), initializer)\n }\n\n if (key) {\n return factory.createEnumMember(factory.createStringLiteral(`${key}`), initializer)\n }\n\n return undefined\n })\n .filter(Boolean),\n ),\n ]\n }\n\n // used when using `as const` instead of an TypeScript enum.\n const identifierName = type === 'asPascalConst' ? typeName : name\n\n return [\n factory.createVariableStatement(\n [factory.createToken(ts.SyntaxKind.ExportKeyword)],\n factory.createVariableDeclarationList(\n [\n factory.createVariableDeclaration(\n factory.createIdentifier(identifierName),\n undefined,\n undefined,\n factory.createAsExpression(\n factory.createObjectLiteralExpression(\n enums\n .map(([key, value]) => {\n let initializer: ts.Expression = factory.createStringLiteral(`${value?.toString()}`)\n\n if (isNumber(value)) {\n // Error: Negative numbers should be created in combination with createPrefixUnaryExpression factory.\n // The method createNumericLiteral only accepts positive numbers\n // or those combined with createPrefixUnaryExpression.\n // Therefore, we need to ensure that the number is not negative.\n if (value < 0) {\n initializer = factory.createPrefixUnaryExpression(ts.SyntaxKind.MinusToken, factory.createNumericLiteral(Math.abs(value)))\n } else {\n initializer = factory.createNumericLiteral(value)\n }\n }\n\n if (typeof value === 'boolean') {\n initializer = value ? factory.createTrue() : factory.createFalse()\n }\n\n if (key) {\n return factory.createPropertyAssignment(factory.createStringLiteral(`${key}`), initializer)\n }\n\n return undefined\n })\n .filter(Boolean),\n true,\n ),\n factory.createTypeReferenceNode(factory.createIdentifier('const'), undefined),\n ),\n ),\n ],\n ts.NodeFlags.Const,\n ),\n ),\n factory.createTypeAliasDeclaration(\n type === 'asPascalConst' ? [] : [factory.createToken(ts.SyntaxKind.ExportKeyword)],\n factory.createIdentifier(typeName),\n undefined,\n factory.createIndexedAccessTypeNode(\n factory.createParenthesizedType(factory.createTypeQueryNode(factory.createIdentifier(identifierName), undefined)),\n factory.createTypeOperatorNode(ts.SyntaxKind.KeyOfKeyword, factory.createTypeQueryNode(factory.createIdentifier(identifierName), undefined)),\n ),\n ),\n ]\n}\n\nexport function createOmitDeclaration({\n keys,\n type,\n nonNullable,\n}: {\n keys: Array<string> | string\n type: ts.TypeNode\n nonNullable?: boolean\n}) {\n const node = nonNullable ? factory.createTypeReferenceNode(factory.createIdentifier('NonNullable'), [type]) : type\n\n if (Array.isArray(keys)) {\n return factory.createTypeReferenceNode(factory.createIdentifier('Omit'), [\n node,\n factory.createUnionTypeNode(\n keys.map((key) => {\n return factory.createLiteralTypeNode(factory.createStringLiteral(key))\n }),\n ),\n ])\n }\n\n return factory.createTypeReferenceNode(factory.createIdentifier('Omit'), [node, factory.createLiteralTypeNode(factory.createStringLiteral(keys))])\n}\n\nexport const keywordTypeNodes = {\n any: factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),\n unknown: factory.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword),\n number: factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword),\n integer: factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword),\n object: factory.createKeywordTypeNode(ts.SyntaxKind.ObjectKeyword),\n string: factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),\n boolean: factory.createKeywordTypeNode(ts.SyntaxKind.BooleanKeyword),\n undefined: factory.createKeywordTypeNode(ts.SyntaxKind.UndefinedKeyword),\n null: factory.createLiteralTypeNode(factory.createToken(ts.SyntaxKind.NullKeyword)),\n} as const\n\nexport const createTypeLiteralNode = factory.createTypeLiteralNode\n\nexport const createTypeReferenceNode = factory.createTypeReferenceNode\nexport const createNumericLiteral = factory.createNumericLiteral\nexport const createStringLiteral = factory.createStringLiteral\n\nexport const createArrayTypeNode = factory.createArrayTypeNode\n\nexport const createLiteralTypeNode = factory.createLiteralTypeNode\nexport const createNull = factory.createNull\nexport const createIdentifier = factory.createIdentifier\n\nexport const createTupleTypeNode = factory.createTupleTypeNode\nexport const createTrue = factory.createTrue\nexport const createFalse = factory.createFalse\n"]}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var remeda = require('remeda');
|
|
4
|
+
var ts = require('typescript');
|
|
5
|
+
|
|
6
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
|
|
8
|
+
var ts__default = /*#__PURE__*/_interopDefault(ts);
|
|
9
|
+
|
|
10
|
+
var __defProp = Object.defineProperty;
|
|
2
11
|
var __export = (target, all) => {
|
|
3
12
|
for (var name in all)
|
|
4
13
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -12,6 +21,7 @@ __export(factory_exports, {
|
|
|
12
21
|
createArrayTypeNode: () => createArrayTypeNode,
|
|
13
22
|
createEnumDeclaration: () => createEnumDeclaration,
|
|
14
23
|
createExportDeclaration: () => createExportDeclaration,
|
|
24
|
+
createFalse: () => createFalse,
|
|
15
25
|
createIdentifier: () => createIdentifier,
|
|
16
26
|
createImportDeclaration: () => createImportDeclaration,
|
|
17
27
|
createIndexSignature: () => createIndexSignature,
|
|
@@ -26,6 +36,7 @@ __export(factory_exports, {
|
|
|
26
36
|
createPropertySignature: () => createPropertySignature,
|
|
27
37
|
createQuestionToken: () => createQuestionToken,
|
|
28
38
|
createStringLiteral: () => createStringLiteral,
|
|
39
|
+
createTrue: () => createTrue,
|
|
29
40
|
createTupleDeclaration: () => createTupleDeclaration,
|
|
30
41
|
createTupleTypeNode: () => createTupleTypeNode,
|
|
31
42
|
createTypeAliasDeclaration: () => createTypeAliasDeclaration,
|
|
@@ -35,21 +46,19 @@ __export(factory_exports, {
|
|
|
35
46
|
keywordTypeNodes: () => keywordTypeNodes,
|
|
36
47
|
modifiers: () => modifiers
|
|
37
48
|
});
|
|
38
|
-
var
|
|
39
|
-
var _typescript = require('typescript'); var _typescript2 = _interopRequireDefault(_typescript);
|
|
40
|
-
var { factory } = _typescript2.default;
|
|
49
|
+
var { factory } = ts__default.default;
|
|
41
50
|
var modifiers = {
|
|
42
|
-
async: factory.createModifier(
|
|
43
|
-
export: factory.createModifier(
|
|
44
|
-
const: factory.createModifier(
|
|
45
|
-
static: factory.createModifier(
|
|
51
|
+
async: factory.createModifier(ts__default.default.SyntaxKind.AsyncKeyword),
|
|
52
|
+
export: factory.createModifier(ts__default.default.SyntaxKind.ExportKeyword),
|
|
53
|
+
const: factory.createModifier(ts__default.default.SyntaxKind.ConstKeyword),
|
|
54
|
+
static: factory.createModifier(ts__default.default.SyntaxKind.StaticKeyword)
|
|
46
55
|
};
|
|
47
56
|
function isValidIdentifier(str) {
|
|
48
57
|
if (!str.length || str.trim() !== str) {
|
|
49
58
|
return false;
|
|
50
59
|
}
|
|
51
|
-
const node =
|
|
52
|
-
return !!node && node.kind ===
|
|
60
|
+
const node = ts__default.default.parseIsolatedEntityName(str, ts__default.default.ScriptTarget.Latest);
|
|
61
|
+
return !!node && node.kind === ts__default.default.SyntaxKind.Identifier && ts__default.default.identifierToKeywordKind(node.kind) === void 0;
|
|
53
62
|
}
|
|
54
63
|
function propertyName(name) {
|
|
55
64
|
if (typeof name === "string") {
|
|
@@ -57,7 +66,7 @@ function propertyName(name) {
|
|
|
57
66
|
}
|
|
58
67
|
return name;
|
|
59
68
|
}
|
|
60
|
-
var questionToken = factory.createToken(
|
|
69
|
+
var questionToken = factory.createToken(ts__default.default.SyntaxKind.QuestionToken);
|
|
61
70
|
function createQuestionToken(token) {
|
|
62
71
|
if (!token) {
|
|
63
72
|
return void 0;
|
|
@@ -134,7 +143,7 @@ function createPropertySignature({
|
|
|
134
143
|
type
|
|
135
144
|
}) {
|
|
136
145
|
return factory.createPropertySignature(
|
|
137
|
-
[...modifiers2, readOnly ? factory.createToken(
|
|
146
|
+
[...modifiers2, readOnly ? factory.createToken(ts__default.default.SyntaxKind.ReadonlyKeyword) : void 0].filter(Boolean),
|
|
138
147
|
propertyName(name),
|
|
139
148
|
createQuestionToken(questionToken2),
|
|
140
149
|
type
|
|
@@ -175,15 +184,15 @@ function appendJSDocToNode({
|
|
|
175
184
|
}
|
|
176
185
|
const text = filteredComments.reduce((acc = "", comment = "") => {
|
|
177
186
|
return `${acc}
|
|
178
|
-
* ${comment}`;
|
|
187
|
+
* ${comment.replaceAll("*/", "*\\/")}`;
|
|
179
188
|
}, "*");
|
|
180
|
-
return
|
|
189
|
+
return ts__default.default.addSyntheticLeadingComment({ ...node }, ts__default.default.SyntaxKind.MultiLineCommentTrivia, `${text || "*"}
|
|
181
190
|
`, true);
|
|
182
191
|
}
|
|
183
192
|
function createIndexSignature(type, {
|
|
184
193
|
modifiers: modifiers2,
|
|
185
194
|
indexName = "key",
|
|
186
|
-
indexType = factory.createKeywordTypeNode(
|
|
195
|
+
indexType = factory.createKeywordTypeNode(ts__default.default.SyntaxKind.StringKeyword)
|
|
187
196
|
} = {}) {
|
|
188
197
|
return factory.createIndexSignature(modifiers2, [createParameterSignature(indexName, { type: indexType })], type);
|
|
189
198
|
}
|
|
@@ -200,10 +209,10 @@ function createNamespaceDeclaration({
|
|
|
200
209
|
name
|
|
201
210
|
}) {
|
|
202
211
|
return factory.createModuleDeclaration(
|
|
203
|
-
[factory.createToken(
|
|
212
|
+
[factory.createToken(ts__default.default.SyntaxKind.ExportKeyword)],
|
|
204
213
|
factory.createIdentifier(name),
|
|
205
214
|
factory.createModuleBlock(statements),
|
|
206
|
-
|
|
215
|
+
ts__default.default.NodeFlags.Namespace
|
|
207
216
|
);
|
|
208
217
|
}
|
|
209
218
|
function createImportDeclaration({
|
|
@@ -258,7 +267,7 @@ function createExportDeclaration({
|
|
|
258
267
|
console.warn(`When using name as string, asAlias should be true ${name}`);
|
|
259
268
|
}
|
|
260
269
|
if (!Array.isArray(name)) {
|
|
261
|
-
const parsedName =
|
|
270
|
+
const parsedName = name?.match(/^\d/) ? `_${name?.slice(1)}` : name;
|
|
262
271
|
return factory.createExportDeclaration(
|
|
263
272
|
void 0,
|
|
264
273
|
isTypeOnly,
|
|
@@ -289,13 +298,13 @@ function createEnumDeclaration({
|
|
|
289
298
|
return [
|
|
290
299
|
void 0,
|
|
291
300
|
factory.createTypeAliasDeclaration(
|
|
292
|
-
[factory.createToken(
|
|
301
|
+
[factory.createToken(ts__default.default.SyntaxKind.ExportKeyword)],
|
|
293
302
|
factory.createIdentifier(typeName),
|
|
294
303
|
void 0,
|
|
295
304
|
factory.createUnionTypeNode(
|
|
296
305
|
enums.map(([_key, value]) => {
|
|
297
|
-
if (
|
|
298
|
-
return factory.createLiteralTypeNode(factory.createNumericLiteral(
|
|
306
|
+
if (remeda.isNumber(value)) {
|
|
307
|
+
return factory.createLiteralTypeNode(factory.createNumericLiteral(value?.toString()));
|
|
299
308
|
}
|
|
300
309
|
if (typeof value === "boolean") {
|
|
301
310
|
return factory.createLiteralTypeNode(value ? factory.createTrue() : factory.createFalse());
|
|
@@ -313,17 +322,17 @@ function createEnumDeclaration({
|
|
|
313
322
|
return [
|
|
314
323
|
void 0,
|
|
315
324
|
factory.createEnumDeclaration(
|
|
316
|
-
[factory.createToken(
|
|
325
|
+
[factory.createToken(ts__default.default.SyntaxKind.ExportKeyword), type === "constEnum" ? factory.createToken(ts__default.default.SyntaxKind.ConstKeyword) : void 0].filter(Boolean),
|
|
317
326
|
factory.createIdentifier(typeName),
|
|
318
327
|
enums.map(([key, value]) => {
|
|
319
|
-
let initializer = factory.createStringLiteral(
|
|
320
|
-
if (
|
|
328
|
+
let initializer = factory.createStringLiteral(value?.toString());
|
|
329
|
+
if (remeda.isNumber(Number.parseInt(value.toString()))) {
|
|
321
330
|
initializer = factory.createNumericLiteral(value);
|
|
322
331
|
}
|
|
323
332
|
if (typeof value === "boolean") {
|
|
324
333
|
initializer = value ? factory.createTrue() : factory.createFalse();
|
|
325
334
|
}
|
|
326
|
-
if (
|
|
335
|
+
if (remeda.isNumber(Number.parseInt(key.toString()))) {
|
|
327
336
|
return factory.createEnumMember(factory.createStringLiteral(`${typeName}_${key}`), initializer);
|
|
328
337
|
}
|
|
329
338
|
if (key) {
|
|
@@ -337,7 +346,7 @@ function createEnumDeclaration({
|
|
|
337
346
|
const identifierName = type === "asPascalConst" ? typeName : name;
|
|
338
347
|
return [
|
|
339
348
|
factory.createVariableStatement(
|
|
340
|
-
[factory.createToken(
|
|
349
|
+
[factory.createToken(ts__default.default.SyntaxKind.ExportKeyword)],
|
|
341
350
|
factory.createVariableDeclarationList(
|
|
342
351
|
[
|
|
343
352
|
factory.createVariableDeclaration(
|
|
@@ -347,10 +356,10 @@ function createEnumDeclaration({
|
|
|
347
356
|
factory.createAsExpression(
|
|
348
357
|
factory.createObjectLiteralExpression(
|
|
349
358
|
enums.map(([key, value]) => {
|
|
350
|
-
let initializer = factory.createStringLiteral(`${
|
|
351
|
-
if (
|
|
359
|
+
let initializer = factory.createStringLiteral(`${value?.toString()}`);
|
|
360
|
+
if (remeda.isNumber(value)) {
|
|
352
361
|
if (value < 0) {
|
|
353
|
-
initializer = factory.createPrefixUnaryExpression(
|
|
362
|
+
initializer = factory.createPrefixUnaryExpression(ts__default.default.SyntaxKind.MinusToken, factory.createNumericLiteral(Math.abs(value)));
|
|
354
363
|
} else {
|
|
355
364
|
initializer = factory.createNumericLiteral(value);
|
|
356
365
|
}
|
|
@@ -369,16 +378,16 @@ function createEnumDeclaration({
|
|
|
369
378
|
)
|
|
370
379
|
)
|
|
371
380
|
],
|
|
372
|
-
|
|
381
|
+
ts__default.default.NodeFlags.Const
|
|
373
382
|
)
|
|
374
383
|
),
|
|
375
384
|
factory.createTypeAliasDeclaration(
|
|
376
|
-
type === "asPascalConst" ? [] : [factory.createToken(
|
|
385
|
+
type === "asPascalConst" ? [] : [factory.createToken(ts__default.default.SyntaxKind.ExportKeyword)],
|
|
377
386
|
factory.createIdentifier(typeName),
|
|
378
387
|
void 0,
|
|
379
388
|
factory.createIndexedAccessTypeNode(
|
|
380
389
|
factory.createParenthesizedType(factory.createTypeQueryNode(factory.createIdentifier(identifierName), void 0)),
|
|
381
|
-
factory.createTypeOperatorNode(
|
|
390
|
+
factory.createTypeOperatorNode(ts__default.default.SyntaxKind.KeyOfKeyword, factory.createTypeQueryNode(factory.createIdentifier(identifierName), void 0))
|
|
382
391
|
)
|
|
383
392
|
)
|
|
384
393
|
];
|
|
@@ -402,15 +411,15 @@ function createOmitDeclaration({
|
|
|
402
411
|
return factory.createTypeReferenceNode(factory.createIdentifier("Omit"), [node, factory.createLiteralTypeNode(factory.createStringLiteral(keys))]);
|
|
403
412
|
}
|
|
404
413
|
var keywordTypeNodes = {
|
|
405
|
-
any: factory.createKeywordTypeNode(
|
|
406
|
-
unknown: factory.createKeywordTypeNode(
|
|
407
|
-
number: factory.createKeywordTypeNode(
|
|
408
|
-
integer: factory.createKeywordTypeNode(
|
|
409
|
-
object: factory.createKeywordTypeNode(
|
|
410
|
-
string: factory.createKeywordTypeNode(
|
|
411
|
-
boolean: factory.createKeywordTypeNode(
|
|
412
|
-
undefined: factory.createKeywordTypeNode(
|
|
413
|
-
null: factory.createLiteralTypeNode(factory.createToken(
|
|
414
|
+
any: factory.createKeywordTypeNode(ts__default.default.SyntaxKind.AnyKeyword),
|
|
415
|
+
unknown: factory.createKeywordTypeNode(ts__default.default.SyntaxKind.UnknownKeyword),
|
|
416
|
+
number: factory.createKeywordTypeNode(ts__default.default.SyntaxKind.NumberKeyword),
|
|
417
|
+
integer: factory.createKeywordTypeNode(ts__default.default.SyntaxKind.NumberKeyword),
|
|
418
|
+
object: factory.createKeywordTypeNode(ts__default.default.SyntaxKind.ObjectKeyword),
|
|
419
|
+
string: factory.createKeywordTypeNode(ts__default.default.SyntaxKind.StringKeyword),
|
|
420
|
+
boolean: factory.createKeywordTypeNode(ts__default.default.SyntaxKind.BooleanKeyword),
|
|
421
|
+
undefined: factory.createKeywordTypeNode(ts__default.default.SyntaxKind.UndefinedKeyword),
|
|
422
|
+
null: factory.createLiteralTypeNode(factory.createToken(ts__default.default.SyntaxKind.NullKeyword))
|
|
414
423
|
};
|
|
415
424
|
var createTypeLiteralNode = factory.createTypeLiteralNode;
|
|
416
425
|
var createTypeReferenceNode = factory.createTypeReferenceNode;
|
|
@@ -421,35 +430,38 @@ var createLiteralTypeNode = factory.createLiteralTypeNode;
|
|
|
421
430
|
var createNull = factory.createNull;
|
|
422
431
|
var createIdentifier = factory.createIdentifier;
|
|
423
432
|
var createTupleTypeNode = factory.createTupleTypeNode;
|
|
433
|
+
var createTrue = factory.createTrue;
|
|
434
|
+
var createFalse = factory.createFalse;
|
|
424
435
|
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
exports.modifiers = modifiers;
|
|
455
|
-
//# sourceMappingURL=chunk-
|
|
436
|
+
exports.appendJSDocToNode = appendJSDocToNode;
|
|
437
|
+
exports.createArrayDeclaration = createArrayDeclaration;
|
|
438
|
+
exports.createArrayTypeNode = createArrayTypeNode;
|
|
439
|
+
exports.createEnumDeclaration = createEnumDeclaration;
|
|
440
|
+
exports.createExportDeclaration = createExportDeclaration;
|
|
441
|
+
exports.createFalse = createFalse;
|
|
442
|
+
exports.createIdentifier = createIdentifier;
|
|
443
|
+
exports.createImportDeclaration = createImportDeclaration;
|
|
444
|
+
exports.createIndexSignature = createIndexSignature;
|
|
445
|
+
exports.createIntersectionDeclaration = createIntersectionDeclaration;
|
|
446
|
+
exports.createJSDoc = createJSDoc;
|
|
447
|
+
exports.createLiteralTypeNode = createLiteralTypeNode;
|
|
448
|
+
exports.createNamespaceDeclaration = createNamespaceDeclaration;
|
|
449
|
+
exports.createNull = createNull;
|
|
450
|
+
exports.createNumericLiteral = createNumericLiteral;
|
|
451
|
+
exports.createOmitDeclaration = createOmitDeclaration;
|
|
452
|
+
exports.createParameterSignature = createParameterSignature;
|
|
453
|
+
exports.createPropertySignature = createPropertySignature;
|
|
454
|
+
exports.createQuestionToken = createQuestionToken;
|
|
455
|
+
exports.createStringLiteral = createStringLiteral;
|
|
456
|
+
exports.createTrue = createTrue;
|
|
457
|
+
exports.createTupleDeclaration = createTupleDeclaration;
|
|
458
|
+
exports.createTupleTypeNode = createTupleTypeNode;
|
|
459
|
+
exports.createTypeAliasDeclaration = createTypeAliasDeclaration;
|
|
460
|
+
exports.createTypeLiteralNode = createTypeLiteralNode;
|
|
461
|
+
exports.createTypeReferenceNode = createTypeReferenceNode;
|
|
462
|
+
exports.createUnionDeclaration = createUnionDeclaration;
|
|
463
|
+
exports.factory_exports = factory_exports;
|
|
464
|
+
exports.keywordTypeNodes = keywordTypeNodes;
|
|
465
|
+
exports.modifiers = modifiers;
|
|
466
|
+
//# sourceMappingURL=chunk-VJY52WL4.cjs.map
|
|
467
|
+
//# sourceMappingURL=chunk-VJY52WL4.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/factory.ts"],"names":["ts","modifiers","questionToken","propertyName","isNumber"],"mappings":"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","file":"chunk-VJY52WL4.cjs","sourcesContent":["import { isNumber } from 'remeda'\nimport ts from 'typescript'\n\nconst { factory } = ts\n\n// https://ts-ast-viewer.com/\n\nexport const modifiers = {\n async: factory.createModifier(ts.SyntaxKind.AsyncKeyword),\n export: factory.createModifier(ts.SyntaxKind.ExportKeyword),\n const: factory.createModifier(ts.SyntaxKind.ConstKeyword),\n static: factory.createModifier(ts.SyntaxKind.StaticKeyword),\n} as const\n\nfunction isValidIdentifier(str: string): boolean {\n if (!str.length || str.trim() !== str) {\n return false\n }\n const node = ts.parseIsolatedEntityName(str, ts.ScriptTarget.Latest)\n\n return !!node && node.kind === ts.SyntaxKind.Identifier && ts.identifierToKeywordKind(node.kind as unknown as ts.Identifier) === undefined\n}\n\nfunction propertyName(name: string | ts.PropertyName): ts.PropertyName {\n if (typeof name === 'string') {\n return isValidIdentifier(name) ? factory.createIdentifier(name) : factory.createStringLiteral(name)\n }\n return name\n}\n\nconst questionToken = factory.createToken(ts.SyntaxKind.QuestionToken)\n\nexport function createQuestionToken(token?: boolean | ts.QuestionToken) {\n if (!token) {\n return undefined\n }\n if (token === true) {\n return questionToken\n }\n return token\n}\n\nexport function createIntersectionDeclaration({\n nodes,\n withParentheses,\n}: {\n nodes: Array<ts.TypeNode>\n withParentheses?: boolean\n}): ts.TypeNode | null {\n if (!nodes.length) {\n return null\n }\n\n if (nodes.length === 1) {\n return nodes[0] || null\n }\n\n const node = factory.createIntersectionTypeNode(nodes)\n\n if (withParentheses) {\n return factory.createParenthesizedType(node)\n }\n\n return node\n}\n\n/**\n * Minimum nodes length of 2\n * @example `string & number`\n */\nexport function createTupleDeclaration({\n nodes,\n withParentheses,\n}: {\n nodes: Array<ts.TypeNode>\n withParentheses?: boolean\n}): ts.TypeNode | null {\n if (!nodes.length) {\n return null\n }\n\n if (nodes.length === 1) {\n return nodes[0] || null\n }\n\n const node = factory.createTupleTypeNode(nodes)\n\n if (withParentheses) {\n return factory.createParenthesizedType(node)\n }\n\n return node\n}\n\nexport function createArrayDeclaration({\n nodes,\n}: {\n nodes: Array<ts.TypeNode>\n}): ts.TypeNode | null {\n if (!nodes.length) {\n return factory.createTupleTypeNode([])\n }\n\n if (nodes.length === 1) {\n return factory.createArrayTypeNode(nodes.at(0)!)\n }\n\n return factory.createExpressionWithTypeArguments(factory.createIdentifier('Array'), [factory.createUnionTypeNode(nodes)])\n}\n\n/**\n * Minimum nodes length of 2\n * @example `string | number`\n */\nexport function createUnionDeclaration({\n nodes,\n withParentheses,\n}: {\n nodes: Array<ts.TypeNode>\n withParentheses?: boolean\n}): ts.TypeNode | null {\n if (!nodes.length) {\n return null\n }\n\n if (nodes.length === 1) {\n return nodes[0] || null\n }\n\n const node = factory.createUnionTypeNode(nodes)\n\n if (withParentheses) {\n return factory.createParenthesizedType(node)\n }\n\n return node\n}\n\nexport function createPropertySignature({\n readOnly,\n modifiers = [],\n name,\n questionToken,\n type,\n}: {\n readOnly?: boolean\n modifiers?: Array<ts.Modifier>\n name: ts.PropertyName | string\n questionToken?: ts.QuestionToken | boolean\n type?: ts.TypeNode\n}) {\n return factory.createPropertySignature(\n [...modifiers, readOnly ? factory.createToken(ts.SyntaxKind.ReadonlyKeyword) : undefined].filter(Boolean),\n propertyName(name),\n createQuestionToken(questionToken),\n type,\n )\n}\n\nexport function createParameterSignature(\n name: string | ts.BindingName,\n {\n modifiers,\n dotDotDotToken,\n questionToken,\n type,\n initializer,\n }: {\n decorators?: Array<ts.Decorator>\n modifiers?: Array<ts.Modifier>\n dotDotDotToken?: ts.DotDotDotToken\n questionToken?: ts.QuestionToken | boolean\n type?: ts.TypeNode\n initializer?: ts.Expression\n },\n): ts.ParameterDeclaration {\n return factory.createParameterDeclaration(modifiers, dotDotDotToken, name, createQuestionToken(questionToken), type, initializer)\n}\n\nexport function createJSDoc({ comments }: { comments: string[] }) {\n if (!comments.length) {\n return null\n }\n return factory.createJSDocComment(\n factory.createNodeArray(\n comments.map((comment, i) => {\n if (i === comments.length - 1) {\n return factory.createJSDocText(comment)\n }\n\n return factory.createJSDocText(`${comment}\\n`)\n }),\n ),\n )\n}\n\n/**\n * @link https://github.com/microsoft/TypeScript/issues/44151\n */\nexport function appendJSDocToNode<TNode extends ts.Node>({\n node,\n comments,\n}: {\n node: TNode\n comments: Array<string | undefined>\n}) {\n const filteredComments = comments.filter(Boolean)\n\n if (!filteredComments.length) {\n return node\n }\n\n const text = filteredComments.reduce((acc = '', comment = '') => {\n return `${acc}\\n * ${comment.replaceAll('*/', '*\\\\/')}`\n }, '*')\n\n // node: {...node}, with that ts.addSyntheticLeadingComment is appending\n return ts.addSyntheticLeadingComment({ ...node }, ts.SyntaxKind.MultiLineCommentTrivia, `${text || '*'}\\n`, true)\n}\n\nexport function createIndexSignature(\n type: ts.TypeNode,\n {\n modifiers,\n indexName = 'key',\n indexType = factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),\n }: {\n indexName?: string\n indexType?: ts.TypeNode\n decorators?: Array<ts.Decorator>\n modifiers?: Array<ts.Modifier>\n } = {},\n) {\n return factory.createIndexSignature(modifiers, [createParameterSignature(indexName, { type: indexType })], type)\n}\n\nexport function createTypeAliasDeclaration({\n modifiers,\n name,\n typeParameters,\n type,\n}: {\n modifiers?: Array<ts.Modifier>\n name: string | ts.Identifier\n typeParameters?: Array<ts.TypeParameterDeclaration>\n type: ts.TypeNode\n}) {\n return factory.createTypeAliasDeclaration(modifiers, name, typeParameters, type)\n}\n\nexport function createNamespaceDeclaration({\n statements,\n name,\n}: {\n name: string\n statements: ts.Statement[]\n}) {\n return factory.createModuleDeclaration(\n [factory.createToken(ts.SyntaxKind.ExportKeyword)],\n factory.createIdentifier(name),\n factory.createModuleBlock(statements),\n ts.NodeFlags.Namespace,\n )\n}\n\n/**\n * In { propertyName: string; name?: string } is `name` being used to make the type more unique when multiple same names are used.\n * @example `import { Pet as Cat } from './Pet'`\n */\nexport function createImportDeclaration({\n name,\n path,\n isTypeOnly = false,\n isNameSpace = false,\n}: {\n name: string | Array<string | { propertyName: string; name?: string }>\n path: string\n isTypeOnly?: boolean\n isNameSpace?: boolean\n}) {\n if (!Array.isArray(name)) {\n let importPropertyName: ts.Identifier | undefined = factory.createIdentifier(name)\n let importName: ts.NamedImportBindings | undefined = undefined\n\n if (isNameSpace) {\n importPropertyName = undefined\n importName = factory.createNamespaceImport(factory.createIdentifier(name))\n }\n\n return factory.createImportDeclaration(\n undefined,\n factory.createImportClause(isTypeOnly, importPropertyName, importName),\n factory.createStringLiteral(path),\n undefined,\n )\n }\n\n return factory.createImportDeclaration(\n undefined,\n factory.createImportClause(\n isTypeOnly,\n undefined,\n factory.createNamedImports(\n name.map((item) => {\n if (typeof item === 'object') {\n const obj = item as { propertyName: string; name?: string }\n if (obj.name) {\n return factory.createImportSpecifier(false, factory.createIdentifier(obj.propertyName), factory.createIdentifier(obj.name))\n }\n\n return factory.createImportSpecifier(false, undefined, factory.createIdentifier(obj.propertyName))\n }\n\n return factory.createImportSpecifier(false, undefined, factory.createIdentifier(item))\n }),\n ),\n ),\n factory.createStringLiteral(path),\n undefined,\n )\n}\n\nexport function createExportDeclaration({\n path,\n asAlias,\n isTypeOnly = false,\n name,\n}: {\n path: string\n asAlias?: boolean\n isTypeOnly?: boolean\n name?: string | Array<ts.Identifier | string>\n}) {\n if (name && !Array.isArray(name) && !asAlias) {\n console.warn(`When using name as string, asAlias should be true ${name}`)\n }\n\n if (!Array.isArray(name)) {\n const parsedName = name?.match(/^\\d/) ? `_${name?.slice(1)}` : name\n\n return factory.createExportDeclaration(\n undefined,\n isTypeOnly,\n asAlias && parsedName ? factory.createNamespaceExport(factory.createIdentifier(parsedName)) : undefined,\n factory.createStringLiteral(path),\n undefined,\n )\n }\n\n return factory.createExportDeclaration(\n undefined,\n isTypeOnly,\n factory.createNamedExports(\n name.map((propertyName) => {\n return factory.createExportSpecifier(false, undefined, typeof propertyName === 'string' ? factory.createIdentifier(propertyName) : propertyName)\n }),\n ),\n factory.createStringLiteral(path),\n undefined,\n )\n}\n\nexport function createEnumDeclaration({\n type = 'enum',\n name,\n typeName,\n enums,\n}: {\n /**\n * @default `'enum'`\n */\n type?: 'enum' | 'asConst' | 'asPascalConst' | 'constEnum' | 'literal'\n /**\n * Enum name in camelCase.\n */\n name: string\n /**\n * Enum name in PascalCase.\n */\n typeName: string\n enums: [key: string | number, value: string | number | boolean][]\n}): [name: ts.Node | undefined, type: ts.Node] {\n if (type === 'literal') {\n return [\n undefined,\n factory.createTypeAliasDeclaration(\n [factory.createToken(ts.SyntaxKind.ExportKeyword)],\n factory.createIdentifier(typeName),\n undefined,\n factory.createUnionTypeNode(\n enums\n .map(([_key, value]) => {\n if (isNumber(value)) {\n return factory.createLiteralTypeNode(factory.createNumericLiteral(value?.toString()))\n }\n\n if (typeof value === 'boolean') {\n return factory.createLiteralTypeNode(value ? factory.createTrue() : factory.createFalse())\n }\n if (value) {\n return factory.createLiteralTypeNode(factory.createStringLiteral(value.toString()))\n }\n\n return undefined\n })\n .filter(Boolean),\n ),\n ),\n ]\n }\n\n if (type === 'enum' || type === 'constEnum') {\n return [\n undefined,\n factory.createEnumDeclaration(\n [factory.createToken(ts.SyntaxKind.ExportKeyword), type === 'constEnum' ? factory.createToken(ts.SyntaxKind.ConstKeyword) : undefined].filter(Boolean),\n factory.createIdentifier(typeName),\n enums\n .map(([key, value]) => {\n let initializer: ts.Expression = factory.createStringLiteral(value?.toString())\n\n if (isNumber(Number.parseInt(value.toString()))) {\n initializer = factory.createNumericLiteral(value as number)\n }\n if (typeof value === 'boolean') {\n initializer = value ? factory.createTrue() : factory.createFalse()\n }\n\n if (isNumber(Number.parseInt(key.toString()))) {\n return factory.createEnumMember(factory.createStringLiteral(`${typeName}_${key}`), initializer)\n }\n\n if (key) {\n return factory.createEnumMember(factory.createStringLiteral(`${key}`), initializer)\n }\n\n return undefined\n })\n .filter(Boolean),\n ),\n ]\n }\n\n // used when using `as const` instead of an TypeScript enum.\n const identifierName = type === 'asPascalConst' ? typeName : name\n\n return [\n factory.createVariableStatement(\n [factory.createToken(ts.SyntaxKind.ExportKeyword)],\n factory.createVariableDeclarationList(\n [\n factory.createVariableDeclaration(\n factory.createIdentifier(identifierName),\n undefined,\n undefined,\n factory.createAsExpression(\n factory.createObjectLiteralExpression(\n enums\n .map(([key, value]) => {\n let initializer: ts.Expression = factory.createStringLiteral(`${value?.toString()}`)\n\n if (isNumber(value)) {\n // Error: Negative numbers should be created in combination with createPrefixUnaryExpression factory.\n // The method createNumericLiteral only accepts positive numbers\n // or those combined with createPrefixUnaryExpression.\n // Therefore, we need to ensure that the number is not negative.\n if (value < 0) {\n initializer = factory.createPrefixUnaryExpression(ts.SyntaxKind.MinusToken, factory.createNumericLiteral(Math.abs(value)))\n } else {\n initializer = factory.createNumericLiteral(value)\n }\n }\n\n if (typeof value === 'boolean') {\n initializer = value ? factory.createTrue() : factory.createFalse()\n }\n\n if (key) {\n return factory.createPropertyAssignment(factory.createStringLiteral(`${key}`), initializer)\n }\n\n return undefined\n })\n .filter(Boolean),\n true,\n ),\n factory.createTypeReferenceNode(factory.createIdentifier('const'), undefined),\n ),\n ),\n ],\n ts.NodeFlags.Const,\n ),\n ),\n factory.createTypeAliasDeclaration(\n type === 'asPascalConst' ? [] : [factory.createToken(ts.SyntaxKind.ExportKeyword)],\n factory.createIdentifier(typeName),\n undefined,\n factory.createIndexedAccessTypeNode(\n factory.createParenthesizedType(factory.createTypeQueryNode(factory.createIdentifier(identifierName), undefined)),\n factory.createTypeOperatorNode(ts.SyntaxKind.KeyOfKeyword, factory.createTypeQueryNode(factory.createIdentifier(identifierName), undefined)),\n ),\n ),\n ]\n}\n\nexport function createOmitDeclaration({\n keys,\n type,\n nonNullable,\n}: {\n keys: Array<string> | string\n type: ts.TypeNode\n nonNullable?: boolean\n}) {\n const node = nonNullable ? factory.createTypeReferenceNode(factory.createIdentifier('NonNullable'), [type]) : type\n\n if (Array.isArray(keys)) {\n return factory.createTypeReferenceNode(factory.createIdentifier('Omit'), [\n node,\n factory.createUnionTypeNode(\n keys.map((key) => {\n return factory.createLiteralTypeNode(factory.createStringLiteral(key))\n }),\n ),\n ])\n }\n\n return factory.createTypeReferenceNode(factory.createIdentifier('Omit'), [node, factory.createLiteralTypeNode(factory.createStringLiteral(keys))])\n}\n\nexport const keywordTypeNodes = {\n any: factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword),\n unknown: factory.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword),\n number: factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword),\n integer: factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword),\n object: factory.createKeywordTypeNode(ts.SyntaxKind.ObjectKeyword),\n string: factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),\n boolean: factory.createKeywordTypeNode(ts.SyntaxKind.BooleanKeyword),\n undefined: factory.createKeywordTypeNode(ts.SyntaxKind.UndefinedKeyword),\n null: factory.createLiteralTypeNode(factory.createToken(ts.SyntaxKind.NullKeyword)),\n} as const\n\nexport const createTypeLiteralNode = factory.createTypeLiteralNode\n\nexport const createTypeReferenceNode = factory.createTypeReferenceNode\nexport const createNumericLiteral = factory.createNumericLiteral\nexport const createStringLiteral = factory.createStringLiteral\n\nexport const createArrayTypeNode = factory.createArrayTypeNode\n\nexport const createLiteralTypeNode = factory.createLiteralTypeNode\nexport const createNull = factory.createNull\nexport const createIdentifier = factory.createIdentifier\n\nexport const createTupleTypeNode = factory.createTupleTypeNode\nexport const createTrue = factory.createTrue\nexport const createFalse = factory.createFalse\n"]}
|
|
@@ -130,12 +130,15 @@ declare const createLiteralTypeNode: (literal: ts.LiteralTypeNode["literal"]) =>
|
|
|
130
130
|
declare const createNull: () => ts.NullLiteral;
|
|
131
131
|
declare const createIdentifier: (text: string) => ts.Identifier;
|
|
132
132
|
declare const createTupleTypeNode: (elements: readonly (ts.TypeNode | ts.NamedTupleMember)[]) => ts.TupleTypeNode;
|
|
133
|
+
declare const createTrue: () => ts.TrueLiteral;
|
|
134
|
+
declare const createFalse: () => ts.FalseLiteral;
|
|
133
135
|
|
|
134
136
|
declare const factory_appendJSDocToNode: typeof appendJSDocToNode;
|
|
135
137
|
declare const factory_createArrayDeclaration: typeof createArrayDeclaration;
|
|
136
138
|
declare const factory_createArrayTypeNode: typeof createArrayTypeNode;
|
|
137
139
|
declare const factory_createEnumDeclaration: typeof createEnumDeclaration;
|
|
138
140
|
declare const factory_createExportDeclaration: typeof createExportDeclaration;
|
|
141
|
+
declare const factory_createFalse: typeof createFalse;
|
|
139
142
|
declare const factory_createIdentifier: typeof createIdentifier;
|
|
140
143
|
declare const factory_createImportDeclaration: typeof createImportDeclaration;
|
|
141
144
|
declare const factory_createIndexSignature: typeof createIndexSignature;
|
|
@@ -150,6 +153,7 @@ declare const factory_createParameterSignature: typeof createParameterSignature;
|
|
|
150
153
|
declare const factory_createPropertySignature: typeof createPropertySignature;
|
|
151
154
|
declare const factory_createQuestionToken: typeof createQuestionToken;
|
|
152
155
|
declare const factory_createStringLiteral: typeof createStringLiteral;
|
|
156
|
+
declare const factory_createTrue: typeof createTrue;
|
|
153
157
|
declare const factory_createTupleDeclaration: typeof createTupleDeclaration;
|
|
154
158
|
declare const factory_createTupleTypeNode: typeof createTupleTypeNode;
|
|
155
159
|
declare const factory_createTypeAliasDeclaration: typeof createTypeAliasDeclaration;
|
|
@@ -159,7 +163,7 @@ declare const factory_createUnionDeclaration: typeof createUnionDeclaration;
|
|
|
159
163
|
declare const factory_keywordTypeNodes: typeof keywordTypeNodes;
|
|
160
164
|
declare const factory_modifiers: typeof modifiers;
|
|
161
165
|
declare namespace factory {
|
|
162
|
-
export { factory_appendJSDocToNode as appendJSDocToNode, factory_createArrayDeclaration as createArrayDeclaration, factory_createArrayTypeNode as createArrayTypeNode, factory_createEnumDeclaration as createEnumDeclaration, factory_createExportDeclaration as createExportDeclaration, factory_createIdentifier as createIdentifier, factory_createImportDeclaration as createImportDeclaration, factory_createIndexSignature as createIndexSignature, factory_createIntersectionDeclaration as createIntersectionDeclaration, factory_createJSDoc as createJSDoc, factory_createLiteralTypeNode as createLiteralTypeNode, factory_createNamespaceDeclaration as createNamespaceDeclaration, factory_createNull as createNull, factory_createNumericLiteral as createNumericLiteral, factory_createOmitDeclaration as createOmitDeclaration, factory_createParameterSignature as createParameterSignature, factory_createPropertySignature as createPropertySignature, factory_createQuestionToken as createQuestionToken, factory_createStringLiteral as createStringLiteral, factory_createTupleDeclaration as createTupleDeclaration, factory_createTupleTypeNode as createTupleTypeNode, factory_createTypeAliasDeclaration as createTypeAliasDeclaration, factory_createTypeLiteralNode as createTypeLiteralNode, factory_createTypeReferenceNode as createTypeReferenceNode, factory_createUnionDeclaration as createUnionDeclaration, factory_keywordTypeNodes as keywordTypeNodes, factory_modifiers as modifiers };
|
|
166
|
+
export { factory_appendJSDocToNode as appendJSDocToNode, factory_createArrayDeclaration as createArrayDeclaration, factory_createArrayTypeNode as createArrayTypeNode, factory_createEnumDeclaration as createEnumDeclaration, factory_createExportDeclaration as createExportDeclaration, factory_createFalse as createFalse, factory_createIdentifier as createIdentifier, factory_createImportDeclaration as createImportDeclaration, factory_createIndexSignature as createIndexSignature, factory_createIntersectionDeclaration as createIntersectionDeclaration, factory_createJSDoc as createJSDoc, factory_createLiteralTypeNode as createLiteralTypeNode, factory_createNamespaceDeclaration as createNamespaceDeclaration, factory_createNull as createNull, factory_createNumericLiteral as createNumericLiteral, factory_createOmitDeclaration as createOmitDeclaration, factory_createParameterSignature as createParameterSignature, factory_createPropertySignature as createPropertySignature, factory_createQuestionToken as createQuestionToken, factory_createStringLiteral as createStringLiteral, factory_createTrue as createTrue, factory_createTupleDeclaration as createTupleDeclaration, factory_createTupleTypeNode as createTupleTypeNode, factory_createTypeAliasDeclaration as createTypeAliasDeclaration, factory_createTypeLiteralNode as createTypeLiteralNode, factory_createTypeReferenceNode as createTypeReferenceNode, factory_createUnionDeclaration as createUnionDeclaration, factory_keywordTypeNodes as keywordTypeNodes, factory_modifiers as modifiers };
|
|
163
167
|
}
|
|
164
168
|
|
|
165
|
-
export { createIdentifier as A, createTupleTypeNode as B, createIntersectionDeclaration as a, createTupleDeclaration as b, createQuestionToken as c, createArrayDeclaration as d, createUnionDeclaration as e, factory as f, createPropertySignature as g, createParameterSignature as h, createJSDoc as i, appendJSDocToNode as j, createIndexSignature as k, createTypeAliasDeclaration as l, modifiers as m, createNamespaceDeclaration as n, createImportDeclaration as o, createExportDeclaration as p, createEnumDeclaration as q, createOmitDeclaration as r, keywordTypeNodes as s, createTypeLiteralNode as t, createTypeReferenceNode as u, createNumericLiteral as v, createStringLiteral as w, createArrayTypeNode as x, createLiteralTypeNode as y, createNull as z };
|
|
169
|
+
export { createIdentifier as A, createTupleTypeNode as B, createTrue as C, createFalse as D, createIntersectionDeclaration as a, createTupleDeclaration as b, createQuestionToken as c, createArrayDeclaration as d, createUnionDeclaration as e, factory as f, createPropertySignature as g, createParameterSignature as h, createJSDoc as i, appendJSDocToNode as j, createIndexSignature as k, createTypeAliasDeclaration as l, modifiers as m, createNamespaceDeclaration as n, createImportDeclaration as o, createExportDeclaration as p, createEnumDeclaration as q, createOmitDeclaration as r, keywordTypeNodes as s, createTypeLiteralNode as t, createTypeReferenceNode as u, createNumericLiteral as v, createStringLiteral as w, createArrayTypeNode as x, createLiteralTypeNode as y, createNull as z };
|