@nestia/factory 12.0.0-dev.20260520.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/LICENSE +21 -0
- package/README.md +27 -0
- package/lib/TypeScriptFactory.d.ts +3 -0
- package/lib/TypeScriptFactory.js +39 -0
- package/lib/TypeScriptFactory.js.map +1 -0
- package/lib/TypeScriptFactory.mjs +6 -0
- package/lib/TypeScriptFactory.mjs.map +1 -0
- package/lib/constants/NodeFlags.d.ts +9 -0
- package/lib/constants/NodeFlags.js +13 -0
- package/lib/constants/NodeFlags.js.map +1 -0
- package/lib/constants/NodeFlags.mjs +12 -0
- package/lib/constants/NodeFlags.mjs.map +1 -0
- package/lib/constants/SyntaxKind.d.ts +104 -0
- package/lib/constants/SyntaxKind.js +108 -0
- package/lib/constants/SyntaxKind.js.map +1 -0
- package/lib/constants/SyntaxKind.mjs +107 -0
- package/lib/constants/SyntaxKind.mjs.map +1 -0
- package/lib/factory/bindings/createArrayBindingPattern.d.ts +2 -0
- package/lib/factory/bindings/createArrayBindingPattern.js +12 -0
- package/lib/factory/bindings/createArrayBindingPattern.js.map +1 -0
- package/lib/factory/bindings/createArrayBindingPattern.mjs +12 -0
- package/lib/factory/bindings/createArrayBindingPattern.mjs.map +1 -0
- package/lib/factory/bindings/createBindingElement.d.ts +2 -0
- package/lib/factory/bindings/createBindingElement.js +15 -0
- package/lib/factory/bindings/createBindingElement.js.map +1 -0
- package/lib/factory/bindings/createBindingElement.mjs +15 -0
- package/lib/factory/bindings/createBindingElement.mjs.map +1 -0
- package/lib/factory/declarations/createClassDeclaration.d.ts +2 -0
- package/lib/factory/declarations/createClassDeclaration.js +25 -0
- package/lib/factory/declarations/createClassDeclaration.js.map +1 -0
- package/lib/factory/declarations/createClassDeclaration.mjs +25 -0
- package/lib/factory/declarations/createClassDeclaration.mjs.map +1 -0
- package/lib/factory/declarations/createFunctionDeclaration.d.ts +2 -0
- package/lib/factory/declarations/createFunctionDeclaration.js +27 -0
- package/lib/factory/declarations/createFunctionDeclaration.js.map +1 -0
- package/lib/factory/declarations/createFunctionDeclaration.mjs +27 -0
- package/lib/factory/declarations/createFunctionDeclaration.mjs.map +1 -0
- package/lib/factory/declarations/createMethodDeclaration.d.ts +2 -0
- package/lib/factory/declarations/createMethodDeclaration.js +28 -0
- package/lib/factory/declarations/createMethodDeclaration.js.map +1 -0
- package/lib/factory/declarations/createMethodDeclaration.mjs +28 -0
- package/lib/factory/declarations/createMethodDeclaration.mjs.map +1 -0
- package/lib/factory/declarations/createParameterDeclaration.d.ts +2 -0
- package/lib/factory/declarations/createParameterDeclaration.js +19 -0
- package/lib/factory/declarations/createParameterDeclaration.js.map +1 -0
- package/lib/factory/declarations/createParameterDeclaration.mjs +19 -0
- package/lib/factory/declarations/createParameterDeclaration.mjs.map +1 -0
- package/lib/factory/declarations/createTypeAliasDeclaration.d.ts +2 -0
- package/lib/factory/declarations/createTypeAliasDeclaration.js +21 -0
- package/lib/factory/declarations/createTypeAliasDeclaration.js.map +1 -0
- package/lib/factory/declarations/createTypeAliasDeclaration.mjs +21 -0
- package/lib/factory/declarations/createTypeAliasDeclaration.mjs.map +1 -0
- package/lib/factory/declarations/createVariableDeclaration.d.ts +2 -0
- package/lib/factory/declarations/createVariableDeclaration.js +15 -0
- package/lib/factory/declarations/createVariableDeclaration.js.map +1 -0
- package/lib/factory/declarations/createVariableDeclaration.mjs +15 -0
- package/lib/factory/declarations/createVariableDeclaration.mjs.map +1 -0
- package/lib/factory/declarations/createVariableDeclarationList.d.ts +2 -0
- package/lib/factory/declarations/createVariableDeclarationList.js +13 -0
- package/lib/factory/declarations/createVariableDeclarationList.js.map +1 -0
- package/lib/factory/declarations/createVariableDeclarationList.mjs +13 -0
- package/lib/factory/declarations/createVariableDeclarationList.mjs.map +1 -0
- package/lib/factory/declarations/createVariableStatement.d.ts +2 -0
- package/lib/factory/declarations/createVariableStatement.js +14 -0
- package/lib/factory/declarations/createVariableStatement.js.map +1 -0
- package/lib/factory/declarations/createVariableStatement.mjs +14 -0
- package/lib/factory/declarations/createVariableStatement.mjs.map +1 -0
- package/lib/factory/declarations/updateClassDeclaration.d.ts +2 -0
- package/lib/factory/declarations/updateClassDeclaration.js +13 -0
- package/lib/factory/declarations/updateClassDeclaration.js.map +1 -0
- package/lib/factory/declarations/updateClassDeclaration.mjs +20 -0
- package/lib/factory/declarations/updateClassDeclaration.mjs.map +1 -0
- package/lib/factory/declarations/updateMethodDeclaration.d.ts +2 -0
- package/lib/factory/declarations/updateMethodDeclaration.js +12 -0
- package/lib/factory/declarations/updateMethodDeclaration.js.map +1 -0
- package/lib/factory/declarations/updateMethodDeclaration.mjs +21 -0
- package/lib/factory/declarations/updateMethodDeclaration.mjs.map +1 -0
- package/lib/factory/expressions/createArrayLiteralExpression.d.ts +2 -0
- package/lib/factory/expressions/createArrayLiteralExpression.js +13 -0
- package/lib/factory/expressions/createArrayLiteralExpression.js.map +1 -0
- package/lib/factory/expressions/createArrayLiteralExpression.mjs +13 -0
- package/lib/factory/expressions/createArrayLiteralExpression.mjs.map +1 -0
- package/lib/factory/expressions/createArrowFunction.d.ts +2 -0
- package/lib/factory/expressions/createArrowFunction.js +26 -0
- package/lib/factory/expressions/createArrowFunction.js.map +1 -0
- package/lib/factory/expressions/createArrowFunction.mjs +26 -0
- package/lib/factory/expressions/createArrowFunction.mjs.map +1 -0
- package/lib/factory/expressions/createAsExpression.d.ts +2 -0
- package/lib/factory/expressions/createAsExpression.js +13 -0
- package/lib/factory/expressions/createAsExpression.js.map +1 -0
- package/lib/factory/expressions/createAsExpression.mjs +13 -0
- package/lib/factory/expressions/createAsExpression.mjs.map +1 -0
- package/lib/factory/expressions/createAwaitExpression.d.ts +2 -0
- package/lib/factory/expressions/createAwaitExpression.js +12 -0
- package/lib/factory/expressions/createAwaitExpression.js.map +1 -0
- package/lib/factory/expressions/createAwaitExpression.mjs +12 -0
- package/lib/factory/expressions/createAwaitExpression.mjs.map +1 -0
- package/lib/factory/expressions/createBinaryExpression.d.ts +2 -0
- package/lib/factory/expressions/createBinaryExpression.js +14 -0
- package/lib/factory/expressions/createBinaryExpression.js.map +1 -0
- package/lib/factory/expressions/createBinaryExpression.mjs +14 -0
- package/lib/factory/expressions/createBinaryExpression.mjs.map +1 -0
- package/lib/factory/expressions/createCallChain.d.ts +2 -0
- package/lib/factory/expressions/createCallChain.js +11 -0
- package/lib/factory/expressions/createCallChain.js.map +1 -0
- package/lib/factory/expressions/createCallChain.mjs +16 -0
- package/lib/factory/expressions/createCallChain.mjs.map +1 -0
- package/lib/factory/expressions/createCallExpression.d.ts +2 -0
- package/lib/factory/expressions/createCallExpression.js +15 -0
- package/lib/factory/expressions/createCallExpression.js.map +1 -0
- package/lib/factory/expressions/createCallExpression.mjs +15 -0
- package/lib/factory/expressions/createCallExpression.mjs.map +1 -0
- package/lib/factory/expressions/createConditionalExpression.d.ts +2 -0
- package/lib/factory/expressions/createConditionalExpression.js +16 -0
- package/lib/factory/expressions/createConditionalExpression.js.map +1 -0
- package/lib/factory/expressions/createConditionalExpression.mjs +16 -0
- package/lib/factory/expressions/createConditionalExpression.mjs.map +1 -0
- package/lib/factory/expressions/createElementAccessChain.d.ts +2 -0
- package/lib/factory/expressions/createElementAccessChain.js +11 -0
- package/lib/factory/expressions/createElementAccessChain.js.map +1 -0
- package/lib/factory/expressions/createElementAccessChain.mjs +16 -0
- package/lib/factory/expressions/createElementAccessChain.mjs.map +1 -0
- package/lib/factory/expressions/createElementAccessExpression.d.ts +2 -0
- package/lib/factory/expressions/createElementAccessExpression.js +15 -0
- package/lib/factory/expressions/createElementAccessExpression.js.map +1 -0
- package/lib/factory/expressions/createElementAccessExpression.mjs +15 -0
- package/lib/factory/expressions/createElementAccessExpression.mjs.map +1 -0
- package/lib/factory/expressions/createLogicalNot.d.ts +2 -0
- package/lib/factory/expressions/createLogicalNot.js +9 -0
- package/lib/factory/expressions/createLogicalNot.js.map +1 -0
- package/lib/factory/expressions/createLogicalNot.mjs +9 -0
- package/lib/factory/expressions/createLogicalNot.mjs.map +1 -0
- package/lib/factory/expressions/createNewExpression.d.ts +2 -0
- package/lib/factory/expressions/createNewExpression.js +14 -0
- package/lib/factory/expressions/createNewExpression.js.map +1 -0
- package/lib/factory/expressions/createNewExpression.mjs +14 -0
- package/lib/factory/expressions/createNewExpression.mjs.map +1 -0
- package/lib/factory/expressions/createObjectLiteralExpression.d.ts +2 -0
- package/lib/factory/expressions/createObjectLiteralExpression.js +13 -0
- package/lib/factory/expressions/createObjectLiteralExpression.js.map +1 -0
- package/lib/factory/expressions/createObjectLiteralExpression.mjs +13 -0
- package/lib/factory/expressions/createObjectLiteralExpression.mjs.map +1 -0
- package/lib/factory/expressions/createPrefixMinus.d.ts +2 -0
- package/lib/factory/expressions/createPrefixMinus.js +9 -0
- package/lib/factory/expressions/createPrefixMinus.js.map +1 -0
- package/lib/factory/expressions/createPrefixMinus.mjs +9 -0
- package/lib/factory/expressions/createPrefixMinus.mjs.map +1 -0
- package/lib/factory/expressions/createPrefixUnaryExpression.d.ts +2 -0
- package/lib/factory/expressions/createPrefixUnaryExpression.js +9 -0
- package/lib/factory/expressions/createPrefixUnaryExpression.js.map +1 -0
- package/lib/factory/expressions/createPrefixUnaryExpression.mjs +9 -0
- package/lib/factory/expressions/createPrefixUnaryExpression.mjs.map +1 -0
- package/lib/factory/expressions/createPropertyAccessChain.d.ts +2 -0
- package/lib/factory/expressions/createPropertyAccessChain.js +11 -0
- package/lib/factory/expressions/createPropertyAccessChain.js.map +1 -0
- package/lib/factory/expressions/createPropertyAccessChain.mjs +16 -0
- package/lib/factory/expressions/createPropertyAccessChain.mjs.map +1 -0
- package/lib/factory/expressions/createPropertyAccessExpression.d.ts +2 -0
- package/lib/factory/expressions/createPropertyAccessExpression.js +16 -0
- package/lib/factory/expressions/createPropertyAccessExpression.js.map +1 -0
- package/lib/factory/expressions/createPropertyAccessExpression.mjs +16 -0
- package/lib/factory/expressions/createPropertyAccessExpression.mjs.map +1 -0
- package/lib/factory/expressions/createPropertyAssignment.d.ts +2 -0
- package/lib/factory/expressions/createPropertyAssignment.js +13 -0
- package/lib/factory/expressions/createPropertyAssignment.js.map +1 -0
- package/lib/factory/expressions/createPropertyAssignment.mjs +13 -0
- package/lib/factory/expressions/createPropertyAssignment.mjs.map +1 -0
- package/lib/factory/expressions/createShorthandPropertyAssignment.d.ts +2 -0
- package/lib/factory/expressions/createShorthandPropertyAssignment.js +13 -0
- package/lib/factory/expressions/createShorthandPropertyAssignment.js.map +1 -0
- package/lib/factory/expressions/createShorthandPropertyAssignment.mjs +13 -0
- package/lib/factory/expressions/createShorthandPropertyAssignment.mjs.map +1 -0
- package/lib/factory/expressions/createSpreadAssignment.d.ts +2 -0
- package/lib/factory/expressions/createSpreadAssignment.js +9 -0
- package/lib/factory/expressions/createSpreadAssignment.js.map +1 -0
- package/lib/factory/expressions/createSpreadAssignment.mjs +9 -0
- package/lib/factory/expressions/createSpreadAssignment.mjs.map +1 -0
- package/lib/factory/expressions/createStrictEquality.d.ts +2 -0
- package/lib/factory/expressions/createStrictEquality.js +9 -0
- package/lib/factory/expressions/createStrictEquality.js.map +1 -0
- package/lib/factory/expressions/createStrictEquality.mjs +9 -0
- package/lib/factory/expressions/createStrictEquality.mjs.map +1 -0
- package/lib/factory/index.d.ts +86 -0
- package/lib/factory/index.js +177 -0
- package/lib/factory/index.js.map +1 -0
- package/lib/factory/index.mjs +87 -0
- package/lib/factory/index.mjs.map +1 -0
- package/lib/factory/literals/createBigIntLiteral.d.ts +2 -0
- package/lib/factory/literals/createBigIntLiteral.js +10 -0
- package/lib/factory/literals/createBigIntLiteral.js.map +1 -0
- package/lib/factory/literals/createBigIntLiteral.mjs +10 -0
- package/lib/factory/literals/createBigIntLiteral.mjs.map +1 -0
- package/lib/factory/literals/createFalse.d.ts +2 -0
- package/lib/factory/literals/createFalse.js +9 -0
- package/lib/factory/literals/createFalse.js.map +1 -0
- package/lib/factory/literals/createFalse.mjs +9 -0
- package/lib/factory/literals/createFalse.mjs.map +1 -0
- package/lib/factory/literals/createIdentifier.d.ts +2 -0
- package/lib/factory/literals/createIdentifier.js +14 -0
- package/lib/factory/literals/createIdentifier.js.map +1 -0
- package/lib/factory/literals/createIdentifier.mjs +14 -0
- package/lib/factory/literals/createIdentifier.mjs.map +1 -0
- package/lib/factory/literals/createNull.d.ts +2 -0
- package/lib/factory/literals/createNull.js +9 -0
- package/lib/factory/literals/createNull.js.map +1 -0
- package/lib/factory/literals/createNull.mjs +9 -0
- package/lib/factory/literals/createNull.mjs.map +1 -0
- package/lib/factory/literals/createNumericLiteral.d.ts +2 -0
- package/lib/factory/literals/createNumericLiteral.js +12 -0
- package/lib/factory/literals/createNumericLiteral.js.map +1 -0
- package/lib/factory/literals/createNumericLiteral.mjs +12 -0
- package/lib/factory/literals/createNumericLiteral.mjs.map +1 -0
- package/lib/factory/literals/createStringLiteral.d.ts +2 -0
- package/lib/factory/literals/createStringLiteral.js +13 -0
- package/lib/factory/literals/createStringLiteral.js.map +1 -0
- package/lib/factory/literals/createStringLiteral.mjs +13 -0
- package/lib/factory/literals/createStringLiteral.mjs.map +1 -0
- package/lib/factory/literals/createTrue.d.ts +2 -0
- package/lib/factory/literals/createTrue.js +9 -0
- package/lib/factory/literals/createTrue.js.map +1 -0
- package/lib/factory/literals/createTrue.mjs +9 -0
- package/lib/factory/literals/createTrue.mjs.map +1 -0
- package/lib/factory/modules/createExportDeclaration.d.ts +2 -0
- package/lib/factory/modules/createExportDeclaration.js +21 -0
- package/lib/factory/modules/createExportDeclaration.js.map +1 -0
- package/lib/factory/modules/createExportDeclaration.mjs +21 -0
- package/lib/factory/modules/createExportDeclaration.mjs.map +1 -0
- package/lib/factory/modules/createImportClause.d.ts +2 -0
- package/lib/factory/modules/createImportClause.js +14 -0
- package/lib/factory/modules/createImportClause.js.map +1 -0
- package/lib/factory/modules/createImportClause.mjs +14 -0
- package/lib/factory/modules/createImportClause.mjs.map +1 -0
- package/lib/factory/modules/createImportDeclaration.d.ts +2 -0
- package/lib/factory/modules/createImportDeclaration.js +18 -0
- package/lib/factory/modules/createImportDeclaration.js.map +1 -0
- package/lib/factory/modules/createImportDeclaration.mjs +18 -0
- package/lib/factory/modules/createImportDeclaration.mjs.map +1 -0
- package/lib/factory/modules/createImportSpecifier.d.ts +2 -0
- package/lib/factory/modules/createImportSpecifier.js +14 -0
- package/lib/factory/modules/createImportSpecifier.js.map +1 -0
- package/lib/factory/modules/createImportSpecifier.mjs +14 -0
- package/lib/factory/modules/createImportSpecifier.mjs.map +1 -0
- package/lib/factory/modules/createModuleBlock.d.ts +2 -0
- package/lib/factory/modules/createModuleBlock.js +12 -0
- package/lib/factory/modules/createModuleBlock.js.map +1 -0
- package/lib/factory/modules/createModuleBlock.mjs +12 -0
- package/lib/factory/modules/createModuleBlock.mjs.map +1 -0
- package/lib/factory/modules/createModuleDeclaration.d.ts +2 -0
- package/lib/factory/modules/createModuleDeclaration.js +20 -0
- package/lib/factory/modules/createModuleDeclaration.js.map +1 -0
- package/lib/factory/modules/createModuleDeclaration.mjs +20 -0
- package/lib/factory/modules/createModuleDeclaration.mjs.map +1 -0
- package/lib/factory/modules/createNamedImports.d.ts +2 -0
- package/lib/factory/modules/createNamedImports.js +12 -0
- package/lib/factory/modules/createNamedImports.js.map +1 -0
- package/lib/factory/modules/createNamedImports.mjs +12 -0
- package/lib/factory/modules/createNamedImports.mjs.map +1 -0
- package/lib/factory/modules/createNamespaceExport.d.ts +2 -0
- package/lib/factory/modules/createNamespaceExport.js +10 -0
- package/lib/factory/modules/createNamespaceExport.js.map +1 -0
- package/lib/factory/modules/createNamespaceExport.mjs +10 -0
- package/lib/factory/modules/createNamespaceExport.mjs.map +1 -0
- package/lib/factory/modules/createNamespaceImport.d.ts +2 -0
- package/lib/factory/modules/createNamespaceImport.js +10 -0
- package/lib/factory/modules/createNamespaceImport.js.map +1 -0
- package/lib/factory/modules/createNamespaceImport.mjs +10 -0
- package/lib/factory/modules/createNamespaceImport.mjs.map +1 -0
- package/lib/factory/names/createQualifiedName.d.ts +2 -0
- package/lib/factory/names/createQualifiedName.js +13 -0
- package/lib/factory/names/createQualifiedName.js.map +1 -0
- package/lib/factory/names/createQualifiedName.mjs +13 -0
- package/lib/factory/names/createQualifiedName.mjs.map +1 -0
- package/lib/factory/source-files/createSourceFile.d.ts +2 -0
- package/lib/factory/source-files/createSourceFile.js +50 -0
- package/lib/factory/source-files/createSourceFile.js.map +1 -0
- package/lib/factory/source-files/createSourceFile.mjs +50 -0
- package/lib/factory/source-files/createSourceFile.mjs.map +1 -0
- package/lib/factory/source-files/updateSourceFile.d.ts +2 -0
- package/lib/factory/source-files/updateSourceFile.js +8 -0
- package/lib/factory/source-files/updateSourceFile.js.map +1 -0
- package/lib/factory/source-files/updateSourceFile.mjs +8 -0
- package/lib/factory/source-files/updateSourceFile.mjs.map +1 -0
- package/lib/factory/statements/createBlock.d.ts +2 -0
- package/lib/factory/statements/createBlock.js +13 -0
- package/lib/factory/statements/createBlock.js.map +1 -0
- package/lib/factory/statements/createBlock.mjs +13 -0
- package/lib/factory/statements/createBlock.mjs.map +1 -0
- package/lib/factory/statements/createCatchClause.d.ts +2 -0
- package/lib/factory/statements/createCatchClause.js +15 -0
- package/lib/factory/statements/createCatchClause.js.map +1 -0
- package/lib/factory/statements/createCatchClause.mjs +15 -0
- package/lib/factory/statements/createCatchClause.mjs.map +1 -0
- package/lib/factory/statements/createContinueStatement.d.ts +2 -0
- package/lib/factory/statements/createContinueStatement.js +12 -0
- package/lib/factory/statements/createContinueStatement.js.map +1 -0
- package/lib/factory/statements/createContinueStatement.mjs +12 -0
- package/lib/factory/statements/createContinueStatement.mjs.map +1 -0
- package/lib/factory/statements/createExpressionStatement.d.ts +2 -0
- package/lib/factory/statements/createExpressionStatement.js +9 -0
- package/lib/factory/statements/createExpressionStatement.js.map +1 -0
- package/lib/factory/statements/createExpressionStatement.mjs +9 -0
- package/lib/factory/statements/createExpressionStatement.mjs.map +1 -0
- package/lib/factory/statements/createForOfStatement.d.ts +2 -0
- package/lib/factory/statements/createForOfStatement.js +14 -0
- package/lib/factory/statements/createForOfStatement.js.map +1 -0
- package/lib/factory/statements/createForOfStatement.mjs +14 -0
- package/lib/factory/statements/createForOfStatement.mjs.map +1 -0
- package/lib/factory/statements/createIfStatement.d.ts +2 -0
- package/lib/factory/statements/createIfStatement.js +13 -0
- package/lib/factory/statements/createIfStatement.js.map +1 -0
- package/lib/factory/statements/createIfStatement.mjs +13 -0
- package/lib/factory/statements/createIfStatement.mjs.map +1 -0
- package/lib/factory/statements/createReturnStatement.d.ts +2 -0
- package/lib/factory/statements/createReturnStatement.js +9 -0
- package/lib/factory/statements/createReturnStatement.js.map +1 -0
- package/lib/factory/statements/createReturnStatement.mjs +9 -0
- package/lib/factory/statements/createReturnStatement.mjs.map +1 -0
- package/lib/factory/statements/createThrowStatement.d.ts +2 -0
- package/lib/factory/statements/createThrowStatement.js +9 -0
- package/lib/factory/statements/createThrowStatement.js.map +1 -0
- package/lib/factory/statements/createThrowStatement.mjs +9 -0
- package/lib/factory/statements/createThrowStatement.mjs.map +1 -0
- package/lib/factory/statements/createTryStatement.d.ts +2 -0
- package/lib/factory/statements/createTryStatement.js +13 -0
- package/lib/factory/statements/createTryStatement.js.map +1 -0
- package/lib/factory/statements/createTryStatement.mjs +13 -0
- package/lib/factory/statements/createTryStatement.mjs.map +1 -0
- package/lib/factory/templates/createTemplateExpression.d.ts +2 -0
- package/lib/factory/templates/createTemplateExpression.js +13 -0
- package/lib/factory/templates/createTemplateExpression.js.map +1 -0
- package/lib/factory/templates/createTemplateExpression.mjs +13 -0
- package/lib/factory/templates/createTemplateExpression.mjs.map +1 -0
- package/lib/factory/templates/createTemplateHead.d.ts +2 -0
- package/lib/factory/templates/createTemplateHead.js +9 -0
- package/lib/factory/templates/createTemplateHead.js.map +1 -0
- package/lib/factory/templates/createTemplateHead.mjs +9 -0
- package/lib/factory/templates/createTemplateHead.mjs.map +1 -0
- package/lib/factory/templates/createTemplateMiddle.d.ts +2 -0
- package/lib/factory/templates/createTemplateMiddle.js +9 -0
- package/lib/factory/templates/createTemplateMiddle.js.map +1 -0
- package/lib/factory/templates/createTemplateMiddle.mjs +9 -0
- package/lib/factory/templates/createTemplateMiddle.mjs.map +1 -0
- package/lib/factory/templates/createTemplateSpan.d.ts +2 -0
- package/lib/factory/templates/createTemplateSpan.js +9 -0
- package/lib/factory/templates/createTemplateSpan.js.map +1 -0
- package/lib/factory/templates/createTemplateSpan.mjs +9 -0
- package/lib/factory/templates/createTemplateSpan.mjs.map +1 -0
- package/lib/factory/templates/createTemplateTail.d.ts +2 -0
- package/lib/factory/templates/createTemplateTail.js +9 -0
- package/lib/factory/templates/createTemplateTail.js.map +1 -0
- package/lib/factory/templates/createTemplateTail.mjs +9 -0
- package/lib/factory/templates/createTemplateTail.mjs.map +1 -0
- package/lib/factory/tokens/createDecorator.d.ts +2 -0
- package/lib/factory/tokens/createDecorator.js +12 -0
- package/lib/factory/tokens/createDecorator.js.map +1 -0
- package/lib/factory/tokens/createDecorator.mjs +12 -0
- package/lib/factory/tokens/createDecorator.mjs.map +1 -0
- package/lib/factory/tokens/createModifier.d.ts +2 -0
- package/lib/factory/tokens/createModifier.js +8 -0
- package/lib/factory/tokens/createModifier.js.map +1 -0
- package/lib/factory/tokens/createModifier.mjs +8 -0
- package/lib/factory/tokens/createModifier.mjs.map +1 -0
- package/lib/factory/tokens/createToken.d.ts +2 -0
- package/lib/factory/tokens/createToken.js +8 -0
- package/lib/factory/tokens/createToken.js.map +1 -0
- package/lib/factory/tokens/createToken.mjs +8 -0
- package/lib/factory/tokens/createToken.mjs.map +1 -0
- package/lib/factory/types/createArrayTypeNode.d.ts +2 -0
- package/lib/factory/types/createArrayTypeNode.js +15 -0
- package/lib/factory/types/createArrayTypeNode.js.map +1 -0
- package/lib/factory/types/createArrayTypeNode.mjs +15 -0
- package/lib/factory/types/createArrayTypeNode.mjs.map +1 -0
- package/lib/factory/types/createFunctionTypeNode.d.ts +2 -0
- package/lib/factory/types/createFunctionTypeNode.js +16 -0
- package/lib/factory/types/createFunctionTypeNode.js.map +1 -0
- package/lib/factory/types/createFunctionTypeNode.mjs +16 -0
- package/lib/factory/types/createFunctionTypeNode.mjs.map +1 -0
- package/lib/factory/types/createIndexSignature.d.ts +2 -0
- package/lib/factory/types/createIndexSignature.js +14 -0
- package/lib/factory/types/createIndexSignature.js.map +1 -0
- package/lib/factory/types/createIndexSignature.mjs +14 -0
- package/lib/factory/types/createIndexSignature.mjs.map +1 -0
- package/lib/factory/types/createIntersectionTypeNode.d.ts +2 -0
- package/lib/factory/types/createIntersectionTypeNode.js +12 -0
- package/lib/factory/types/createIntersectionTypeNode.js.map +1 -0
- package/lib/factory/types/createIntersectionTypeNode.mjs +12 -0
- package/lib/factory/types/createIntersectionTypeNode.mjs.map +1 -0
- package/lib/factory/types/createKeywordTypeNode.d.ts +2 -0
- package/lib/factory/types/createKeywordTypeNode.js +8 -0
- package/lib/factory/types/createKeywordTypeNode.js.map +1 -0
- package/lib/factory/types/createKeywordTypeNode.mjs +8 -0
- package/lib/factory/types/createKeywordTypeNode.mjs.map +1 -0
- package/lib/factory/types/createLiteralTypeNode.d.ts +2 -0
- package/lib/factory/types/createLiteralTypeNode.js +9 -0
- package/lib/factory/types/createLiteralTypeNode.js.map +1 -0
- package/lib/factory/types/createLiteralTypeNode.mjs +9 -0
- package/lib/factory/types/createLiteralTypeNode.mjs.map +1 -0
- package/lib/factory/types/createOptionalTypeNode.d.ts +2 -0
- package/lib/factory/types/createOptionalTypeNode.js +9 -0
- package/lib/factory/types/createOptionalTypeNode.js.map +1 -0
- package/lib/factory/types/createOptionalTypeNode.mjs +9 -0
- package/lib/factory/types/createOptionalTypeNode.mjs.map +1 -0
- package/lib/factory/types/createParenthesizedType.d.ts +2 -0
- package/lib/factory/types/createParenthesizedType.js +9 -0
- package/lib/factory/types/createParenthesizedType.js.map +1 -0
- package/lib/factory/types/createParenthesizedType.mjs +9 -0
- package/lib/factory/types/createParenthesizedType.mjs.map +1 -0
- package/lib/factory/types/createPropertySignature.d.ts +2 -0
- package/lib/factory/types/createPropertySignature.js +17 -0
- package/lib/factory/types/createPropertySignature.js.map +1 -0
- package/lib/factory/types/createPropertySignature.mjs +17 -0
- package/lib/factory/types/createPropertySignature.mjs.map +1 -0
- package/lib/factory/types/createRestTypeNode.d.ts +2 -0
- package/lib/factory/types/createRestTypeNode.js +9 -0
- package/lib/factory/types/createRestTypeNode.js.map +1 -0
- package/lib/factory/types/createRestTypeNode.mjs +9 -0
- package/lib/factory/types/createRestTypeNode.mjs.map +1 -0
- package/lib/factory/types/createTemplateLiteralType.d.ts +2 -0
- package/lib/factory/types/createTemplateLiteralType.js +13 -0
- package/lib/factory/types/createTemplateLiteralType.js.map +1 -0
- package/lib/factory/types/createTemplateLiteralType.mjs +13 -0
- package/lib/factory/types/createTemplateLiteralType.mjs.map +1 -0
- package/lib/factory/types/createTemplateLiteralTypeSpan.d.ts +2 -0
- package/lib/factory/types/createTemplateLiteralTypeSpan.js +9 -0
- package/lib/factory/types/createTemplateLiteralTypeSpan.js.map +1 -0
- package/lib/factory/types/createTemplateLiteralTypeSpan.mjs +9 -0
- package/lib/factory/types/createTemplateLiteralTypeSpan.mjs.map +1 -0
- package/lib/factory/types/createTupleTypeNode.d.ts +2 -0
- package/lib/factory/types/createTupleTypeNode.js +12 -0
- package/lib/factory/types/createTupleTypeNode.js.map +1 -0
- package/lib/factory/types/createTupleTypeNode.mjs +12 -0
- package/lib/factory/types/createTupleTypeNode.mjs.map +1 -0
- package/lib/factory/types/createTypeLiteralNode.d.ts +2 -0
- package/lib/factory/types/createTypeLiteralNode.js +12 -0
- package/lib/factory/types/createTypeLiteralNode.js.map +1 -0
- package/lib/factory/types/createTypeLiteralNode.mjs +12 -0
- package/lib/factory/types/createTypeLiteralNode.mjs.map +1 -0
- package/lib/factory/types/createTypeQueryNode.d.ts +2 -0
- package/lib/factory/types/createTypeQueryNode.js +10 -0
- package/lib/factory/types/createTypeQueryNode.js.map +1 -0
- package/lib/factory/types/createTypeQueryNode.mjs +10 -0
- package/lib/factory/types/createTypeQueryNode.mjs.map +1 -0
- package/lib/factory/types/createTypeReferenceNode.d.ts +2 -0
- package/lib/factory/types/createTypeReferenceNode.js +14 -0
- package/lib/factory/types/createTypeReferenceNode.js.map +1 -0
- package/lib/factory/types/createTypeReferenceNode.mjs +14 -0
- package/lib/factory/types/createTypeReferenceNode.mjs.map +1 -0
- package/lib/factory/types/createUnionTypeNode.d.ts +2 -0
- package/lib/factory/types/createUnionTypeNode.js +10 -0
- package/lib/factory/types/createUnionTypeNode.js.map +1 -0
- package/lib/factory/types/createUnionTypeNode.mjs +10 -0
- package/lib/factory/types/createUnionTypeNode.mjs.map +1 -0
- package/lib/helpers/ExpressionFactory.d.ts +10 -0
- package/lib/helpers/ExpressionFactory.js +19 -0
- package/lib/helpers/ExpressionFactory.js.map +1 -0
- package/lib/helpers/ExpressionFactory.mjs +19 -0
- package/lib/helpers/ExpressionFactory.mjs.map +1 -0
- package/lib/helpers/FormatCheatSheet.d.ts +25 -0
- package/lib/helpers/FormatCheatSheet.js +34 -0
- package/lib/helpers/FormatCheatSheet.js.map +1 -0
- package/lib/helpers/FormatCheatSheet.mjs +33 -0
- package/lib/helpers/FormatCheatSheet.mjs.map +1 -0
- package/lib/helpers/IdentifierFactory.d.ts +18 -0
- package/lib/helpers/IdentifierFactory.js +71 -0
- package/lib/helpers/IdentifierFactory.js.map +1 -0
- package/lib/helpers/IdentifierFactory.mjs +70 -0
- package/lib/helpers/IdentifierFactory.mjs.map +1 -0
- package/lib/helpers/LiteralFactory.d.ts +11 -0
- package/lib/helpers/LiteralFactory.js +58 -0
- package/lib/helpers/LiteralFactory.js.map +1 -0
- package/lib/helpers/LiteralFactory.mjs +58 -0
- package/lib/helpers/LiteralFactory.mjs.map +1 -0
- package/lib/helpers/StatementFactory.d.ts +17 -0
- package/lib/helpers/StatementFactory.js +26 -0
- package/lib/helpers/StatementFactory.js.map +1 -0
- package/lib/helpers/StatementFactory.mjs +26 -0
- package/lib/helpers/StatementFactory.mjs.map +1 -0
- package/lib/helpers/TypeFactory.d.ts +25 -0
- package/lib/helpers/TypeFactory.js +29 -0
- package/lib/helpers/TypeFactory.js.map +1 -0
- package/lib/helpers/TypeFactory.mjs +29 -0
- package/lib/helpers/TypeFactory.mjs.map +1 -0
- package/lib/index.d.ts +15 -0
- package/lib/index.js +66 -0
- package/lib/index.js.map +1 -0
- package/lib/index.mjs +18 -0
- package/lib/index.mjs.map +1 -0
- package/lib/nts.d.ts +7 -0
- package/lib/nts.js +45 -0
- package/lib/nts.js.map +1 -0
- package/lib/nts.mjs +12 -0
- package/lib/nts.mjs.map +1 -0
- package/lib/printers/TypeScriptPrinter.d.ts +19 -0
- package/lib/printers/TypeScriptPrinter.js +28 -0
- package/lib/printers/TypeScriptPrinter.js.map +1 -0
- package/lib/printers/TypeScriptPrinter.mjs +28 -0
- package/lib/printers/TypeScriptPrinter.mjs.map +1 -0
- package/lib/printers/internal/NodePrinter.d.ts +61 -0
- package/lib/printers/internal/NodePrinter.js +627 -0
- package/lib/printers/internal/NodePrinter.js.map +1 -0
- package/lib/printers/internal/NodePrinter.mjs +604 -0
- package/lib/printers/internal/NodePrinter.mjs.map +1 -0
- package/lib/structures/CommentNode.d.ts +7 -0
- package/lib/structures/CommentNode.js +3 -0
- package/lib/structures/CommentNode.js.map +1 -0
- package/lib/structures/EmitNode.d.ts +5 -0
- package/lib/structures/EmitNode.js +3 -0
- package/lib/structures/EmitNode.js.map +1 -0
- package/lib/structures/Node.d.ts +71 -0
- package/lib/structures/Node.js +3 -0
- package/lib/structures/Node.js.map +1 -0
- package/lib/structures/NodeArray.d.ts +7 -0
- package/lib/structures/NodeArray.js +3 -0
- package/lib/structures/NodeArray.js.map +1 -0
- package/lib/structures/NodeProps.d.ts +2 -0
- package/lib/structures/NodeProps.js +3 -0
- package/lib/structures/NodeProps.js.map +1 -0
- package/lib/structures/index.d.ts +5 -0
- package/lib/structures/index.js +3 -0
- package/lib/structures/index.js.map +1 -0
- package/lib/utils/asModuleSpecifier.d.ts +2 -0
- package/lib/utils/asModuleSpecifier.js +7 -0
- package/lib/utils/asModuleSpecifier.js.map +1 -0
- package/lib/utils/asModuleSpecifier.mjs +6 -0
- package/lib/utils/asModuleSpecifier.mjs.map +1 -0
- package/lib/utils/asName.d.ts +2 -0
- package/lib/utils/asName.js +7 -0
- package/lib/utils/asName.js.map +1 -0
- package/lib/utils/asName.mjs +6 -0
- package/lib/utils/asName.mjs.map +1 -0
- package/lib/utils/asToken.d.ts +2 -0
- package/lib/utils/asToken.js +7 -0
- package/lib/utils/asToken.js.map +1 -0
- package/lib/utils/asToken.mjs +6 -0
- package/lib/utils/asToken.mjs.map +1 -0
- package/lib/utils/createNode.d.ts +3 -0
- package/lib/utils/createNode.js +7 -0
- package/lib/utils/createNode.js.map +1 -0
- package/lib/utils/createNode.mjs +14 -0
- package/lib/utils/createNode.mjs.map +1 -0
- package/lib/utils/createNodeArray.d.ts +3 -0
- package/lib/utils/createNodeArray.js +14 -0
- package/lib/utils/createNodeArray.js.map +1 -0
- package/lib/utils/createNodeArray.mjs +12 -0
- package/lib/utils/createNodeArray.mjs.map +1 -0
- package/package.json +52 -0
- package/src/TypeScriptFactory.ts +8 -0
- package/src/constants/NodeFlags.ts +9 -0
- package/src/constants/SyntaxKind.ts +104 -0
- package/src/factory/bindings/createArrayBindingPattern.ts +10 -0
- package/src/factory/bindings/createBindingElement.ts +18 -0
- package/src/factory/declarations/createClassDeclaration.ts +29 -0
- package/src/factory/declarations/createFunctionDeclaration.ts +33 -0
- package/src/factory/declarations/createMethodDeclaration.ts +35 -0
- package/src/factory/declarations/createParameterDeclaration.ts +24 -0
- package/src/factory/declarations/createTypeAliasDeclaration.ts +24 -0
- package/src/factory/declarations/createVariableDeclaration.ts +18 -0
- package/src/factory/declarations/createVariableDeclarationList.ts +14 -0
- package/src/factory/declarations/createVariableStatement.ts +15 -0
- package/src/factory/declarations/updateClassDeclaration.ts +25 -0
- package/src/factory/declarations/updateMethodDeclaration.ts +29 -0
- package/src/factory/expressions/createArrayLiteralExpression.ts +14 -0
- package/src/factory/expressions/createArrowFunction.ts +32 -0
- package/src/factory/expressions/createAsExpression.ts +11 -0
- package/src/factory/expressions/createAwaitExpression.ts +10 -0
- package/src/factory/expressions/createBinaryExpression.ts +16 -0
- package/src/factory/expressions/createCallChain.ts +20 -0
- package/src/factory/expressions/createCallExpression.ts +17 -0
- package/src/factory/expressions/createConditionalExpression.ts +20 -0
- package/src/factory/expressions/createElementAccessChain.ts +19 -0
- package/src/factory/expressions/createElementAccessExpression.ts +16 -0
- package/src/factory/expressions/createLogicalNot.ts +7 -0
- package/src/factory/expressions/createNewExpression.ts +16 -0
- package/src/factory/expressions/createObjectLiteralExpression.ts +14 -0
- package/src/factory/expressions/createPrefixMinus.ts +7 -0
- package/src/factory/expressions/createPrefixUnaryExpression.ts +10 -0
- package/src/factory/expressions/createPropertyAccessChain.ts +19 -0
- package/src/factory/expressions/createPropertyAccessExpression.ts +17 -0
- package/src/factory/expressions/createPropertyAssignment.ts +14 -0
- package/src/factory/expressions/createShorthandPropertyAssignment.ts +14 -0
- package/src/factory/expressions/createSpreadAssignment.ts +7 -0
- package/src/factory/expressions/createStrictEquality.ts +11 -0
- package/src/factory/index.ts +86 -0
- package/src/factory/literals/createBigIntLiteral.ts +8 -0
- package/src/factory/literals/createFalse.ts +7 -0
- package/src/factory/literals/createIdentifier.ts +12 -0
- package/src/factory/literals/createNull.ts +7 -0
- package/src/factory/literals/createNumericLiteral.ts +10 -0
- package/src/factory/literals/createStringLiteral.ts +14 -0
- package/src/factory/literals/createTrue.ts +7 -0
- package/src/factory/modules/createExportDeclaration.ts +26 -0
- package/src/factory/modules/createImportClause.ts +16 -0
- package/src/factory/modules/createImportDeclaration.ts +21 -0
- package/src/factory/modules/createImportSpecifier.ts +16 -0
- package/src/factory/modules/createModuleBlock.ts +10 -0
- package/src/factory/modules/createModuleDeclaration.ts +23 -0
- package/src/factory/modules/createNamedImports.ts +10 -0
- package/src/factory/modules/createNamespaceExport.ts +8 -0
- package/src/factory/modules/createNamespaceImport.ts +8 -0
- package/src/factory/names/createQualifiedName.ts +14 -0
- package/src/factory/source-files/createSourceFile.ts +52 -0
- package/src/factory/source-files/updateSourceFile.ts +9 -0
- package/src/factory/statements/createBlock.ts +14 -0
- package/src/factory/statements/createCatchClause.ts +17 -0
- package/src/factory/statements/createContinueStatement.ts +10 -0
- package/src/factory/statements/createExpressionStatement.ts +7 -0
- package/src/factory/statements/createForOfStatement.ts +17 -0
- package/src/factory/statements/createIfStatement.ts +15 -0
- package/src/factory/statements/createReturnStatement.ts +7 -0
- package/src/factory/statements/createThrowStatement.ts +7 -0
- package/src/factory/statements/createTryStatement.ts +15 -0
- package/src/factory/templates/createTemplateExpression.ts +14 -0
- package/src/factory/templates/createTemplateHead.ts +7 -0
- package/src/factory/templates/createTemplateMiddle.ts +7 -0
- package/src/factory/templates/createTemplateSpan.ts +7 -0
- package/src/factory/templates/createTemplateTail.ts +7 -0
- package/src/factory/tokens/createDecorator.ts +10 -0
- package/src/factory/tokens/createModifier.ts +6 -0
- package/src/factory/tokens/createToken.ts +6 -0
- package/src/factory/types/createArrayTypeNode.ts +14 -0
- package/src/factory/types/createFunctionTypeNode.ts +18 -0
- package/src/factory/types/createIndexSignature.ts +16 -0
- package/src/factory/types/createIntersectionTypeNode.ts +10 -0
- package/src/factory/types/createKeywordTypeNode.ts +6 -0
- package/src/factory/types/createLiteralTypeNode.ts +7 -0
- package/src/factory/types/createOptionalTypeNode.ts +7 -0
- package/src/factory/types/createParenthesizedType.ts +7 -0
- package/src/factory/types/createPropertySignature.ts +20 -0
- package/src/factory/types/createRestTypeNode.ts +7 -0
- package/src/factory/types/createTemplateLiteralType.ts +14 -0
- package/src/factory/types/createTemplateLiteralTypeSpan.ts +7 -0
- package/src/factory/types/createTupleTypeNode.ts +10 -0
- package/src/factory/types/createTypeLiteralNode.ts +10 -0
- package/src/factory/types/createTypeQueryNode.ts +8 -0
- package/src/factory/types/createTypeReferenceNode.ts +15 -0
- package/src/factory/types/createUnionTypeNode.ts +8 -0
- package/src/helpers/ExpressionFactory.ts +20 -0
- package/src/helpers/FormatCheatSheet.ts +71 -0
- package/src/helpers/IdentifierFactory.ts +84 -0
- package/src/helpers/LiteralFactory.ts +59 -0
- package/src/helpers/StatementFactory.ts +57 -0
- package/src/helpers/TypeFactory.ts +30 -0
- package/src/index.ts +28 -0
- package/src/nts.ts +9 -0
- package/src/printers/TypeScriptPrinter.ts +51 -0
- package/src/printers/internal/NodePrinter.ts +758 -0
- package/src/structures/CommentNode.ts +7 -0
- package/src/structures/EmitNode.ts +6 -0
- package/src/structures/Node.ts +76 -0
- package/src/structures/NodeArray.ts +8 -0
- package/src/structures/NodeProps.ts +3 -0
- package/src/structures/index.ts +5 -0
- package/src/utils/asModuleSpecifier.ts +5 -0
- package/src/utils/asName.ts +5 -0
- package/src/utils/asToken.ts +5 -0
- package/src/utils/createNode.ts +13 -0
- package/src/utils/createNodeArray.ts +14 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SyntaxKind } from "../../constants/SyntaxKind";
|
|
2
|
+
import type { Node } from "../../structures/Node";
|
|
3
|
+
import { createNode } from "../../utils/createNode";
|
|
4
|
+
import { createNodeArray } from "../../utils/createNodeArray";
|
|
5
|
+
|
|
6
|
+
export function createIndexSignature(
|
|
7
|
+
modifiers: readonly Node[] | undefined,
|
|
8
|
+
parameters: readonly Node[],
|
|
9
|
+
type: Node,
|
|
10
|
+
): Node {
|
|
11
|
+
return createNode(SyntaxKind.IndexSignature, {
|
|
12
|
+
modifiers: modifiers ? createNodeArray(modifiers) : undefined,
|
|
13
|
+
parameters: createNodeArray(parameters),
|
|
14
|
+
type,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SyntaxKind } from "../../constants/SyntaxKind";
|
|
2
|
+
import type { Node } from "../../structures/Node";
|
|
3
|
+
import { createNode } from "../../utils/createNode";
|
|
4
|
+
import { createNodeArray } from "../../utils/createNodeArray";
|
|
5
|
+
|
|
6
|
+
export function createIntersectionTypeNode(types: readonly Node[] = []): Node {
|
|
7
|
+
return createNode(SyntaxKind.IntersectionType, {
|
|
8
|
+
types: createNodeArray(types),
|
|
9
|
+
});
|
|
10
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SyntaxKind } from "../../constants/SyntaxKind";
|
|
2
|
+
import type { Node } from "../../structures/Node";
|
|
3
|
+
import { createNode } from "../../utils/createNode";
|
|
4
|
+
|
|
5
|
+
export function createLiteralTypeNode(literal: Node): Node {
|
|
6
|
+
return createNode(SyntaxKind.LiteralType, { literal });
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SyntaxKind } from "../../constants/SyntaxKind";
|
|
2
|
+
import type { Node } from "../../structures/Node";
|
|
3
|
+
import { createNode } from "../../utils/createNode";
|
|
4
|
+
|
|
5
|
+
export function createOptionalTypeNode(type: Node): Node {
|
|
6
|
+
return createNode(SyntaxKind.OptionalType, { type });
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SyntaxKind } from "../../constants/SyntaxKind";
|
|
2
|
+
import type { Node } from "../../structures/Node";
|
|
3
|
+
import { createNode } from "../../utils/createNode";
|
|
4
|
+
|
|
5
|
+
export function createParenthesizedType(type: Node): Node {
|
|
6
|
+
return createNode(SyntaxKind.ParenthesizedType, { type });
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SyntaxKind } from "../../constants/SyntaxKind";
|
|
2
|
+
import type { Node } from "../../structures/Node";
|
|
3
|
+
import { asName } from "../../utils/asName";
|
|
4
|
+
import { createNode } from "../../utils/createNode";
|
|
5
|
+
import { createNodeArray } from "../../utils/createNodeArray";
|
|
6
|
+
|
|
7
|
+
export function createPropertySignature(
|
|
8
|
+
modifiers: readonly Node[] | undefined,
|
|
9
|
+
name: string | Node,
|
|
10
|
+
questionToken: Node | undefined,
|
|
11
|
+
type: Node | undefined,
|
|
12
|
+
): Node {
|
|
13
|
+
return createNode(SyntaxKind.PropertySignature, {
|
|
14
|
+
modifiers: modifiers ? createNodeArray(modifiers) : undefined,
|
|
15
|
+
name: asName(name),
|
|
16
|
+
questionToken,
|
|
17
|
+
type,
|
|
18
|
+
jsDoc: undefined,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SyntaxKind } from "../../constants/SyntaxKind";
|
|
2
|
+
import type { Node } from "../../structures/Node";
|
|
3
|
+
import { createNode } from "../../utils/createNode";
|
|
4
|
+
|
|
5
|
+
export function createRestTypeNode(type: Node): Node {
|
|
6
|
+
return createNode(SyntaxKind.RestType, { type });
|
|
7
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SyntaxKind } from "../../constants/SyntaxKind";
|
|
2
|
+
import type { Node } from "../../structures/Node";
|
|
3
|
+
import { createNode } from "../../utils/createNode";
|
|
4
|
+
import { createNodeArray } from "../../utils/createNodeArray";
|
|
5
|
+
|
|
6
|
+
export function createTemplateLiteralType(
|
|
7
|
+
head: Node,
|
|
8
|
+
templateSpans: readonly Node[],
|
|
9
|
+
): Node {
|
|
10
|
+
return createNode(SyntaxKind.TemplateLiteralType, {
|
|
11
|
+
head,
|
|
12
|
+
templateSpans: createNodeArray(templateSpans),
|
|
13
|
+
});
|
|
14
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SyntaxKind } from "../../constants/SyntaxKind";
|
|
2
|
+
import type { Node } from "../../structures/Node";
|
|
3
|
+
import { createNode } from "../../utils/createNode";
|
|
4
|
+
|
|
5
|
+
export function createTemplateLiteralTypeSpan(type: Node, literal: Node): Node {
|
|
6
|
+
return createNode(SyntaxKind.TemplateLiteralTypeSpan, { type, literal });
|
|
7
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SyntaxKind } from "../../constants/SyntaxKind";
|
|
2
|
+
import type { Node } from "../../structures/Node";
|
|
3
|
+
import { createNode } from "../../utils/createNode";
|
|
4
|
+
import { createNodeArray } from "../../utils/createNodeArray";
|
|
5
|
+
|
|
6
|
+
export function createTupleTypeNode(elements: readonly Node[] = []): Node {
|
|
7
|
+
return createNode(SyntaxKind.TupleType, {
|
|
8
|
+
elements: createNodeArray(elements),
|
|
9
|
+
});
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SyntaxKind } from "../../constants/SyntaxKind";
|
|
2
|
+
import type { Node } from "../../structures/Node";
|
|
3
|
+
import { createNode } from "../../utils/createNode";
|
|
4
|
+
import { createNodeArray } from "../../utils/createNodeArray";
|
|
5
|
+
|
|
6
|
+
export function createTypeLiteralNode(members: readonly Node[] = []): Node {
|
|
7
|
+
return createNode(SyntaxKind.TypeLiteral, {
|
|
8
|
+
members: createNodeArray(members),
|
|
9
|
+
});
|
|
10
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SyntaxKind } from "../../constants/SyntaxKind";
|
|
2
|
+
import type { Node } from "../../structures/Node";
|
|
3
|
+
import { asName } from "../../utils/asName";
|
|
4
|
+
import { createNode } from "../../utils/createNode";
|
|
5
|
+
|
|
6
|
+
export function createTypeQueryNode(exprName: string | Node): Node {
|
|
7
|
+
return createNode(SyntaxKind.TypeQuery, { exprName: asName(exprName) });
|
|
8
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SyntaxKind } from "../../constants/SyntaxKind";
|
|
2
|
+
import type { Node } from "../../structures/Node";
|
|
3
|
+
import { asName } from "../../utils/asName";
|
|
4
|
+
import { createNode } from "../../utils/createNode";
|
|
5
|
+
import { createNodeArray } from "../../utils/createNodeArray";
|
|
6
|
+
|
|
7
|
+
export function createTypeReferenceNode(
|
|
8
|
+
typeName: string | Node,
|
|
9
|
+
typeArguments?: readonly Node[],
|
|
10
|
+
): Node {
|
|
11
|
+
return createNode(SyntaxKind.TypeReference, {
|
|
12
|
+
typeName: asName(typeName),
|
|
13
|
+
typeArguments: typeArguments ? createNodeArray(typeArguments) : undefined,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SyntaxKind } from "../../constants/SyntaxKind";
|
|
2
|
+
import type { Node } from "../../structures/Node";
|
|
3
|
+
import { createNode } from "../../utils/createNode";
|
|
4
|
+
import { createNodeArray } from "../../utils/createNodeArray";
|
|
5
|
+
|
|
6
|
+
export function createUnionTypeNode(types: readonly Node[] = []): Node {
|
|
7
|
+
return createNode(SyntaxKind.UnionType, { types: createNodeArray(types) });
|
|
8
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SyntaxKind } from "../constants/SyntaxKind";
|
|
2
|
+
import { createNumericLiteral } from "../factory/literals/createNumericLiteral";
|
|
3
|
+
import { createPrefixUnaryExpression } from "../factory/expressions/createPrefixUnaryExpression";
|
|
4
|
+
import type { Node } from "../structures/Node";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Numeric-literal helper that handles negative values via a leading
|
|
8
|
+
* `MinusToken` prefix unary, matching how the TypeScript factory itself
|
|
9
|
+
* emits negative numeric literals. Replaces the legacy `@typia/core`
|
|
10
|
+
* `ExpressionFactory.number` nestia previously imported.
|
|
11
|
+
*/
|
|
12
|
+
export namespace ExpressionFactory {
|
|
13
|
+
export const number = (value: number): Node =>
|
|
14
|
+
value < 0
|
|
15
|
+
? createPrefixUnaryExpression(
|
|
16
|
+
SyntaxKind.MinusToken,
|
|
17
|
+
createNumericLiteral(Math.abs(value)),
|
|
18
|
+
)
|
|
19
|
+
: createNumericLiteral(value);
|
|
20
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
const RegexCall = <Text extends string>(text: Text) =>
|
|
2
|
+
`${text}.test($input)` as const;
|
|
3
|
+
|
|
4
|
+
/** @reference https://github.dev/ajv-validator/ajv-formats/blob/master/src/formats.ts */
|
|
5
|
+
export const FormatCheatSheet = {
|
|
6
|
+
// SPECIAL CHARACTERS
|
|
7
|
+
byte: RegexCall(
|
|
8
|
+
`/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm`,
|
|
9
|
+
),
|
|
10
|
+
password: `true`,
|
|
11
|
+
regex: `(() => { try { new RegExp($input); return true; } catch { return false; } })()`,
|
|
12
|
+
uuid: RegexCall(
|
|
13
|
+
`/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i`,
|
|
14
|
+
),
|
|
15
|
+
|
|
16
|
+
// ADDRESSES
|
|
17
|
+
email: RegexCall(
|
|
18
|
+
`/^[a-z0-9!#$%&'*+/=?^_\`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_\`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i`,
|
|
19
|
+
),
|
|
20
|
+
hostname: RegexCall(
|
|
21
|
+
`/^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i`,
|
|
22
|
+
),
|
|
23
|
+
"idn-email": RegexCall(
|
|
24
|
+
`/^(([^<>()[\\]\\.,;:\\s@\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\"]+)*)|(\\".+\\"))@(([^<>()[\\]\\.,;:\\s@\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\"]{2,})$/i`,
|
|
25
|
+
),
|
|
26
|
+
"idn-hostname": RegexCall(
|
|
27
|
+
`/^([a-z0-9\\u00a1-\\uffff0-9]+(-[a-z0-9\\u00a1-\\uffff0-9]+)*\\.)+[a-z\\u00a1-\\uffff]{2,}$/i`,
|
|
28
|
+
),
|
|
29
|
+
iri: RegexCall(
|
|
30
|
+
`/^[A-Za-z][\\d+-.A-Za-z]*:[^\\u0000-\\u0020"<>\\\\^\`{|}]*$/u`,
|
|
31
|
+
),
|
|
32
|
+
"iri-reference": RegexCall(
|
|
33
|
+
`/^[A-Za-z][\\d+-.A-Za-z]*:[^\\u0000-\\u0020"<>\\\\^\`{|}]*$/u`,
|
|
34
|
+
),
|
|
35
|
+
ipv4: RegexCall(
|
|
36
|
+
`/^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$/`,
|
|
37
|
+
),
|
|
38
|
+
ipv6: RegexCall(
|
|
39
|
+
`/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i`,
|
|
40
|
+
),
|
|
41
|
+
uri: `${RegexCall(`/\\/|:/`)} && ${RegexCall(
|
|
42
|
+
`/^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i`,
|
|
43
|
+
)}`,
|
|
44
|
+
"uri-reference": RegexCall(
|
|
45
|
+
`/^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i`,
|
|
46
|
+
),
|
|
47
|
+
"uri-template": RegexCall(
|
|
48
|
+
`/^(?:(?:[^\\x00-\\x20"'<>%\\\\^\`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i`,
|
|
49
|
+
),
|
|
50
|
+
url: RegexCall(
|
|
51
|
+
`/^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu`,
|
|
52
|
+
),
|
|
53
|
+
|
|
54
|
+
// TIMESTAMPS
|
|
55
|
+
"date-time": RegexCall(
|
|
56
|
+
`/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(T|\\s)([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]{1,9})?(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])$/i`,
|
|
57
|
+
),
|
|
58
|
+
date: RegexCall(`/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/`),
|
|
59
|
+
time: RegexCall(
|
|
60
|
+
`/^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](?:\\.[0-9]{1,9})?(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])$/i`,
|
|
61
|
+
),
|
|
62
|
+
duration: RegexCall(
|
|
63
|
+
`/^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/`,
|
|
64
|
+
),
|
|
65
|
+
|
|
66
|
+
// POINTERS
|
|
67
|
+
"json-pointer": RegexCall(`/^(?:\\/(?:[^~/]|~0|~1)*)*$/`),
|
|
68
|
+
"relative-json-pointer": RegexCall(
|
|
69
|
+
`/^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/`,
|
|
70
|
+
),
|
|
71
|
+
} as const;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { SyntaxKind } from "../constants/SyntaxKind";
|
|
2
|
+
import { createIdentifier } from "../factory/literals/createIdentifier";
|
|
3
|
+
import { createStringLiteral } from "../factory/literals/createStringLiteral";
|
|
4
|
+
import { createElementAccessChain } from "../factory/expressions/createElementAccessChain";
|
|
5
|
+
import { createElementAccessExpression } from "../factory/expressions/createElementAccessExpression";
|
|
6
|
+
import { createPropertyAccessChain } from "../factory/expressions/createPropertyAccessChain";
|
|
7
|
+
import { createPropertyAccessExpression } from "../factory/expressions/createPropertyAccessExpression";
|
|
8
|
+
import { createParameterDeclaration } from "../factory/declarations/createParameterDeclaration";
|
|
9
|
+
import { createToken } from "../factory/tokens/createToken";
|
|
10
|
+
import type { Node } from "../structures/Node";
|
|
11
|
+
|
|
12
|
+
import { TypeFactory } from "./TypeFactory";
|
|
13
|
+
|
|
14
|
+
// Conservative "is this string a syntactically valid JavaScript variable
|
|
15
|
+
// name?" test, inlined to avoid pulling in @typia/utils' full namespace from
|
|
16
|
+
// an ESM bundle that only exposes a `default` export.
|
|
17
|
+
const VARIABLE_REGEX = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
|
|
18
|
+
const isVariableName = (str: string): boolean => VARIABLE_REGEX.test(str);
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Identifier and member-access helpers. Replaces the legacy `@typia/core`
|
|
22
|
+
* `IdentifierFactory` nestia previously depended on; the surface kept here is
|
|
23
|
+
* the subset nestia generators actually call (`access`, `parameter`).
|
|
24
|
+
*/
|
|
25
|
+
export namespace IdentifierFactory {
|
|
26
|
+
/** Build an identifier or string literal depending on whether `name` is a
|
|
27
|
+
* valid JavaScript identifier. */
|
|
28
|
+
export const identifier = (name: string): Node =>
|
|
29
|
+
isVariableName(name) ? createIdentifier(name) : createStringLiteral(name);
|
|
30
|
+
|
|
31
|
+
/** Member access on `input` by `key`. Falls back to element access when
|
|
32
|
+
* the key is not a valid identifier. */
|
|
33
|
+
export const access = (input: Node, key: string, chain?: boolean): Node => {
|
|
34
|
+
const postfix = identifier(key);
|
|
35
|
+
const isElement = postfix.kind === SyntaxKind.StringLiteral;
|
|
36
|
+
if (chain === true) {
|
|
37
|
+
const dot = createToken(SyntaxKind.QuestionDotToken);
|
|
38
|
+
return isElement
|
|
39
|
+
? createElementAccessChain(input, dot, postfix)
|
|
40
|
+
: createPropertyAccessChain(input, dot, postfix);
|
|
41
|
+
}
|
|
42
|
+
return isElement
|
|
43
|
+
? createElementAccessExpression(input, postfix)
|
|
44
|
+
: createPropertyAccessExpression(input, postfix);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
/** Recover the dotted name of a property/element-access chain. */
|
|
48
|
+
export const getName = (input: Node): string => {
|
|
49
|
+
if (input.kind === SyntaxKind.Identifier) {
|
|
50
|
+
const escaped = (input as { escapedText?: string }).escapedText;
|
|
51
|
+
if (typeof escaped === "string") return escaped;
|
|
52
|
+
return (input as { text?: string }).text ?? "";
|
|
53
|
+
}
|
|
54
|
+
if (input.kind === SyntaxKind.PropertyAccessExpression) {
|
|
55
|
+
const expr = (input as { expression?: Node }).expression;
|
|
56
|
+
const name = (input as { name?: Node }).name;
|
|
57
|
+
return name ? `${expr ? getName(expr) : ""}.${getName(name)}` : "";
|
|
58
|
+
}
|
|
59
|
+
if (input.kind === SyntaxKind.ElementAccessExpression) {
|
|
60
|
+
const expr = (input as { expression?: Node }).expression;
|
|
61
|
+
const arg = (input as { argumentExpression?: Node }).argumentExpression;
|
|
62
|
+
return arg ? `${expr ? getName(expr) : ""}[${getName(arg)}]` : "";
|
|
63
|
+
}
|
|
64
|
+
return "unknown";
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/** Parameter declaration with default `any` type when the caller omits one. */
|
|
68
|
+
export const parameter = (
|
|
69
|
+
name: string | Node,
|
|
70
|
+
type?: Node,
|
|
71
|
+
init?: Node,
|
|
72
|
+
): Node => {
|
|
73
|
+
const isQuestionToken =
|
|
74
|
+
(init as { kind?: number } | undefined)?.kind === SyntaxKind.QuestionToken;
|
|
75
|
+
return createParameterDeclaration(
|
|
76
|
+
undefined,
|
|
77
|
+
undefined,
|
|
78
|
+
name,
|
|
79
|
+
isQuestionToken ? createToken(SyntaxKind.QuestionToken) : undefined,
|
|
80
|
+
type ?? TypeFactory.keyword("any"),
|
|
81
|
+
isQuestionToken ? undefined : init,
|
|
82
|
+
);
|
|
83
|
+
};
|
|
84
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { SyntaxKind } from "../constants/SyntaxKind";
|
|
2
|
+
import { createArrayLiteralExpression } from "../factory/expressions/createArrayLiteralExpression";
|
|
3
|
+
import { createObjectLiteralExpression } from "../factory/expressions/createObjectLiteralExpression";
|
|
4
|
+
import { createPropertyAssignment } from "../factory/expressions/createPropertyAssignment";
|
|
5
|
+
import { createFalse } from "../factory/literals/createFalse";
|
|
6
|
+
import { createIdentifier } from "../factory/literals/createIdentifier";
|
|
7
|
+
import { createNull } from "../factory/literals/createNull";
|
|
8
|
+
import { createStringLiteral } from "../factory/literals/createStringLiteral";
|
|
9
|
+
import { createTrue } from "../factory/literals/createTrue";
|
|
10
|
+
import type { Node } from "../structures/Node";
|
|
11
|
+
|
|
12
|
+
import { ExpressionFactory } from "./ExpressionFactory";
|
|
13
|
+
import { IdentifierFactory } from "./IdentifierFactory";
|
|
14
|
+
|
|
15
|
+
const PASSTHROUGH_KINDS = new Set<number>([
|
|
16
|
+
SyntaxKind.ArrowFunction,
|
|
17
|
+
SyntaxKind.CallExpression,
|
|
18
|
+
SyntaxKind.Identifier,
|
|
19
|
+
]);
|
|
20
|
+
|
|
21
|
+
const isNode = (value: unknown): value is Node =>
|
|
22
|
+
typeof value === "object" &&
|
|
23
|
+
value !== null &&
|
|
24
|
+
typeof (value as { kind?: unknown }).kind === "number";
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Recursive value-to-AST-literal builder. Hands back already-AST inputs
|
|
28
|
+
* unchanged (so callers can mix factory output with raw JS values inside the
|
|
29
|
+
* same object/array), and emits the appropriate literal node otherwise.
|
|
30
|
+
* Replaces the legacy `@typia/core` `LiteralFactory.write` nestia generators
|
|
31
|
+
* previously imported.
|
|
32
|
+
*/
|
|
33
|
+
export namespace LiteralFactory {
|
|
34
|
+
export const write = (input: any): Node => {
|
|
35
|
+
if (input === null) return createNull();
|
|
36
|
+
if (isNode(input) && PASSTHROUGH_KINDS.has(input.kind)) return input;
|
|
37
|
+
if (Array.isArray(input)) return writeArray(input);
|
|
38
|
+
if (typeof input === "object") return writeObject(input as object);
|
|
39
|
+
if (typeof input === "boolean") return input ? createTrue() : createFalse();
|
|
40
|
+
if (typeof input === "number") return ExpressionFactory.number(input);
|
|
41
|
+
if (typeof input === "string") return createStringLiteral(input);
|
|
42
|
+
if (typeof input === "bigint") return createStringLiteral(input.toString());
|
|
43
|
+
if (typeof input === "function") return createIdentifier("undefined");
|
|
44
|
+
throw new TypeError("LiteralFactory.write: unsupported input type.");
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const writeObject = (obj: object): Node =>
|
|
48
|
+
createObjectLiteralExpression(
|
|
49
|
+
Object.entries(obj)
|
|
50
|
+
.filter(([, value]) => value !== undefined)
|
|
51
|
+
.map(([key, value]) =>
|
|
52
|
+
createPropertyAssignment(IdentifierFactory.identifier(key), write(value)),
|
|
53
|
+
),
|
|
54
|
+
true,
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
const writeArray = (array: readonly any[]): Node =>
|
|
58
|
+
createArrayLiteralExpression(array.map(write), true);
|
|
59
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { NodeFlags } from "../constants/NodeFlags";
|
|
2
|
+
import { createVariableDeclaration } from "../factory/declarations/createVariableDeclaration";
|
|
3
|
+
import { createVariableDeclarationList } from "../factory/declarations/createVariableDeclarationList";
|
|
4
|
+
import { createVariableStatement } from "../factory/declarations/createVariableStatement";
|
|
5
|
+
import type { Node } from "../structures/Node";
|
|
6
|
+
|
|
7
|
+
import { TypeFactory } from "./TypeFactory";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Variable-statement helpers. `constant` emits `const`, `mut` emits `let`.
|
|
11
|
+
* Mirrors the legacy `@typia/core` `StatementFactory` nestia generators call.
|
|
12
|
+
*/
|
|
13
|
+
export namespace StatementFactory {
|
|
14
|
+
export const mut = (props: {
|
|
15
|
+
name: string;
|
|
16
|
+
type?: Node | undefined;
|
|
17
|
+
initializer?: Node | undefined;
|
|
18
|
+
}): Node =>
|
|
19
|
+
createVariableStatement(
|
|
20
|
+
undefined,
|
|
21
|
+
createVariableDeclarationList(
|
|
22
|
+
[
|
|
23
|
+
createVariableDeclaration(
|
|
24
|
+
props.name,
|
|
25
|
+
undefined,
|
|
26
|
+
props.type !== undefined
|
|
27
|
+
? props.type
|
|
28
|
+
: props.initializer === undefined
|
|
29
|
+
? TypeFactory.keyword("any")
|
|
30
|
+
: undefined,
|
|
31
|
+
props.initializer,
|
|
32
|
+
),
|
|
33
|
+
],
|
|
34
|
+
NodeFlags.Let,
|
|
35
|
+
),
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
export const constant = (props: {
|
|
39
|
+
name: string;
|
|
40
|
+
type?: Node | undefined;
|
|
41
|
+
value?: Node | undefined;
|
|
42
|
+
}): Node =>
|
|
43
|
+
createVariableStatement(
|
|
44
|
+
undefined,
|
|
45
|
+
createVariableDeclarationList(
|
|
46
|
+
[
|
|
47
|
+
createVariableDeclaration(
|
|
48
|
+
props.name,
|
|
49
|
+
undefined,
|
|
50
|
+
props.type,
|
|
51
|
+
props.value,
|
|
52
|
+
),
|
|
53
|
+
],
|
|
54
|
+
NodeFlags.Const,
|
|
55
|
+
),
|
|
56
|
+
);
|
|
57
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { SyntaxKind } from "../constants/SyntaxKind";
|
|
2
|
+
import { createKeywordTypeNode } from "../factory/types/createKeywordTypeNode";
|
|
3
|
+
import type { Node } from "../structures/Node";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Higher-level type-keyword factory.
|
|
7
|
+
*
|
|
8
|
+
* Wraps {@link createKeywordTypeNode} with a name-based interface so generator
|
|
9
|
+
* code reads as `TypeFactory.keyword("any")` instead of selecting the
|
|
10
|
+
* `SyntaxKind.AnyKeyword` token by hand. Mirrors the legacy `@typia/core`
|
|
11
|
+
* `TypeFactory` namespace nestia previously depended on.
|
|
12
|
+
*/
|
|
13
|
+
export namespace TypeFactory {
|
|
14
|
+
const KEYWORDS = {
|
|
15
|
+
void: SyntaxKind.VoidKeyword,
|
|
16
|
+
any: SyntaxKind.AnyKeyword,
|
|
17
|
+
unknown: SyntaxKind.UnknownKeyword,
|
|
18
|
+
boolean: SyntaxKind.BooleanKeyword,
|
|
19
|
+
number: SyntaxKind.NumberKeyword,
|
|
20
|
+
bigint: SyntaxKind.BigIntKeyword,
|
|
21
|
+
string: SyntaxKind.StringKeyword,
|
|
22
|
+
never: SyntaxKind.NeverKeyword,
|
|
23
|
+
undefined: SyntaxKind.UndefinedKeyword,
|
|
24
|
+
} as const;
|
|
25
|
+
|
|
26
|
+
export type Keyword = keyof typeof KEYWORDS;
|
|
27
|
+
|
|
28
|
+
export const keyword = (type: Keyword): Node =>
|
|
29
|
+
createKeywordTypeNode(KEYWORDS[type]);
|
|
30
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { nts } from "./nts";
|
|
2
|
+
|
|
3
|
+
export { nts } from "./nts";
|
|
4
|
+
export { NodeFlags } from "./constants/NodeFlags";
|
|
5
|
+
export { SyntaxKind } from "./constants/SyntaxKind";
|
|
6
|
+
export * as factory from "./factory/index";
|
|
7
|
+
export { TypeScriptFactory } from "./TypeScriptFactory";
|
|
8
|
+
export { TypeScriptPrinter } from "./printers/TypeScriptPrinter";
|
|
9
|
+
export type {
|
|
10
|
+
CommentNode,
|
|
11
|
+
EmitNode,
|
|
12
|
+
Node,
|
|
13
|
+
NodeArray,
|
|
14
|
+
NodeProps,
|
|
15
|
+
} from "./structures";
|
|
16
|
+
|
|
17
|
+
// High-level helpers that wrap the factory primitives. These replace the
|
|
18
|
+
// legacy `@typia/core` helpers (IdentifierFactory, LiteralFactory, etc.)
|
|
19
|
+
// nestia generators previously imported, so nothing in nestia source needs
|
|
20
|
+
// to reach into `@typia/core` for AST construction anymore.
|
|
21
|
+
export { ExpressionFactory } from "./helpers/ExpressionFactory";
|
|
22
|
+
export { FormatCheatSheet } from "./helpers/FormatCheatSheet";
|
|
23
|
+
export { IdentifierFactory } from "./helpers/IdentifierFactory";
|
|
24
|
+
export { LiteralFactory } from "./helpers/LiteralFactory";
|
|
25
|
+
export { StatementFactory } from "./helpers/StatementFactory";
|
|
26
|
+
export { TypeFactory } from "./helpers/TypeFactory";
|
|
27
|
+
|
|
28
|
+
export default nts;
|
package/src/nts.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { TypeScriptFactory } from "../TypeScriptFactory";
|
|
2
|
+
import { NodeFlags } from "../constants/NodeFlags";
|
|
3
|
+
import { SyntaxKind } from "../constants/SyntaxKind";
|
|
4
|
+
import type { Node } from "../structures/Node";
|
|
5
|
+
import { NodePrinter } from "./internal/NodePrinter";
|
|
6
|
+
|
|
7
|
+
export class TypeScriptPrinter {
|
|
8
|
+
private readonly printer: NodePrinter;
|
|
9
|
+
|
|
10
|
+
public constructor() {
|
|
11
|
+
this.printer = new NodePrinter();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
public printFile(file: Node): string {
|
|
15
|
+
return this.printer.printFile(file);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public printStatements(
|
|
19
|
+
statements: readonly Node[],
|
|
20
|
+
props: TypeScriptPrinter.IPrintStatementsProps = {},
|
|
21
|
+
): string {
|
|
22
|
+
const file = TypeScriptFactory.createSourceFile(
|
|
23
|
+
statements,
|
|
24
|
+
props.endOfFileToken ??
|
|
25
|
+
TypeScriptFactory.createToken(SyntaxKind.EndOfFileToken),
|
|
26
|
+
props.flags ?? NodeFlags.None,
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
return (props.top ?? "") + this.printFile(file);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
public printNode(_hint: unknown, node: Node, _sourceFile?: Node): string {
|
|
33
|
+
return this.printer.printNode(node);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
public static write(props: TypeScriptPrinter.IWriteProps): string {
|
|
37
|
+
return new TypeScriptPrinter().printStatements(props.statements, props);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export namespace TypeScriptPrinter {
|
|
42
|
+
export interface IPrintStatementsProps {
|
|
43
|
+
endOfFileToken?: Node;
|
|
44
|
+
flags?: number;
|
|
45
|
+
top?: string;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface IWriteProps extends IPrintStatementsProps {
|
|
49
|
+
statements: readonly Node[];
|
|
50
|
+
}
|
|
51
|
+
}
|