@idlizer/arktscgen 2.1.7 → 2.1.9-arktscgen-5
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/build/libarkts-copy/generator/options.json5 +34 -0
- package/build/libarkts-copy/native/meson.build +128 -75
- package/build/libarkts-copy/native/meson_options.txt +6 -0
- package/build/libarkts-copy/native/src/bridges.cc +271 -8
- package/build/libarkts-copy/native/src/common.cc +168 -47
- package/build/libarkts-copy/native/src/common.h +53 -8
- package/build/libarkts-copy/native/src/generated/bridges.cc +2625 -319
- package/build/libarkts-copy/package.json +31 -17
- package/build/libarkts-copy/src/Es2pandaNativeModule.ts +98 -4
- package/build/libarkts-copy/src/arkts-api/AbstractVisitor.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/ChainExpressionFilter.ts +78 -0
- package/build/libarkts-copy/src/arkts-api/CheckedBackFilter.ts +86 -8
- package/build/libarkts-copy/src/arkts-api/CompileWithCache.ts +193 -0
- package/build/libarkts-copy/src/arkts-api/ImportStorage.ts +78 -0
- package/build/libarkts-copy/src/arkts-api/InferVoidReturnType.ts +89 -0
- package/build/libarkts-copy/src/arkts-api/ProgramProvider.ts +50 -0
- package/build/libarkts-copy/src/arkts-api/SetBaseOverloads.ts +10 -17
- package/build/libarkts-copy/src/arkts-api/class-by-peer.ts +2 -3
- package/build/libarkts-copy/src/arkts-api/factory/nodeFactory.ts +18 -6
- package/build/libarkts-copy/src/arkts-api/index.ts +10 -1
- package/build/libarkts-copy/src/arkts-api/node-cache.ts +8 -4
- package/build/libarkts-copy/src/arkts-api/node-utilities/AnnotationUsage.ts +29 -0
- package/build/libarkts-copy/src/arkts-api/node-utilities/ArkTsConfig.ts +25 -0
- package/build/libarkts-copy/src/arkts-api/node-utilities/ArrayExpression.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/BlockStatement.ts +29 -0
- package/build/libarkts-copy/src/arkts-api/node-utilities/CallExpression.ts +2 -2
- package/build/libarkts-copy/src/arkts-api/node-utilities/ClassDeclaration.ts +54 -0
- package/build/libarkts-copy/src/arkts-api/node-utilities/ClassDefinition.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/ClassProperty.ts +3 -3
- package/build/libarkts-copy/src/arkts-api/node-utilities/ETSFunctionType.ts +2 -2
- package/build/libarkts-copy/src/arkts-api/node-utilities/ETSImportDeclaration.ts +3 -33
- package/build/libarkts-copy/src/arkts-api/node-utilities/ETSParameterExpression.ts +3 -9
- package/build/libarkts-copy/src/arkts-api/node-utilities/ETSStructDeclaration.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/ETSTuple.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/MemberExpression.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/MethodDefinition.ts +2 -2
- package/build/libarkts-copy/src/arkts-api/node-utilities/NumberLiteral.ts +2 -2
- package/build/libarkts-copy/src/arkts-api/node-utilities/ObjectExpression.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/Program.ts +40 -0
- package/build/libarkts-copy/src/arkts-api/node-utilities/TSInterfaceDeclaration.ts +2 -2
- package/build/libarkts-copy/src/arkts-api/node-utilities/TSTypeParameter.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/TSTypeReferencePart.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/VariableDeclaration.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/VariableDeclarator.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/peers/ArktsObject.ts +3 -1
- package/build/libarkts-copy/src/arkts-api/peers/AstNode.ts +80 -15
- package/build/libarkts-copy/src/arkts-api/peers/Config.ts +8 -1
- package/build/libarkts-copy/src/arkts-api/peers/Context.ts +71 -4
- package/build/libarkts-copy/src/arkts-api/peers/{Program.ts → ExternalSource.ts} +2 -22
- package/build/libarkts-copy/src/arkts-api/peers/Options.ts +34 -0
- package/build/libarkts-copy/src/arkts-api/plugins.ts +26 -12
- package/build/libarkts-copy/src/arkts-api/static/global.ts +10 -4
- package/build/libarkts-copy/src/arkts-api/static/profiler.ts +180 -23
- package/build/libarkts-copy/src/arkts-api/utilities/private.ts +22 -24
- package/build/libarkts-copy/src/arkts-api/utilities/public.ts +54 -12
- package/build/libarkts-copy/src/arkts-api/visitor.ts +32 -37
- package/build/libarkts-copy/src/arkts-api/wrapper-compat.ts +32 -0
- package/build/libarkts-copy/src/checkSdk.ts +25 -0
- package/build/libarkts-copy/src/generated/Es2pandaEnums.ts +450 -442
- package/build/libarkts-copy/src/generated/Es2pandaNativeModule.ts +769 -63
- package/build/libarkts-copy/src/generated/factory.ts +12 -15
- package/build/libarkts-copy/src/generated/index.ts +10 -3
- package/build/libarkts-copy/src/generated/peers/AnnotatedAstNode.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/AnnotatedExpression.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/AnnotatedStatement.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/AnnotationDeclaration.ts +64 -6
- package/build/libarkts-copy/src/generated/peers/AnnotationUsage.ts +16 -4
- package/build/libarkts-copy/src/generated/peers/ArkTsConfig.ts +67 -0
- package/build/libarkts-copy/src/generated/peers/ArrayExpression.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/ArrowFunctionExpression.ts +46 -6
- package/build/libarkts-copy/src/generated/peers/AssertStatement.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/AssignmentExpression.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/AstDumper.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/AstVerifier.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/AstVisitor.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/AwaitExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/BigIntLiteral.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/BinaryExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/BindingProps.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/BlockExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/BlockStatement.ts +30 -7
- package/build/libarkts-copy/src/generated/peers/BooleanLiteral.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/BreakStatement.ts +16 -4
- package/build/libarkts-copy/src/generated/peers/CallExpression.ts +24 -3
- package/build/libarkts-copy/src/generated/peers/CatchClause.ts +16 -4
- package/build/libarkts-copy/src/generated/peers/ChainExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/CharLiteral.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ClassDeclaration.ts +37 -4
- package/build/libarkts-copy/src/generated/peers/ClassDefinition.ts +136 -42
- package/build/libarkts-copy/src/generated/peers/ClassElement.ts +28 -4
- package/build/libarkts-copy/src/generated/peers/ClassExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ClassProperty.ts +43 -5
- package/build/libarkts-copy/src/generated/peers/ClassStaticBlock.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/CodeGen.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/ConditionalExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ContinueStatement.ts +16 -4
- package/build/libarkts-copy/src/generated/peers/DebuggerStatement.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/Declaration.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/Decorator.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/{OverloadInfo.ts → DiagnosticInfo.ts} +8 -2
- package/build/libarkts-copy/src/generated/peers/DirectEvalExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/DoWhileStatement.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/DynamicImportData.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/ETSClassLiteral.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSFunctionType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSImportDeclaration.ts +20 -5
- package/build/libarkts-copy/src/generated/peers/ETSKeyofType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSModule.ts +63 -4
- package/build/libarkts-copy/src/generated/peers/ETSNewArrayInstanceExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSNewClassInstanceExpression.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/ETSNewMultiDimArrayInstanceExpression.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/ETSNullType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSPackageDeclaration.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSParameterExpression.ts +54 -12
- package/build/libarkts-copy/src/generated/peers/ETSPrimitiveType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSReExportDeclaration.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/ETSStringLiteralType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSStructDeclaration.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSTuple.ts +26 -8
- package/build/libarkts-copy/src/generated/peers/ETSTypeReference.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSTypeReferencePart.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/ETSUndefinedType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSUnionType.ts +19 -4
- package/build/libarkts-copy/src/generated/peers/ETSWildcardType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/EmptyStatement.ts +22 -4
- package/build/libarkts-copy/src/generated/peers/ErrorLogger.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/ExportAllDeclaration.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ExportDefaultDeclaration.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ExportNamedDeclaration.ts +30 -7
- package/build/libarkts-copy/src/generated/peers/ExportSpecifier.ts +30 -3
- package/build/libarkts-copy/src/generated/peers/Expression.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/ExpressionStatement.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ForInStatement.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ForOfStatement.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ForUpdateStatement.ts +10 -2
- package/build/libarkts-copy/src/generated/peers/FunctionDecl.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/FunctionDeclaration.ts +50 -6
- package/build/libarkts-copy/src/generated/peers/FunctionExpression.ts +16 -4
- package/build/libarkts-copy/src/generated/peers/FunctionSignature.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/IRNode.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/Identifier.ts +24 -5
- package/build/libarkts-copy/src/generated/peers/IfStatement.ts +18 -3
- package/build/libarkts-copy/src/generated/peers/ImportDeclaration.ts +32 -4
- package/build/libarkts-copy/src/generated/peers/ImportDefaultSpecifier.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ImportExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ImportNamespaceSpecifier.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ImportSource.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/ImportSpecifier.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/IndexInfo.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/InterfaceDecl.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/LabelPair.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/LabelledStatement.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/Literal.ts +15 -1
- package/build/libarkts-copy/src/generated/peers/LoopStatement.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/MaybeOptionalExpression.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/MemberExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/MetaProperty.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/MethodDefinition.ts +30 -10
- package/build/libarkts-copy/src/generated/peers/NamedType.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/NewExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/NullLiteral.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/NumberLiteral.ts +25 -9
- package/build/libarkts-copy/src/generated/peers/ObjectDescriptor.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/ObjectExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/OmittedExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/OpaqueTypeNode.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/PrefixAssertionExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/Program.ts +189 -0
- package/build/libarkts-copy/src/generated/peers/Property.ts +16 -4
- package/build/libarkts-copy/src/generated/peers/RegExpLiteral.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ReturnStatement.ts +16 -4
- package/build/libarkts-copy/src/generated/peers/ScopeFindResult.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/ScriptFunction.ts +81 -10
- package/build/libarkts-copy/src/generated/peers/ScriptFunctionData.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/SequenceExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/SignatureInfo.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/SourcePosition.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/SourceRange.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/SpreadElement.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/SrcDumper.ts +46 -9
- package/build/libarkts-copy/src/generated/peers/Statement.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/StringLiteral.ts +16 -4
- package/build/libarkts-copy/src/generated/peers/{ETSDynamicFunctionType.ts → SuggestionInfo.ts} +7 -5
- package/build/libarkts-copy/src/generated/peers/SuperExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/SwitchCaseStatement.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/SwitchStatement.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSAnyKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSArrayType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSAsExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSBigintKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSBooleanKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSClassImplements.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/TSConditionalType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSConstructorType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSEnumDeclaration.ts +52 -6
- package/build/libarkts-copy/src/generated/peers/TSEnumMember.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/TSExternalModuleReference.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSFunctionType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSImportEqualsDeclaration.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSImportType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSIndexSignature.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSIndexedAccessType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSInferType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSInterfaceBody.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSInterfaceDeclaration.ts +82 -8
- package/build/libarkts-copy/src/generated/peers/TSInterfaceHeritage.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSIntersectionType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSLiteralType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSMappedType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSMethodSignature.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSModuleBlock.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSModuleDeclaration.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSNamedTupleMember.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSNeverKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSNonNullExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSNullKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSNumberKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSObjectKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSParameterProperty.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSParenthesizedType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSPropertySignature.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSQualifiedName.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSSignatureDeclaration.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSStringKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSThisType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSTupleType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSTypeAliasDeclaration.ts +59 -6
- package/build/libarkts-copy/src/generated/peers/TSTypeAssertion.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSTypeLiteral.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSTypeOperator.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSTypeParameter.ts +47 -7
- package/build/libarkts-copy/src/generated/peers/TSTypeParameterDeclaration.ts +19 -4
- package/build/libarkts-copy/src/generated/peers/TSTypeParameterInstantiation.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSTypePredicate.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSTypeQuery.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSTypeReference.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSUndefinedKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSUnionType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSUnknownKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSVoidKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TaggedTemplateExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TemplateElement.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/TemplateLiteral.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ThisExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ThrowStatement.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TryStatement.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/TypeNode.ts +37 -3
- package/build/libarkts-copy/src/generated/peers/TypedAstNode.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/TypedStatement.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/TypeofExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/UnaryExpression.ts +19 -4
- package/build/libarkts-copy/src/generated/peers/UndefinedLiteral.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/UpdateExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/VReg.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/ValidationInfo.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/VariableDeclaration.ts +52 -8
- package/build/libarkts-copy/src/generated/peers/VariableDeclarator.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/VerificationContext.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/VerifierMessage.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/WhileStatement.ts +19 -4
- package/build/libarkts-copy/src/generated/peers/YieldExpression.ts +14 -4
- package/build/libarkts-copy/src/index.ts +13 -1
- package/build/libarkts-copy/src/plugin-utils.ts +117 -0
- package/build/libarkts-copy/src/utils.ts +17 -28
- package/build/libarkts-copy/src/wrapper-compat/README.md +16 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/class-by-peer.ts +46 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/factory/nodeFactory.ts +454 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/factory/nodeTests.ts +99 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/index.ts +88 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ArrayExpression.ts +38 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ArrowFunctionExpression.ts +35 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/AssignmentExpression.ts +38 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/BlockStatement.ts +27 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/CallExpression.ts +45 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ClassDeclaration.ts +27 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ClassDefinition.ts +73 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ClassProperty.ts +51 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ETSFunctionType.ts +42 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ETSImportDeclaration.ts +39 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ETSParameterExpression.ts +43 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ExpressionStatement.ts +28 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/FunctionDeclaration.ts +37 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/FunctionExpression.ts +28 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/IfStatement.ts +37 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/MemberExpression.ts +42 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/MethodDefinition.ts +46 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/NumberLiteral.ts +30 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ObjectExpression.ts +37 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/Property.ts +27 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ScriptFunction.ts +46 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/StructDeclaration.ts +28 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TSInterfaceDeclaration.ts +47 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TSTypeAliasDeclaration.ts +40 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TSTypeParameter.ts +36 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TryStatement.ts +41 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/VariableDeclaration.ts +42 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/VariableDeclarator.ts +39 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/ArktsObject.ts +45 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/AstNode.ts +26 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Config.ts +53 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Context.ts +60 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Diagnostic.ts +39 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/DiagnosticInfo.ts +33 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/DiagnosticKind.ts +33 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/ImportPathManager.ts +34 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Program.ts +105 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/SourcePosition.ts +38 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/SourceRange.ts +38 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/SuggestionInfo.ts +33 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/static/global.ts +16 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/static/globalUtils.ts +27 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/to-be-generated/MemberExpression.ts +108 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/types.ts +907 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/nativePtrDecoder.ts +69 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/performance.ts +190 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/private.ts +198 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/public.ts +325 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/visitor.ts +421 -0
- package/build/libarkts-copy/src/wrapper-compat/index.ts +20 -0
- package/lib/index.js +330 -149
- package/package.json +2 -2
- package/templates/Es2pandaEnums.ts +4 -0
- package/templates/Es2pandaNativeModule.ts +5 -1
- package/templates/factory.ts +5 -1
- package/templates/index.ts +5 -1
- package/templates/node-map.ts +5 -1
- package/templates/peer.ts +5 -1
- package/build/libarkts-copy/README.md +0 -36
|
@@ -15,43 +15,16 @@
|
|
|
15
15
|
|
|
16
16
|
import { ETSImportDeclaration, StringLiteral } from "../../generated"
|
|
17
17
|
import { isSameNativeObject } from "../peers/ArktsObject"
|
|
18
|
-
import {
|
|
18
|
+
import { updateNodeByNode } from "../utilities/private"
|
|
19
19
|
import { AstNode } from "../peers/AstNode"
|
|
20
|
-
import {
|
|
21
|
-
import { global } from "../static/global"
|
|
22
|
-
import { Program } from "../peers/Program"
|
|
23
|
-
|
|
24
|
-
export function createETSImportDeclaration(
|
|
25
|
-
source: StringLiteral | undefined,
|
|
26
|
-
specifiers: readonly AstNode[],
|
|
27
|
-
importKind: Es2pandaImportKinds,
|
|
28
|
-
program: Program,
|
|
29
|
-
flags: Es2pandaImportFlags
|
|
30
|
-
) {
|
|
31
|
-
// TODO: check that plugin is on parsed stage
|
|
32
|
-
const res = unpackNonNullableNode(
|
|
33
|
-
global.es2panda._ETSParserBuildImportDeclaration(
|
|
34
|
-
global.context,
|
|
35
|
-
importKind,
|
|
36
|
-
passNodeArray(specifiers),
|
|
37
|
-
specifiers.length,
|
|
38
|
-
passNode(source),
|
|
39
|
-
program.peer,
|
|
40
|
-
flags
|
|
41
|
-
)
|
|
42
|
-
)
|
|
43
|
-
global.es2panda._InsertETSImportDeclarationAndParse(global.context, program.peer, res.peer)
|
|
44
|
-
// return new ETSImportDeclaration(res.peer)
|
|
45
|
-
// according to es2panda developers, import declaration is added to ast by compiler
|
|
46
|
-
}
|
|
20
|
+
import { Es2pandaImportKinds } from "../../generated/Es2pandaEnums"
|
|
47
21
|
|
|
48
22
|
export function updateETSImportDeclaration(
|
|
49
23
|
original: ETSImportDeclaration,
|
|
50
24
|
source: StringLiteral | undefined,
|
|
51
25
|
specifiers: readonly AstNode[],
|
|
52
26
|
importKind: Es2pandaImportKinds
|
|
53
|
-
) {
|
|
54
|
-
throw new Error("Do not update imports, insert them instead")
|
|
27
|
+
): ETSImportDeclaration {
|
|
55
28
|
if (isSameNativeObject(source, original.source)
|
|
56
29
|
&& isSameNativeObject(specifiers, original.specifiers)
|
|
57
30
|
/* no getter for importKind */
|
|
@@ -59,11 +32,8 @@ export function updateETSImportDeclaration(
|
|
|
59
32
|
/* TODO: probably should set importMetadata, but no getter provided yet */
|
|
60
33
|
return original
|
|
61
34
|
}
|
|
62
|
-
/*
|
|
63
35
|
return updateNodeByNode(
|
|
64
36
|
ETSImportDeclaration.createETSImportDeclaration(source, specifiers, importKind),
|
|
65
37
|
original
|
|
66
38
|
)
|
|
67
|
-
*/
|
|
68
|
-
return original
|
|
69
39
|
}
|
|
@@ -21,16 +21,12 @@ export function createETSParameterExpression(
|
|
|
21
21
|
identOrSpread: AnnotatedExpression | undefined,
|
|
22
22
|
isOptional: boolean,
|
|
23
23
|
initExpr?: Expression,
|
|
24
|
-
typeAnnotation?: TypeNode,
|
|
25
24
|
annotations?: readonly AnnotationUsage[]
|
|
26
|
-
) {
|
|
25
|
+
): ETSParameterExpression {
|
|
27
26
|
const res = ETSParameterExpression.createETSParameterExpression(identOrSpread, isOptional)
|
|
28
27
|
if (initExpr) {
|
|
29
28
|
res.setInitializer(initExpr)
|
|
30
29
|
}
|
|
31
|
-
if (typeAnnotation) {
|
|
32
|
-
res.setTypeAnnotation(typeAnnotation)
|
|
33
|
-
}
|
|
34
30
|
if (annotations) {
|
|
35
31
|
res.setAnnotations(annotations)
|
|
36
32
|
}
|
|
@@ -42,19 +38,17 @@ export function updateETSParameterExpression(
|
|
|
42
38
|
identOrSpread: AnnotatedExpression | undefined,
|
|
43
39
|
isOptional: boolean,
|
|
44
40
|
initExpr?: Expression,
|
|
45
|
-
typeAnnotation?: TypeNode,
|
|
46
41
|
annotations?: readonly AnnotationUsage[],
|
|
47
|
-
) {
|
|
42
|
+
): ETSParameterExpression {
|
|
48
43
|
if ((isSameNativeObject(identOrSpread, original.ident) || isSameNativeObject(identOrSpread, original.restParameter))
|
|
49
44
|
&& isSameNativeObject(isOptional, original.isOptional)
|
|
50
45
|
&& isSameNativeObject(initExpr, original.initializer)
|
|
51
|
-
&& isSameNativeObject(typeAnnotation, original.typeAnnotation)
|
|
52
46
|
&& isSameNativeObject(annotations, original.annotations)
|
|
53
47
|
) {
|
|
54
48
|
return original
|
|
55
49
|
}
|
|
56
50
|
return updateNodeByNode(
|
|
57
|
-
createETSParameterExpression(identOrSpread, isOptional, initExpr,
|
|
51
|
+
createETSParameterExpression(identOrSpread, isOptional, initExpr, annotations),
|
|
58
52
|
original
|
|
59
53
|
)
|
|
60
54
|
}
|
|
@@ -20,7 +20,7 @@ import { updateNodeByNode } from "../utilities/private"
|
|
|
20
20
|
export function updateETSStructDeclaration(
|
|
21
21
|
original: ETSStructDeclaration,
|
|
22
22
|
def?: ClassDefinition
|
|
23
|
-
) {
|
|
23
|
+
): ETSStructDeclaration {
|
|
24
24
|
if (isSameNativeObject(def, original.definition)) {
|
|
25
25
|
return original
|
|
26
26
|
}
|
|
@@ -20,7 +20,7 @@ import { updateNodeByNode } from "../utilities/private"
|
|
|
20
20
|
export function updateETSTuple(
|
|
21
21
|
original: ETSTuple,
|
|
22
22
|
typeList: readonly TypeNode[]
|
|
23
|
-
) {
|
|
23
|
+
): ETSTuple {
|
|
24
24
|
if (isSameNativeObject(typeList, original.tupleTypeAnnotationsList)) {
|
|
25
25
|
return original
|
|
26
26
|
}
|
|
@@ -25,7 +25,7 @@ export function updateMemberExpression(
|
|
|
25
25
|
kind: Es2pandaMemberExpressionKind,
|
|
26
26
|
computed: boolean,
|
|
27
27
|
optional_arg: boolean
|
|
28
|
-
) {
|
|
28
|
+
): MemberExpression {
|
|
29
29
|
if (isSameNativeObject(object_arg, original.object)
|
|
30
30
|
&& isSameNativeObject(property, original.property)
|
|
31
31
|
&& isSameNativeObject(kind, original.kind)
|
|
@@ -29,7 +29,7 @@ export function createMethodDefinition(
|
|
|
29
29
|
modifiers: Es2pandaModifierFlags,
|
|
30
30
|
isComputed: boolean,
|
|
31
31
|
overloads?: readonly MethodDefinition[]
|
|
32
|
-
) {
|
|
32
|
+
): MethodDefinition {
|
|
33
33
|
const res = MethodDefinition.createMethodDefinition(
|
|
34
34
|
kind,
|
|
35
35
|
key,
|
|
@@ -51,7 +51,7 @@ export function updateMethodDefinition(
|
|
|
51
51
|
modifiers: Es2pandaModifierFlags,
|
|
52
52
|
isComputed: boolean,
|
|
53
53
|
overloads?: readonly MethodDefinition[]
|
|
54
|
-
) {
|
|
54
|
+
): MethodDefinition {
|
|
55
55
|
if (isSameNativeObject(kind, original.kind)
|
|
56
56
|
&& isSameNativeObject(key, original.key)
|
|
57
57
|
&& isSameNativeObject(value, original.value)
|
|
@@ -20,7 +20,7 @@ import { updateNodeByNode } from "../utilities/private"
|
|
|
20
20
|
|
|
21
21
|
export function createNumberLiteral(
|
|
22
22
|
value: number
|
|
23
|
-
) {
|
|
23
|
+
): NumberLiteral {
|
|
24
24
|
return new NumberLiteral(
|
|
25
25
|
global.es2panda._CreateNumberLiteral(
|
|
26
26
|
global.context,
|
|
@@ -32,7 +32,7 @@ export function createNumberLiteral(
|
|
|
32
32
|
export function updateNumberLiteral(
|
|
33
33
|
original: NumberLiteral,
|
|
34
34
|
value: number
|
|
35
|
-
) {
|
|
35
|
+
): NumberLiteral {
|
|
36
36
|
if (isSameNativeObject(value.toString(), original.str)) {
|
|
37
37
|
return original
|
|
38
38
|
}
|
|
@@ -20,7 +20,7 @@ import { nodeType, updateNodeByNode } from "../utilities/private"
|
|
|
20
20
|
export function updateObjectExpression(
|
|
21
21
|
original: ObjectExpression,
|
|
22
22
|
properties: readonly Expression[]
|
|
23
|
-
) {
|
|
23
|
+
): ObjectExpression {
|
|
24
24
|
if (isSameNativeObject(properties, original.properties)){
|
|
25
25
|
return original
|
|
26
26
|
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
|
3
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License.
|
|
5
|
+
* You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
* See the License for the specific language governing permissions and
|
|
13
|
+
* limitations under the License.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import { ExternalSource } from "../peers/ExternalSource"
|
|
17
|
+
import { acceptNativeObjectArrayResult } from "../utilities/private"
|
|
18
|
+
import { KNativePointer } from "@koalaui/interop"
|
|
19
|
+
import { global } from "../static/global"
|
|
20
|
+
import { Program } from "../../generated"
|
|
21
|
+
|
|
22
|
+
export function programGetExternalSources(program: Program, context: KNativePointer = global.context): ExternalSource[] {
|
|
23
|
+
return acceptNativeObjectArrayResult<ExternalSource>(
|
|
24
|
+
global.es2panda._ProgramExternalSources(context, program.peer),
|
|
25
|
+
(instance: KNativePointer) => new ExternalSource(instance)
|
|
26
|
+
)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function dumpProgramInfo(program: Program) {
|
|
30
|
+
console.log(`Program info:`)
|
|
31
|
+
console.log(`\tAbsoluteName: ${program.absoluteName}`)
|
|
32
|
+
console.log(`\tFileName: ${program.fileName}`)
|
|
33
|
+
console.log(`\tFileNameWithExtension: ${program.fileNameWithExtension}`)
|
|
34
|
+
console.log(`\tModuleName: ${program.moduleName}`)
|
|
35
|
+
console.log(`\tModulePrefix: ${program.modulePrefix}`)
|
|
36
|
+
console.log(`\tRelativeFilePath: ${program.relativeFilePath}`)
|
|
37
|
+
console.log(`\tResolvedFilePath: ${program.resolvedFilePath}`)
|
|
38
|
+
console.log(`\tSourceFileFolder: ${program.sourceFileFolder}`)
|
|
39
|
+
console.log(`\tSourceFilePath: ${program.sourceFilePath}`)
|
|
40
|
+
}
|
|
@@ -31,7 +31,7 @@ export function createTSInterfaceDeclaration(
|
|
|
31
31
|
isStatic: boolean,
|
|
32
32
|
isExternal: boolean,
|
|
33
33
|
modifierFlags?: Es2pandaModifierFlags,
|
|
34
|
-
) {
|
|
34
|
+
): TSInterfaceDeclaration {
|
|
35
35
|
const res = TSInterfaceDeclaration.createTSInterfaceDeclaration(
|
|
36
36
|
_extends,
|
|
37
37
|
id,
|
|
@@ -55,7 +55,7 @@ export function updateTSInterfaceDeclaration(
|
|
|
55
55
|
isStatic: boolean,
|
|
56
56
|
isExternal: boolean,
|
|
57
57
|
modifierFlags?: Es2pandaModifierFlags,
|
|
58
|
-
) {
|
|
58
|
+
): TSInterfaceDeclaration {
|
|
59
59
|
if (isSameNativeObject(_extends, original.extends)
|
|
60
60
|
&& isSameNativeObject(id, original.id)
|
|
61
61
|
&& isSameNativeObject(typeParams, original.typeParams)
|
|
@@ -24,7 +24,7 @@ export function updateTSTypeParameter(
|
|
|
24
24
|
constraint: TypeNode | undefined,
|
|
25
25
|
defaultType: TypeNode | undefined,
|
|
26
26
|
flags: Es2pandaModifierFlags
|
|
27
|
-
) {
|
|
27
|
+
): TSTypeParameter {
|
|
28
28
|
if (isSameNativeObject(name, original.name)
|
|
29
29
|
&& isSameNativeObject(constraint, original.constraint)
|
|
30
30
|
&& isSameNativeObject(defaultType, original.defaultType)
|
|
@@ -22,7 +22,7 @@ export function updateETSTypeReferencePart(
|
|
|
22
22
|
name?: Expression,
|
|
23
23
|
typeParams?: TSTypeParameterInstantiation,
|
|
24
24
|
prev?: ETSTypeReferencePart
|
|
25
|
-
) {
|
|
25
|
+
): ETSTypeReferencePart {
|
|
26
26
|
if (isSameNativeObject(name, original.name)
|
|
27
27
|
&& isSameNativeObject(typeParams, original.typeParams)
|
|
28
28
|
&& isSameNativeObject(prev, original.previous)
|
|
@@ -40,7 +40,7 @@ export function updateVariableDeclaration(
|
|
|
40
40
|
kind: Es2pandaVariableDeclarationKind,
|
|
41
41
|
declarators: readonly VariableDeclarator[],
|
|
42
42
|
annotations?: readonly AnnotationUsage[]
|
|
43
|
-
) {
|
|
43
|
+
): VariableDeclaration {
|
|
44
44
|
if (isSameNativeObject(kind, original.kind)
|
|
45
45
|
&& isSameNativeObject(declarators, original.declarators)
|
|
46
46
|
&& isSameNativeObject(annotations, original.annotations)
|
|
@@ -23,7 +23,7 @@ export function updateVariableDeclarator(
|
|
|
23
23
|
flag: Es2pandaVariableDeclaratorFlag,
|
|
24
24
|
ident?: Expression,
|
|
25
25
|
init?: Expression
|
|
26
|
-
) {
|
|
26
|
+
): VariableDeclarator {
|
|
27
27
|
if (isSameNativeObject(flag, original.flag)
|
|
28
28
|
&& isSameNativeObject(ident, original.id)
|
|
29
29
|
&& isSameNativeObject(init, original.init)
|
|
@@ -20,7 +20,9 @@ export abstract class ArktsObject {
|
|
|
20
20
|
this.peer = peer
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
peer: KNativePointer
|
|
24
|
+
|
|
25
|
+
public onUpdate(node: ArktsObject) {}
|
|
24
26
|
}
|
|
25
27
|
|
|
26
28
|
export function isSameNativeObject<T extends ArktsObject | number | string | boolean | undefined>(
|
|
@@ -19,15 +19,18 @@ import { allFlags, unpackNodeArray, unpackNonNullableNode, unpackString } from "
|
|
|
19
19
|
import { throwError } from "../../utils"
|
|
20
20
|
import { Es2pandaModifierFlags } from "../../generated/Es2pandaEnums"
|
|
21
21
|
import { ArktsObject } from "./ArktsObject"
|
|
22
|
+
import { SourcePosition } from "./SourcePosition"
|
|
23
|
+
import { NodeCache } from "../node-cache"
|
|
22
24
|
|
|
23
25
|
export abstract class AstNode extends ArktsObject {
|
|
24
26
|
protected constructor(peer: KNativePointer) {
|
|
25
|
-
global.profiler.
|
|
27
|
+
global.profiler.nodeCreated()
|
|
26
28
|
if (isNullPtr(peer)) {
|
|
27
29
|
throwError(`attempted to create AstNode from nullptr`)
|
|
28
30
|
}
|
|
29
31
|
super(peer)
|
|
30
|
-
this.
|
|
32
|
+
this.setChildrenParentPtr()
|
|
33
|
+
NodeCache.addToCache(peer, this)
|
|
31
34
|
}
|
|
32
35
|
|
|
33
36
|
public get originalPeer(): KNativePointer {
|
|
@@ -56,11 +59,12 @@ export abstract class AstNode extends ArktsObject {
|
|
|
56
59
|
)
|
|
57
60
|
}
|
|
58
61
|
|
|
59
|
-
public
|
|
62
|
+
public setChildrenParentPtr(): this {
|
|
60
63
|
if (this.peer === nullptr) {
|
|
61
|
-
throwError('
|
|
64
|
+
throwError('AstNodeSetChildrenParentPtr called on NULLPTR')
|
|
62
65
|
}
|
|
63
|
-
global.es2panda.
|
|
66
|
+
global.es2panda._AstNodeSetChildrenParentPtr(global.context, this.peer)
|
|
67
|
+
return this
|
|
64
68
|
}
|
|
65
69
|
|
|
66
70
|
public updateModifiers(modifierFlags: KInt | undefined): this {
|
|
@@ -95,20 +99,37 @@ export abstract class AstNode extends ArktsObject {
|
|
|
95
99
|
return unpackString(global.es2panda._AstNodeDumpModifiers(global.context, this.peer))
|
|
96
100
|
}
|
|
97
101
|
|
|
102
|
+
// public clone(): this {
|
|
103
|
+
// return unpackNonNullableNode(global.generatedEs2panda._AstNodeClone(global.context, this.peer, this.parent.peer));
|
|
104
|
+
// }
|
|
105
|
+
|
|
106
|
+
// public get parent(): AstNode {
|
|
107
|
+
// const parent = global.generatedEs2panda._AstNodeParent(global.context, this.peer)
|
|
108
|
+
// if (parent === nullptr) {
|
|
109
|
+
// throwError(`no parent`)
|
|
110
|
+
// }
|
|
111
|
+
// return unpackNonNullableNode(parent)
|
|
112
|
+
// }
|
|
113
|
+
|
|
114
|
+
// public set parent(node: AstNode) {
|
|
115
|
+
// global.generatedEs2panda._AstNodeSetParent(global.context, this.peer, node.peer)
|
|
116
|
+
// }
|
|
117
|
+
|
|
98
118
|
public clone(): this {
|
|
99
|
-
|
|
119
|
+
const clonedNode = unpackNonNullableNode(
|
|
120
|
+
global.generatedEs2panda._AstNodeClone(global.context, this.peer, this.parent?.peer ?? nullptr)
|
|
121
|
+
);
|
|
122
|
+
clonedNode.parent = undefined;
|
|
123
|
+
return clonedNode as this;
|
|
100
124
|
}
|
|
101
|
-
|
|
102
|
-
public get parent(): AstNode {
|
|
103
|
-
const parent = global.generatedEs2panda._AstNodeParent(global.context, this.peer)
|
|
104
|
-
|
|
105
|
-
throwError(`no parent`)
|
|
106
|
-
}
|
|
107
|
-
return unpackNonNullableNode(parent)
|
|
125
|
+
|
|
126
|
+
public get parent(): AstNode | undefined {
|
|
127
|
+
const parent = global.generatedEs2panda._AstNodeParent(global.context, this.peer);
|
|
128
|
+
return unpackNonNullableNode(parent);
|
|
108
129
|
}
|
|
109
130
|
|
|
110
|
-
public set parent(node: AstNode) {
|
|
111
|
-
global.generatedEs2panda._AstNodeSetParent(global.context, this.peer, node
|
|
131
|
+
public set parent(node: AstNode | undefined) {
|
|
132
|
+
global.generatedEs2panda._AstNodeSetParent(global.context, this.peer, node?.peer ?? nullptr);
|
|
112
133
|
}
|
|
113
134
|
|
|
114
135
|
public get modifierFlags(): Es2pandaModifierFlags {
|
|
@@ -119,4 +140,48 @@ export abstract class AstNode extends ArktsObject {
|
|
|
119
140
|
global.generatedEs2panda._AstNodeClearModifier(global.context, this.peer, allFlags)
|
|
120
141
|
global.generatedEs2panda._AstNodeAddModifier(global.context, this.peer, flags ?? Es2pandaModifierFlags.MODIFIER_FLAGS_NONE)
|
|
121
142
|
}
|
|
143
|
+
|
|
144
|
+
/** @deprecated Use {@link modifierFlags} instead */
|
|
145
|
+
public get modifiers(): KInt {
|
|
146
|
+
return this.modifierFlags
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/** @deprecated Use {@link modifierFlags} instead */
|
|
150
|
+
public set modifiers(flags: KInt | undefined) {
|
|
151
|
+
this.modifierFlags = flags
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
public override onUpdate(node: AstNode): void {
|
|
155
|
+
// TODO Update modifiers only for specific AST nodes in the generated factory code
|
|
156
|
+
node.modifierFlags = this.modifierFlags
|
|
157
|
+
global.generatedEs2panda._AstNodeSetOriginalNode(global.context, node.peer, this.originalPeer)
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
public get isExport(): boolean {
|
|
161
|
+
return global.generatedEs2panda._AstNodeIsExportedConst(global.context, this.peer);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
public get isDefaultExport(): boolean {
|
|
165
|
+
return global.generatedEs2panda._AstNodeIsDefaultExportedConst(global.context, this.peer);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
public get isStatic(): boolean {
|
|
169
|
+
return global.generatedEs2panda._AstNodeIsStaticConst(global.context, this.peer);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
public get startPosition(): SourcePosition {
|
|
173
|
+
return new SourcePosition(global.generatedEs2panda._AstNodeStartConst(global.context, this.peer));
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
public set startPosition(start: SourcePosition) {
|
|
177
|
+
global.generatedEs2panda._AstNodeSetStart(global.context, this.peer, start.peer);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
public get endPosition(): SourcePosition {
|
|
181
|
+
return new SourcePosition(global.generatedEs2panda._AstNodeEndConst(global.context, this.peer));
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
public set endPosition(end: SourcePosition) {
|
|
185
|
+
global.generatedEs2panda._AstNodeSetEnd(global.context, this.peer, end.peer);
|
|
186
|
+
}
|
|
122
187
|
}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
import { ArktsObject } from "./ArktsObject"
|
|
17
17
|
import { global } from "../static/global"
|
|
18
18
|
import { passStringArray } from "../utilities/private"
|
|
19
|
-
import { KNativePointer } from "@koalaui/interop"
|
|
19
|
+
import { KNativePointer, nullptr } from "@koalaui/interop"
|
|
20
20
|
|
|
21
21
|
export class Config extends ArktsObject {
|
|
22
22
|
constructor(peer: KNativePointer) {
|
|
@@ -48,5 +48,12 @@ export class Config extends ArktsObject {
|
|
|
48
48
|
)
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
destroy() {
|
|
52
|
+
if (this.peer != nullptr) {
|
|
53
|
+
global.es2panda._DestroyConfig(this.peer)
|
|
54
|
+
this.peer = nullptr
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
51
58
|
readonly path: string
|
|
52
59
|
}
|
|
@@ -14,10 +14,11 @@
|
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
import { ArktsObject } from "./ArktsObject"
|
|
17
|
-
import { Program } from "
|
|
17
|
+
import { Program } from "../../generated"
|
|
18
18
|
import { global } from "../static/global"
|
|
19
|
-
import { passString } from "../utilities/private"
|
|
20
|
-
import { KNativePointer } from "@koalaui/interop"
|
|
19
|
+
import { passString, passStringArray } from "../utilities/private"
|
|
20
|
+
import { KNativePointer, nullptr } from "@koalaui/interop"
|
|
21
|
+
import { Config } from "./Config"
|
|
21
22
|
|
|
22
23
|
export class Context extends ArktsObject {
|
|
23
24
|
constructor(peer: KNativePointer) {
|
|
@@ -39,7 +40,73 @@ export class Context extends ArktsObject {
|
|
|
39
40
|
)
|
|
40
41
|
}
|
|
41
42
|
|
|
43
|
+
static createFromFile(filePath: string, configPath: string, stdlibPath: string, outputPath: string): Context | undefined {
|
|
44
|
+
const config = Config.create([
|
|
45
|
+
"",
|
|
46
|
+
"--arktsconfig",
|
|
47
|
+
configPath,
|
|
48
|
+
'--extension',
|
|
49
|
+
'ets',
|
|
50
|
+
'--stdlib',
|
|
51
|
+
stdlibPath,
|
|
52
|
+
filePath,
|
|
53
|
+
'--output',
|
|
54
|
+
outputPath,
|
|
55
|
+
])
|
|
56
|
+
return new Context(
|
|
57
|
+
global.es2panda._CreateContextFromFile(
|
|
58
|
+
config.peer,
|
|
59
|
+
passString(filePath)
|
|
60
|
+
)
|
|
61
|
+
)
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
static createCacheFromFile(filePath: string, config: Config, globalContext: GlobalContext, isExternal: boolean) {
|
|
65
|
+
return new Context(
|
|
66
|
+
global.es2panda._CreateCacheContextFromFile(
|
|
67
|
+
config.peer,
|
|
68
|
+
passString(filePath),
|
|
69
|
+
globalContext.peer,
|
|
70
|
+
isExternal
|
|
71
|
+
)
|
|
72
|
+
)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
destroy() {
|
|
77
|
+
if (this.peer != nullptr) {
|
|
78
|
+
global.es2panda._DestroyContext(this.peer)
|
|
79
|
+
this.peer = nullptr
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
42
83
|
get program(): Program {
|
|
43
84
|
return new Program(global.es2panda._ContextProgram(this.peer));
|
|
44
85
|
}
|
|
45
|
-
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export class GlobalContext extends ArktsObject {
|
|
89
|
+
static create(
|
|
90
|
+
config: Config, externalFileList: string[]
|
|
91
|
+
): GlobalContext {
|
|
92
|
+
return new GlobalContext(
|
|
93
|
+
global.es2panda._CreateGlobalContext(
|
|
94
|
+
config.peer,
|
|
95
|
+
passStringArray(externalFileList),
|
|
96
|
+
externalFileList.length,
|
|
97
|
+
false
|
|
98
|
+
)
|
|
99
|
+
)
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
constructor(peer: KNativePointer) {
|
|
103
|
+
super(peer)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
destroy() {
|
|
107
|
+
if (this.peer != nullptr) {
|
|
108
|
+
global.es2panda._DestroyGlobalContext(this.peer)
|
|
109
|
+
this.peer = nullptr
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
@@ -13,31 +13,11 @@
|
|
|
13
13
|
* limitations under the License.
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
import { ArktsObject } from "./ArktsObject"
|
|
17
16
|
import { global } from "../static/global"
|
|
18
17
|
import { acceptNativeObjectArrayResult, unpackString } from "../utilities/private"
|
|
19
18
|
import { KNativePointer, nullptr } from "@koalaui/interop"
|
|
20
|
-
import {
|
|
21
|
-
|
|
22
|
-
export class Program extends ArktsObject {
|
|
23
|
-
constructor(peer: KNativePointer) {
|
|
24
|
-
super(peer)
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
get astNode(): ETSModule {
|
|
28
|
-
let program = global.es2panda._ProgramAst(global.context, this.peer)
|
|
29
|
-
if (program == nullptr) throw new Error(`astNode() cannt get AST`)
|
|
30
|
-
return new ETSModule(program)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
get externalSources(): ExternalSource[] {
|
|
34
|
-
return acceptNativeObjectArrayResult<ExternalSource>(
|
|
35
|
-
global.es2panda._ProgramExternalSources(global.context, this.peer),
|
|
36
|
-
(instance: KNativePointer) => new ExternalSource(instance)
|
|
37
|
-
)
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
}
|
|
19
|
+
import { Program } from "../../generated"
|
|
20
|
+
import { ArktsObject } from "./ArktsObject"
|
|
41
21
|
|
|
42
22
|
export class ExternalSource extends ArktsObject {
|
|
43
23
|
constructor(peer: KNativePointer) {
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025 Huawei Device Co., Ltd.
|
|
3
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License.
|
|
5
|
+
* You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
* See the License for the specific language governing permissions and
|
|
13
|
+
* limitations under the License.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import { KNativePointer } from "@koalaui/interop"
|
|
17
|
+
import { ArktsObject } from "./ArktsObject"
|
|
18
|
+
import { global } from "../static/global"
|
|
19
|
+
import { Config } from "./Config"
|
|
20
|
+
import { ArkTsConfig } from "../../generated"
|
|
21
|
+
|
|
22
|
+
export class Options extends ArktsObject {
|
|
23
|
+
constructor(peer: KNativePointer) {
|
|
24
|
+
super(peer)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
static createOptions(config: Config) {
|
|
28
|
+
return new Options(global.es2panda._ConfigGetOptions(config.peer))
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
getArkTsConfig(): ArkTsConfig {
|
|
32
|
+
return new ArkTsConfig(global.es2panda._OptionsArkTsConfig(global.context, this.peer))
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -14,15 +14,34 @@
|
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
import { Es2pandaContextState } from "../generated/Es2pandaEnums"
|
|
17
|
-
import {
|
|
17
|
+
import { Program } from "../generated"
|
|
18
|
+
import { ExternalSource } from "./peers/ExternalSource"
|
|
19
|
+
import { programGetExternalSources } from "./node-utilities/Program"
|
|
20
|
+
import { KNativePointer } from "@koalaui/interop"
|
|
21
|
+
import { global } from "./static/global"
|
|
18
22
|
|
|
19
23
|
export interface CompilationOptions {
|
|
20
24
|
readonly isMainProgram: boolean,
|
|
21
|
-
readonly name: string,
|
|
22
25
|
readonly stage: Es2pandaContextState,
|
|
26
|
+
readonly restart: boolean,
|
|
23
27
|
}
|
|
24
28
|
|
|
25
|
-
export
|
|
29
|
+
export interface PluginContext {
|
|
30
|
+
setParameter<V>(name: string, value: V): void
|
|
31
|
+
parameter<V>(name: string) : V | undefined
|
|
32
|
+
|
|
33
|
+
}
|
|
34
|
+
export class PluginContextImpl implements PluginContext {
|
|
35
|
+
map = new Map<String, Object|undefined>()
|
|
36
|
+
parameter<V>(name: string): V|undefined {
|
|
37
|
+
return this.map.get(name) as (V|undefined)
|
|
38
|
+
}
|
|
39
|
+
setParameter<V>(name: string, value: V) {
|
|
40
|
+
this.map.set(name, value as Object)
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export type ProgramTransformer = (program: Program, compilationOptions: CompilationOptions, context: PluginContext) => void
|
|
26
45
|
|
|
27
46
|
export function defaultFilter(name: string) {
|
|
28
47
|
if (name.startsWith("std.")) return false
|
|
@@ -30,17 +49,12 @@ export function defaultFilter(name: string) {
|
|
|
30
49
|
return true
|
|
31
50
|
}
|
|
32
51
|
|
|
33
|
-
export
|
|
34
|
-
program: Program,
|
|
35
|
-
name: string
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export function listPrograms(program: Program, filter: (name: string) => boolean = defaultFilter): ProgramWithName[] {
|
|
52
|
+
export function listPrograms(program: Program, filter: (name: string) => boolean = defaultFilter, context: KNativePointer = global.context): Program[] {
|
|
39
53
|
return [
|
|
40
|
-
|
|
41
|
-
...program.
|
|
54
|
+
program,
|
|
55
|
+
...programGetExternalSources(program, context).flatMap((it: ExternalSource) => {
|
|
42
56
|
if (filter(it.getName())) {
|
|
43
|
-
return it.programs
|
|
57
|
+
return it.programs
|
|
44
58
|
}
|
|
45
59
|
return []
|
|
46
60
|
})
|