@idlizer/arktscgen 2.1.9-arktscgen-9 → 2.1.10-arktscgen-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/libarkts-copy/generator/options.json5 +115 -3
- package/build/libarkts-copy/native/mingw.cross +13 -0
- package/build/libarkts-copy/native/src/bridges.cc +58 -227
- package/build/libarkts-copy/native/src/common.cc +49 -8
- package/build/libarkts-copy/native/src/generated/bridges.cc +1641 -44
- package/build/libarkts-copy/package.json +11 -14
- package/build/libarkts-copy/src/Es2pandaNativeModule.ts +28 -51
- package/build/libarkts-copy/src/arkts-api/ImportStorage.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/class-by-peer.ts +6 -5
- package/build/libarkts-copy/src/arkts-api/factory/nodeFactory.ts +5 -2
- package/build/libarkts-copy/src/arkts-api/node-cache.ts +4 -0
- package/build/libarkts-copy/src/arkts-api/node-utilities/ArkTsConfig.ts +7 -6
- package/build/libarkts-copy/src/arkts-api/node-utilities/NumberLiteral.ts +3 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/ObjectExpression.ts +25 -6
- package/build/libarkts-copy/src/{wrapper-compat/arkts-api/peers/ImportPathManager.ts → arkts-api/node-utilities/OpaqueTypeNode.ts} +8 -17
- package/build/libarkts-copy/src/arkts-api/node-utilities/Program.ts +11 -10
- package/build/libarkts-copy/src/arkts-api/peers/AstNode.ts +8 -6
- package/build/libarkts-copy/src/arkts-api/peers/Config.ts +6 -0
- package/build/libarkts-copy/src/arkts-api/peers/Context.ts +3 -15
- package/build/libarkts-copy/src/arkts-api/static/global.ts +28 -1
- package/build/libarkts-copy/src/arkts-api/utilities/extensions.ts +46 -6
- package/build/libarkts-copy/src/arkts-api/utilities/private.ts +3 -3
- package/build/libarkts-copy/src/arkts-api/utilities/public.ts +58 -90
- package/build/libarkts-copy/src/arkts-api/visitor.ts +965 -365
- package/build/libarkts-copy/src/generated/Es2pandaEnums.ts +5 -0
- package/build/libarkts-copy/src/generated/Es2pandaNativeModule.ts +601 -13
- package/build/libarkts-copy/src/generated/index.ts +3 -2
- package/build/libarkts-copy/src/generated/peers/AnnotatedAstNode.ts +3 -2
- package/build/libarkts-copy/src/generated/peers/AnnotatedExpression.ts +3 -2
- package/build/libarkts-copy/src/generated/peers/AnnotatedStatement.ts +3 -2
- package/build/libarkts-copy/src/generated/peers/AnnotationDeclaration.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/AnnotationUsage.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/ArkTsConfig.ts +4 -0
- package/build/libarkts-copy/src/generated/peers/ArrayExpression.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/ArrowFunctionExpression.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/AssertStatement.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/AssignmentExpression.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/AstDumper.ts +3 -0
- package/build/libarkts-copy/src/generated/peers/AwaitExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/BigIntLiteral.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/BinaryExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/BlockExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/BlockStatement.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/BooleanLiteral.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/BreakStatement.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/CallExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/CatchClause.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/ChainExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/CharLiteral.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ClassDeclaration.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ClassDefinition.ts +9 -8
- package/build/libarkts-copy/src/generated/peers/ClassElement.ts +3 -2
- package/build/libarkts-copy/src/generated/peers/ClassExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ClassProperty.ts +15 -8
- package/build/libarkts-copy/src/generated/peers/ClassStaticBlock.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ConditionalExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ContinueStatement.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/DebuggerStatement.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/Decorator.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/DirectEvalExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/DoWhileStatement.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ETSClassLiteral.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ETSFunctionType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ETSImportDeclaration.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ETSIntrinsicNode.ts +7 -8
- package/build/libarkts-copy/src/generated/peers/ETSKeyofType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ETSModule.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ETSNewArrayInstanceExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ETSNewClassInstanceExpression.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/ETSNewMultiDimArrayInstanceExpression.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/ETSNullType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ETSPackageDeclaration.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ETSParameterExpression.ts +7 -8
- package/build/libarkts-copy/src/generated/peers/ETSPrimitiveType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ETSReExportDeclaration.ts +3 -4
- package/build/libarkts-copy/src/generated/peers/ETSStringLiteralType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ETSStructDeclaration.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ETSTuple.ts +9 -10
- package/build/libarkts-copy/src/generated/peers/ETSTypeReference.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ETSTypeReferencePart.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/ETSUndefinedType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ETSUnionType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ETSWildcardType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/EmptyStatement.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/ExportAllDeclaration.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ExportDefaultDeclaration.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ExportNamedDeclaration.ts +9 -10
- package/build/libarkts-copy/src/generated/peers/ExportSpecifier.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/Expression.ts +7 -2
- package/build/libarkts-copy/src/generated/peers/ExpressionStatement.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ForInStatement.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ForOfStatement.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ForUpdateStatement.ts +4 -5
- package/build/libarkts-copy/src/generated/peers/FunctionDeclaration.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/FunctionExpression.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/FunctionSignature.ts +3 -0
- package/build/libarkts-copy/src/generated/peers/Identifier.ts +7 -8
- package/build/libarkts-copy/src/generated/peers/IfStatement.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ImportDeclaration.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ImportDefaultSpecifier.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ImportExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ImportNamespaceSpecifier.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ImportSpecifier.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/LabelledStatement.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/Literal.ts +3 -2
- package/build/libarkts-copy/src/generated/peers/LoopStatement.ts +3 -2
- package/build/libarkts-copy/src/generated/peers/MaybeOptionalExpression.ts +3 -2
- package/build/libarkts-copy/src/generated/peers/MemberExpression.ts +5 -10
- package/build/libarkts-copy/src/generated/peers/MetaProperty.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/MethodDefinition.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/NamedType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/NewExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/NullLiteral.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/NumberLiteral.ts +10 -9
- package/build/libarkts-copy/src/generated/peers/ObjectExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/OmittedExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/OpaqueTypeNode.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/OverloadDeclaration.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/PrefixAssertionExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/Property.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/RegExpLiteral.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ReturnStatement.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/ScriptFunction.ts +7 -6
- package/build/libarkts-copy/src/generated/peers/SequenceExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/SourcePosition.ts +6 -0
- package/build/libarkts-copy/src/generated/peers/SpreadElement.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/SrcDumper.ts +3 -0
- package/build/libarkts-copy/src/generated/peers/Statement.ts +3 -2
- package/build/libarkts-copy/src/generated/peers/StringLiteral.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/SuperExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/SwitchCaseStatement.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/SwitchStatement.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSAnyKeyword.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSArrayType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSAsExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSBigintKeyword.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSBooleanKeyword.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSClassImplements.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/TSConditionalType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSConstructorType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSEnumDeclaration.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/TSEnumMember.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/TSExternalModuleReference.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSFunctionType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSImportEqualsDeclaration.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSImportType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSIndexSignature.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSIndexedAccessType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSInferType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSInterfaceBody.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSInterfaceDeclaration.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSInterfaceHeritage.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSIntersectionType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSLiteralType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSMappedType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSMethodSignature.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSModuleBlock.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSModuleDeclaration.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSNamedTupleMember.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSNeverKeyword.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSNonNullExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSNullKeyword.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSNumberKeyword.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSObjectKeyword.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSParameterProperty.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSParenthesizedType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSPropertySignature.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSQualifiedName.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSSignatureDeclaration.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSStringKeyword.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSThisType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSTupleType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSTypeAliasDeclaration.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/TSTypeAssertion.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSTypeLiteral.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSTypeOperator.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSTypeParameter.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/TSTypeParameterDeclaration.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSTypeParameterInstantiation.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSTypePredicate.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSTypeQuery.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSTypeReference.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSUndefinedKeyword.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSUnionType.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSUnknownKeyword.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TSVoidKeyword.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TaggedTemplateExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TemplateElement.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/TemplateLiteral.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ThisExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ThrowStatement.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/TryStatement.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/TypeNode.ts +3 -2
- package/build/libarkts-copy/src/generated/peers/TypedAstNode.ts +3 -2
- package/build/libarkts-copy/src/generated/peers/TypedStatement.ts +3 -2
- package/build/libarkts-copy/src/generated/peers/TypeofExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/UnaryExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/UndefinedLiteral.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/UpdateExpression.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/ValidationInfo.ts +3 -0
- package/build/libarkts-copy/src/generated/peers/VariableDeclaration.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/VariableDeclarator.ts +6 -7
- package/build/libarkts-copy/src/generated/peers/WhileStatement.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/YieldExpression.ts +5 -6
- package/build/libarkts-copy/src/index.ts +2 -0
- package/build/libarkts-copy/src/plugin-utils.ts +8 -1
- package/build/libarkts-copy/src/reexport-for-generated.ts +8 -0
- package/build/libarkts-copy/src/tracer.ts +172 -0
- package/lib/index.js +1357 -510
- package/package.json +2 -2
- package/build/libarkts-copy/src/arkts-api/peers/SourcePosition.ts +0 -38
- package/build/libarkts-copy/src/generated/peers/FunctionDecl.ts +0 -45
- package/build/libarkts-copy/src/generated/peers/InterfaceDecl.ts +0 -45
- package/build/libarkts-copy/src/wrapper-compat/README.md +0 -20
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/class-by-peer.ts +0 -46
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/factory/nodeFactory.ts +0 -454
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/factory/nodeTests.ts +0 -99
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/index.ts +0 -88
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ArrayExpression.ts +0 -38
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ArrowFunctionExpression.ts +0 -35
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/AssignmentExpression.ts +0 -38
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/BlockStatement.ts +0 -27
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/CallExpression.ts +0 -45
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ClassDeclaration.ts +0 -27
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ClassDefinition.ts +0 -73
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ClassProperty.ts +0 -51
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ETSFunctionType.ts +0 -42
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ETSImportDeclaration.ts +0 -39
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ETSParameterExpression.ts +0 -43
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ExpressionStatement.ts +0 -28
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/FunctionDeclaration.ts +0 -37
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/FunctionExpression.ts +0 -28
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/IfStatement.ts +0 -37
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/MemberExpression.ts +0 -42
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/MethodDefinition.ts +0 -46
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/NumberLiteral.ts +0 -30
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ObjectExpression.ts +0 -37
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/Property.ts +0 -27
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ScriptFunction.ts +0 -46
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/StructDeclaration.ts +0 -28
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TSInterfaceDeclaration.ts +0 -47
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TSTypeAliasDeclaration.ts +0 -40
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TSTypeParameter.ts +0 -36
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TryStatement.ts +0 -41
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/VariableDeclaration.ts +0 -42
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/VariableDeclarator.ts +0 -39
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/AstNode.ts +0 -26
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Diagnostic.ts +0 -38
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/DiagnosticInfo.ts +0 -34
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/DiagnosticKind.ts +0 -33
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Program.ts +0 -105
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/SourcePosition.ts +0 -38
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/SourceRange.ts +0 -38
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/SuggestionInfo.ts +0 -34
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/static/global.ts +0 -16
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/to-be-generated/MemberExpression.ts +0 -108
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/types.ts +0 -889
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/nativePtrDecoder.ts +0 -69
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/performance.ts +0 -190
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/private.ts +0 -198
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/public.ts +0 -327
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/visitor.ts +0 -421
- package/build/libarkts-copy/src/wrapper-compat/index.ts +0 -20
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2022-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 { int32 } from "@koalaui/common"
|
|
17
|
-
import {
|
|
18
|
-
Access,
|
|
19
|
-
ArrayDecoder,
|
|
20
|
-
CallbackRegistry,
|
|
21
|
-
NativeStringBase,
|
|
22
|
-
nullptr,
|
|
23
|
-
pointer,
|
|
24
|
-
providePlatformDefinedData,
|
|
25
|
-
withByteArray
|
|
26
|
-
} from "@koalaui/interop"
|
|
27
|
-
import { global } from "../static/global"
|
|
28
|
-
|
|
29
|
-
class NativeString extends NativeStringBase {
|
|
30
|
-
constructor(ptr: pointer) {
|
|
31
|
-
super(ptr)
|
|
32
|
-
}
|
|
33
|
-
protected bytesLength(): int32 {
|
|
34
|
-
return global.interop._StringLength(this.ptr)
|
|
35
|
-
}
|
|
36
|
-
protected getData(data: Uint8Array): void {
|
|
37
|
-
withByteArray(data, Access.WRITE, (dataPtr: pointer) => {
|
|
38
|
-
global.interop._StringData(this.ptr, dataPtr, data.length)
|
|
39
|
-
})
|
|
40
|
-
}
|
|
41
|
-
close(): void {
|
|
42
|
-
global.interop._InvokeFinalizer(this.ptr, global.interop._GetStringFinalizer())
|
|
43
|
-
this.ptr = nullptr
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
providePlatformDefinedData({
|
|
48
|
-
nativeString(ptr: pointer): NativeStringBase {
|
|
49
|
-
return new NativeString(ptr)
|
|
50
|
-
},
|
|
51
|
-
nativeStringArrayDecoder(): ArrayDecoder<NativeStringBase> {
|
|
52
|
-
throw new Error("Not yet implemented")
|
|
53
|
-
},
|
|
54
|
-
callbackRegistry(): CallbackRegistry | undefined {
|
|
55
|
-
return undefined
|
|
56
|
-
}
|
|
57
|
-
})
|
|
58
|
-
|
|
59
|
-
export class NativePtrDecoder extends ArrayDecoder<pointer> {
|
|
60
|
-
getArraySize(blob: pointer) {
|
|
61
|
-
return global.interop._GetPtrVectorSize(blob)
|
|
62
|
-
}
|
|
63
|
-
disposeArray(blob: pointer): void {
|
|
64
|
-
// Improve:
|
|
65
|
-
}
|
|
66
|
-
getArrayElement(blob: pointer, index: int32): pointer {
|
|
67
|
-
return global.interop._GetPtrVectorElement(blob, index)
|
|
68
|
-
}
|
|
69
|
-
}
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2022-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
|
-
interface Event {
|
|
17
|
-
name: string,
|
|
18
|
-
startTime: number,
|
|
19
|
-
endTime?: number,
|
|
20
|
-
parentEvent?: string,
|
|
21
|
-
duration?: number
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function formatTime(ms: number): string {
|
|
25
|
-
const milliseconds = Math.floor(ms % 1000);
|
|
26
|
-
const seconds = Math.floor((ms / 1000) % 60);
|
|
27
|
-
const minutes = Math.floor((ms / (1000 * 60)) % 60);
|
|
28
|
-
const hours = Math.floor(ms / (1000 * 60 * 60));
|
|
29
|
-
|
|
30
|
-
return `${pad(hours, 2)}:${pad(minutes, 2)}:${pad(seconds, 2)}:${pad(milliseconds, 3)}`;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function pad(value: number, length: number): string {
|
|
34
|
-
return value.toString().padStart(length, '0');
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function round(value: number, index: number = 2): number {
|
|
38
|
-
const factor = Math.pow(10, index);
|
|
39
|
-
return Math.round(value * factor) / factor;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export class Performance {
|
|
43
|
-
private static instance: Performance;
|
|
44
|
-
private events: Map<string, Event>;
|
|
45
|
-
private historyEvents = new Map<string | null, Event[]>();
|
|
46
|
-
private scopes: string[];
|
|
47
|
-
private shouldSkip: boolean;
|
|
48
|
-
private totalDuration: number;
|
|
49
|
-
|
|
50
|
-
private constructor() {
|
|
51
|
-
this.events = new Map();
|
|
52
|
-
this.historyEvents = new Map();
|
|
53
|
-
this.scopes = [];
|
|
54
|
-
this.shouldSkip = true;
|
|
55
|
-
this.totalDuration = 0;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
public static getInstance(): Performance {
|
|
59
|
-
if (!this.instance) {
|
|
60
|
-
this.instance = new Performance();
|
|
61
|
-
}
|
|
62
|
-
return this.instance;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
skip(shouldSkip: boolean = true): void {
|
|
66
|
-
this.shouldSkip = shouldSkip;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
createEvent(name: string): Event {
|
|
70
|
-
if (this.shouldSkip) {
|
|
71
|
-
return { name: '', startTime: 0 };
|
|
72
|
-
}
|
|
73
|
-
const startTime: number = performance.now();
|
|
74
|
-
const newEvent: Event = { name, startTime };
|
|
75
|
-
this.events.set(name, newEvent);
|
|
76
|
-
this.scopes.push(name);
|
|
77
|
-
return newEvent;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
stopEvent(name: string, shouldLog: boolean = false): Event {
|
|
81
|
-
if (this.shouldSkip) {
|
|
82
|
-
return { name: '', startTime: 0 };
|
|
83
|
-
}
|
|
84
|
-
if (!this.events.has(name) || this.scopes.length === 0) {
|
|
85
|
-
throw new Error(`Event ${name} is not created.`);
|
|
86
|
-
}
|
|
87
|
-
if (this.scopes[this.scopes.length - 1] !== name) {
|
|
88
|
-
console.warn(`[PERFORMANCE WARNING] Event ${name} early exit.`);
|
|
89
|
-
}
|
|
90
|
-
this.scopes.pop();
|
|
91
|
-
|
|
92
|
-
const event: Event = this.events.get(name)!;
|
|
93
|
-
const endTime: number = performance.now();
|
|
94
|
-
const parentEvent: string = this.scopes[this.scopes.length - 1];
|
|
95
|
-
const duration: number = endTime - event.startTime;
|
|
96
|
-
if (!parentEvent) {
|
|
97
|
-
this.totalDuration += duration;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
if (shouldLog) {
|
|
101
|
-
console.log(
|
|
102
|
-
`[PERFORMANCE] name: ${event.name}, parent: ${parentEvent}, duration: ${formatTime(duration)}(${round(duration)}), total: ${formatTime(this.totalDuration)}(${round(this.totalDuration)})`
|
|
103
|
-
);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
const newEvent = { ...event, endTime, parentEvent, duration };
|
|
107
|
-
const history = this.historyEvents.get(parentEvent ?? null) || [];
|
|
108
|
-
this.historyEvents.set(parentEvent ?? null, [...history, newEvent]);
|
|
109
|
-
return newEvent;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
stopLastEvent(shouldLog: boolean = false): Event {
|
|
113
|
-
if (this.shouldSkip) {
|
|
114
|
-
return { name: '', startTime: 0 };
|
|
115
|
-
}
|
|
116
|
-
if (this.scopes.length === 0) {
|
|
117
|
-
throw new Error("No last event");
|
|
118
|
-
}
|
|
119
|
-
const name: string = this.scopes.pop()!;
|
|
120
|
-
if (!this.events.has(name)) {
|
|
121
|
-
throw new Error(`Event ${name} is not created.`);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
const event: Event = this.events.get(name)!;
|
|
125
|
-
const endTime: number = performance.now();
|
|
126
|
-
const parentEvent: string = this.scopes[this.scopes.length - 1];
|
|
127
|
-
const duration: number = endTime - event.startTime;
|
|
128
|
-
if (!parentEvent) {
|
|
129
|
-
this.totalDuration += duration;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
if (shouldLog) {
|
|
133
|
-
console.log(
|
|
134
|
-
`[PERFORMANCE] name: ${event.name}, parent: ${parentEvent}, duration: ${formatTime(duration)}(${round(duration)}), total: ${formatTime(this.totalDuration)}(${round(this.totalDuration)})`
|
|
135
|
-
);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
const newEvent = { ...event, endTime, parentEvent, duration };
|
|
139
|
-
const history = this.historyEvents.get(parentEvent ?? null) || [];
|
|
140
|
-
this.historyEvents.set(parentEvent ?? null, [...history, newEvent]);
|
|
141
|
-
return newEvent;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
clearAllEvents(shouldLog: boolean = false): void {
|
|
145
|
-
if (this.shouldSkip) {
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
for (let i = 0; i < this.scopes.length; i ++) {
|
|
149
|
-
this.stopLastEvent(shouldLog);
|
|
150
|
-
}
|
|
151
|
-
this.events = new Map();
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
clearTotalDuration(): void {
|
|
155
|
-
this.totalDuration = 0;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
clearHistory(): void {
|
|
159
|
-
this.historyEvents = new Map();
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
visualizeEvents(shouldLog: boolean = false): void {
|
|
163
|
-
if (this.shouldSkip) {
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
const that = this;
|
|
167
|
-
function buildVisualization(parentKey: string | null, indentLevel: number): [string, number] {
|
|
168
|
-
const children = that.historyEvents.get(parentKey) || [];
|
|
169
|
-
let result = '';
|
|
170
|
-
|
|
171
|
-
children.forEach(child => {
|
|
172
|
-
const indent = ' '.repeat(indentLevel);
|
|
173
|
-
const duration = child.duration ?? 0;
|
|
174
|
-
const [_result, count] = buildVisualization(child.name, indentLevel + 1);
|
|
175
|
-
result += `${indent}- ${child.name}: ${formatTime(duration)}(${round(duration)}), ${count}\n`;
|
|
176
|
-
result += _result;
|
|
177
|
-
});
|
|
178
|
-
|
|
179
|
-
return [result, children.length];
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
const [finalResult, _] = buildVisualization(null, 0);
|
|
183
|
-
if (shouldLog) {
|
|
184
|
-
console.log(`[PERFORMANCE] ===== FINAL RESULT ====`);
|
|
185
|
-
console.log(`TOTAL: ${formatTime(this.totalDuration)}(${round(this.totalDuration)})`);
|
|
186
|
-
console.log(finalResult.trimEnd());
|
|
187
|
-
console.log(`[PERFORMANCE] ===== FINAL RESULT ====`);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2022-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 { global } from '../static/global';
|
|
17
|
-
import { isNumber, throwError } from '../../../utils';
|
|
18
|
-
import {
|
|
19
|
-
KInt,
|
|
20
|
-
KNativePointer as KPtr,
|
|
21
|
-
KNativePointer,
|
|
22
|
-
nullptr,
|
|
23
|
-
withString,
|
|
24
|
-
withStringArray,
|
|
25
|
-
} from '@koalaui/interop';
|
|
26
|
-
import { NativePtrDecoder } from './nativePtrDecoder';
|
|
27
|
-
import { Es2pandaModifierFlags, Es2pandaScriptFunctionFlags } from '../../../generated/Es2pandaEnums';
|
|
28
|
-
import { classByPeer } from '../class-by-peer';
|
|
29
|
-
import type { AstNode } from '../peers/AstNode';
|
|
30
|
-
import { ArktsObject } from '../../../arkts-api/peers/ArktsObject';
|
|
31
|
-
import { Es2pandaAstNodeType } from '../../../generated/Es2pandaEnums';
|
|
32
|
-
|
|
33
|
-
export const arrayOfNullptr = new BigUint64Array([nullptr]);
|
|
34
|
-
|
|
35
|
-
export const allFlags = Object.values(Es2pandaModifierFlags)
|
|
36
|
-
.filter(isNumber)
|
|
37
|
-
.reduce((prev, next) => prev | next, 0);
|
|
38
|
-
|
|
39
|
-
export function assertValidPeer(peer: KPtr, expectedKind: Es2pandaAstNodeType): void {
|
|
40
|
-
if (peer === nullptr) {
|
|
41
|
-
throwError(`invalid peer`);
|
|
42
|
-
}
|
|
43
|
-
const peerType = global.generatedEs2panda._AstNodeTypeConst(global.context, peer);
|
|
44
|
-
if (peerType !== expectedKind) {
|
|
45
|
-
throwError(`expected: ${Es2pandaAstNodeType[expectedKind]}, got: ${Es2pandaAstNodeType[peerType]}`);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export function acceptNativeObjectArrayResult<T extends ArktsObject>(
|
|
50
|
-
arrayObject: KNativePointer,
|
|
51
|
-
factory: (instance: KNativePointer) => T
|
|
52
|
-
): T[] {
|
|
53
|
-
return new NativePtrDecoder().decode(arrayObject).map(factory);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export function unpackNonNullableNode<T extends AstNode>(peer: KNativePointer): T {
|
|
57
|
-
if (peer === nullptr) {
|
|
58
|
-
throwError('peer is NULLPTR (maybe you should use unpackNode)');
|
|
59
|
-
}
|
|
60
|
-
return classByPeer(peer) as T;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
export function unpackNode<T extends AstNode>(peer: KNativePointer): T | undefined {
|
|
64
|
-
if (peer === nullptr) {
|
|
65
|
-
return undefined;
|
|
66
|
-
}
|
|
67
|
-
return classByPeer(peer) as T;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export function passNode(node: ArktsObject | undefined): KNativePointer {
|
|
71
|
-
return node?.peer ?? nullptr;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// meaning unpackNonNullableNodeArray
|
|
75
|
-
export function unpackNodeArray<T extends AstNode>(nodesPtr: KNativePointer): T[] {
|
|
76
|
-
if (nodesPtr === nullptr) {
|
|
77
|
-
throwError('nodesPtr is NULLPTR (maybe you should use unpackNodeArray)');
|
|
78
|
-
}
|
|
79
|
-
return new NativePtrDecoder().decode(nodesPtr).map((peer: KNativePointer) => unpackNonNullableNode(peer));
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
export function passNodeArray(nodes: readonly AstNode[] | undefined): BigUint64Array {
|
|
83
|
-
return new BigUint64Array(nodes?.map((node) => BigInt(node.peer)) ?? []);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
export function unpackNonNullableObject<T extends ArktsObject>(
|
|
87
|
-
Type: { new (peer: KNativePointer): T },
|
|
88
|
-
peer: KNativePointer
|
|
89
|
-
): T {
|
|
90
|
-
if (peer === nullptr) {
|
|
91
|
-
throwError('peer is NULLPTR (maybe you should use unpackObject)');
|
|
92
|
-
}
|
|
93
|
-
return new Type(peer);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
export function unpackObject<T extends ArktsObject>(
|
|
97
|
-
Type: { new (peer: KNativePointer): T },
|
|
98
|
-
peer: KNativePointer
|
|
99
|
-
): T | undefined {
|
|
100
|
-
if (peer === nullptr) {
|
|
101
|
-
return undefined;
|
|
102
|
-
}
|
|
103
|
-
return new Type(peer);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
export { unpackString } from "../../../arkts-api/utilities/private"
|
|
107
|
-
|
|
108
|
-
export function passString(str: string | undefined): string {
|
|
109
|
-
if (str === undefined) {
|
|
110
|
-
return '';
|
|
111
|
-
}
|
|
112
|
-
return withString(str, (it: string) => it);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export function passStringArray(strings: readonly string[]): string[] {
|
|
116
|
-
return withStringArray(strings, (it: string[]) => it);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
export function passNodeWithNewModifiers<T extends AstNode>(node: T, modifiers: KInt): T {
|
|
120
|
-
return (unpackNonNullableNode(node.peer) as T).updateModifiers(modifiers);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
export function scriptFunctionHasBody(peer: KNativePointer): boolean {
|
|
124
|
-
const flags = global.generatedEs2panda._ScriptFunctionFlagsConst(global.context, peer);
|
|
125
|
-
return (
|
|
126
|
-
(flags & Es2pandaScriptFunctionFlags.SCRIPT_FUNCTION_FLAGS_EXTERNAL) === 0 &&
|
|
127
|
-
(flags & Es2pandaScriptFunctionFlags.SCRIPT_FUNCTION_FLAGS_EXTERNAL_OVERLOAD) === 0
|
|
128
|
-
);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
// Improve: remove this
|
|
132
|
-
// Improve: update scopes and other data
|
|
133
|
-
export function updatePeerByNode<T extends AstNode>(peer: KNativePointer, original: T | undefined): KNativePointer {
|
|
134
|
-
if (peer === nullptr) {
|
|
135
|
-
throwError('updatePeerByNode called on NULLPTR');
|
|
136
|
-
}
|
|
137
|
-
if (original === undefined) {
|
|
138
|
-
return peer;
|
|
139
|
-
}
|
|
140
|
-
global.generatedEs2panda._AstNodeSetOriginalNode(global.context, peer, original.peer);
|
|
141
|
-
global.generatedEs2panda._AstNodeSetParent(
|
|
142
|
-
global.context,
|
|
143
|
-
peer,
|
|
144
|
-
global.generatedEs2panda._AstNodeParent(global.context, original.peer)
|
|
145
|
-
);
|
|
146
|
-
global.es2panda._AstNodeSetChildrenParentPtr(global.context, peer);
|
|
147
|
-
global.generatedEs2panda._AstNodeClearModifier(global.context, peer, allFlags);
|
|
148
|
-
global.generatedEs2panda._AstNodeAddModifier(global.context, peer, original.modifiers);
|
|
149
|
-
global.es2panda._AstNodeSetChildrenParentPtr(global.context, peer);
|
|
150
|
-
return peer;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
// Improve: update scopes and other data
|
|
154
|
-
export function updateNodeByNode<T extends AstNode>(node: T, original: AstNode): T {
|
|
155
|
-
if (original.peer === nullptr) {
|
|
156
|
-
throwError('update called on NULLPTR');
|
|
157
|
-
}
|
|
158
|
-
global.generatedEs2panda._AstNodeSetOriginalNode(global.context, node.peer, original.peer);
|
|
159
|
-
global.generatedEs2panda._AstNodeSetParent(
|
|
160
|
-
global.context,
|
|
161
|
-
node.peer,
|
|
162
|
-
global.generatedEs2panda._AstNodeParent(global.context, original.peer)
|
|
163
|
-
);
|
|
164
|
-
global.es2panda._AstNodeSetChildrenParentPtr(global.context, node.peer);
|
|
165
|
-
return node;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
export function nodeType(node: AstNode): Es2pandaAstNodeType {
|
|
169
|
-
return global.generatedEs2panda._AstNodeTypeConst(global.context, passNode(node));
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* @deprecated
|
|
174
|
-
*/
|
|
175
|
-
export function compose<T extends AstNode, ARGS extends any[]>(
|
|
176
|
-
create: (...args: ARGS) => T,
|
|
177
|
-
update: (node: T, original: T) => T = updateNodeByNode
|
|
178
|
-
): (node: T, ...args: ARGS) => T {
|
|
179
|
-
return (node: T, ...args: ARGS) => update(create(...args), node);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
export function updateThenAttach<T extends AstNode, ARGS extends any[]>(
|
|
183
|
-
update: (original: T, ...args: ARGS) => T,
|
|
184
|
-
...attachFuncs: ((node: T, original: T) => T)[]
|
|
185
|
-
): (node: T, ...args: ARGS) => T {
|
|
186
|
-
return (node: T, ...args: ARGS) => {
|
|
187
|
-
let _node: T = update(node, ...args);
|
|
188
|
-
attachFuncs.forEach((attach) => {
|
|
189
|
-
_node = attach(_node, node);
|
|
190
|
-
});
|
|
191
|
-
return _node;
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
export function attachModifiers<T extends AstNode>(node: T, original: T): T {
|
|
196
|
-
node.modifiers = original.modifiers;
|
|
197
|
-
return node;
|
|
198
|
-
}
|