@lcap/nasl 3.4.0-beta.5 → 3.4.0-beta.6
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/.nyc_output/b920244d-8d01-4e76-be5a-95132217c5a1.json +1 -0
- package/.nyc_output/processinfo/b920244d-8d01-4e76-be5a-95132217c5a1.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -0
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +461 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +196 -0
- package/coverage/src/automate/engine/index.html +116 -0
- package/coverage/src/automate/engine/utils.js.html +1414 -0
- package/coverage/src/bak/index.html +116 -0
- package/coverage/src/bak/translator.js.html +631 -0
- package/coverage/src/breakpoint/generator/AfterStartNode.ts.html +175 -0
- package/coverage/src/breakpoint/generator/BeforeEndNode.ts.html +169 -0
- package/coverage/src/breakpoint/generator/BreakpointNode.ts.html +1246 -0
- package/coverage/src/breakpoint/generator/CallbackNode.ts.html +145 -0
- package/coverage/src/breakpoint/generator/index.html +176 -0
- package/coverage/src/breakpoint/generator/index.ts.html +508 -0
- package/coverage/src/breakpoint/index.html +116 -0
- package/coverage/src/breakpoint/index.ts.html +94 -0
- package/coverage/src/breakpoint/shared/constants.ts.html +436 -0
- package/coverage/src/breakpoint/shared/index.html +176 -0
- package/coverage/src/breakpoint/shared/index.ts.html +94 -0
- package/coverage/src/breakpoint/shared/operations.ts.html +160 -0
- package/coverage/src/breakpoint/shared/socket.ts.html +1297 -0
- package/coverage/src/breakpoint/shared/utils.ts.html +1087 -0
- package/coverage/src/breakpoint/store/core.ts.html +1600 -0
- package/coverage/src/breakpoint/store/dock.ts.html +733 -0
- package/coverage/src/breakpoint/store/index.html +146 -0
- package/coverage/src/breakpoint/store/index.ts.html +91 -0
- package/coverage/src/common/BaseNode.ts.html +4081 -0
- package/coverage/src/common/Command.ts.html +310 -0
- package/coverage/src/common/EventEmitter.ts.html +373 -0
- package/coverage/src/common/Messager.ts.html +820 -0
- package/coverage/src/common/asyncFuncMap.ts.html +127 -0
- package/coverage/src/common/index.html +191 -0
- package/coverage/src/common/index.ts.html +94 -0
- package/coverage/src/concepts/Abort__.ts.html +331 -0
- package/coverage/src/concepts/Anchor__.ts.html +667 -0
- package/coverage/src/concepts/AnonymousFunction__.ts.html +2092 -0
- package/coverage/src/concepts/App__.ts.html +13651 -0
- package/coverage/src/concepts/Argument__.ts.html +907 -0
- package/coverage/src/concepts/Assignee__.ts.html +2317 -0
- package/coverage/src/concepts/AssignmentLine__.ts.html +430 -0
- package/coverage/src/concepts/Assignment__.ts.html +1174 -0
- package/coverage/src/concepts/Attribute__.ts.html +919 -0
- package/coverage/src/concepts/AuthInterface__.ts.html +370 -0
- package/coverage/src/concepts/AuthLogicForCallInterface__.ts.html +2011 -0
- package/coverage/src/concepts/AuthLogic__.ts.html +793 -0
- package/coverage/src/concepts/BackendVariable__.ts.html +1690 -0
- package/coverage/src/concepts/Backend__.ts.html +1192 -0
- package/coverage/src/concepts/BatchAssignment__.ts.html +3376 -0
- package/coverage/src/concepts/BinaryExpression__.ts.html +1468 -0
- package/coverage/src/concepts/BindAttribute__.ts.html +3931 -0
- package/coverage/src/concepts/BindDirective__.ts.html +2002 -0
- package/coverage/src/concepts/BindEvent__.ts.html +3487 -0
- package/coverage/src/concepts/BindStyle__.ts.html +1645 -0
- package/coverage/src/concepts/BooleanLiteral__.ts.html +421 -0
- package/coverage/src/concepts/CallAuthInterface__.ts.html +1642 -0
- package/coverage/src/concepts/CallConnector__.ts.html +925 -0
- package/coverage/src/concepts/CallFunction__.ts.html +2164 -0
- package/coverage/src/concepts/CallInterface__.ts.html +2776 -0
- package/coverage/src/concepts/CallLogic__.ts.html +4693 -0
- package/coverage/src/concepts/CallQueryComponent__.ts.html +5419 -0
- package/coverage/src/concepts/Comment__.ts.html +397 -0
- package/coverage/src/concepts/CompletionProperty__.ts.html +946 -0
- package/coverage/src/concepts/ConfigGroup__.ts.html +1132 -0
- package/coverage/src/concepts/ConfigPropertyValue__.ts.html +427 -0
- package/coverage/src/concepts/ConfigProperty__.ts.html +1375 -0
- package/coverage/src/concepts/Configuration__.ts.html +1054 -0
- package/coverage/src/concepts/Connection__.ts.html +1387 -0
- package/coverage/src/concepts/ConnectorTrigger__.ts.html +598 -0
- package/coverage/src/concepts/Connector__.ts.html +4390 -0
- package/coverage/src/concepts/Constant__.ts.html +1123 -0
- package/coverage/src/concepts/DataSource__.ts.html +1798 -0
- package/coverage/src/concepts/DatabaseTypeAnnotation__.ts.html +334 -0
- package/coverage/src/concepts/DefaultValue__.ts.html +946 -0
- package/coverage/src/concepts/Destination__.ts.html +2761 -0
- package/coverage/src/concepts/End__.ts.html +436 -0
- package/coverage/src/concepts/EntityIndex__.ts.html +799 -0
- package/coverage/src/concepts/EntityProperty__.ts.html +2866 -0
- package/coverage/src/concepts/Entity__.ts.html +3070 -0
- package/coverage/src/concepts/EnumItem__.ts.html +553 -0
- package/coverage/src/concepts/Enum__.ts.html +1258 -0
- package/coverage/src/concepts/Event__.ts.html +1111 -0
- package/coverage/src/concepts/ExternalDestination__.ts.html +1060 -0
- package/coverage/src/concepts/ForEachStatement__.ts.html +2023 -0
- package/coverage/src/concepts/FrontendLibrary__.ts.html +1762 -0
- package/coverage/src/concepts/FrontendVariable__.ts.html +292 -0
- package/coverage/src/concepts/Frontend__.ts.html +4078 -0
- package/coverage/src/concepts/Function__.ts.html +3718 -0
- package/coverage/src/concepts/Identifier__.ts.html +1060 -0
- package/coverage/src/concepts/IfStatement__.ts.html +1636 -0
- package/coverage/src/concepts/Integration__.ts.html +1273 -0
- package/coverage/src/concepts/InterfaceParam__.ts.html +1258 -0
- package/coverage/src/concepts/Interface__.ts.html +3463 -0
- package/coverage/src/concepts/JSBlock__.ts.html +424 -0
- package/coverage/src/concepts/JavaLogic__.ts.html +463 -0
- package/coverage/src/concepts/LogicItem__.ts.html +1174 -0
- package/coverage/src/concepts/Logic__.ts.html +7732 -0
- package/coverage/src/concepts/MatchCase__.ts.html +2974 -0
- package/coverage/src/concepts/Match__.ts.html +2494 -0
- package/coverage/src/concepts/MemberExpression__.ts.html +1744 -0
- package/coverage/src/concepts/MicroApp__.ts.html +439 -0
- package/coverage/src/concepts/Module__.ts.html +9385 -0
- package/coverage/src/concepts/MsgTriggerEvent__.ts.html +1072 -0
- package/coverage/src/concepts/MsgTriggerLauncher__.ts.html +1045 -0
- package/coverage/src/concepts/Namespace__.ts.html +8221 -0
- package/coverage/src/concepts/NewComposite__.ts.html +4765 -0
- package/coverage/src/concepts/NewList__.ts.html +1702 -0
- package/coverage/src/concepts/NewMap__.ts.html +2470 -0
- package/coverage/src/concepts/New__.ts.html +289 -0
- package/coverage/src/concepts/NullLiteral__.ts.html +352 -0
- package/coverage/src/concepts/NumericLiteral__.ts.html +697 -0
- package/coverage/src/concepts/OqlQueryComponent__.ts.html +1237 -0
- package/coverage/src/concepts/OverriddenLogic__.ts.html +6970 -0
- package/coverage/src/concepts/Param__.ts.html +1798 -0
- package/coverage/src/concepts/Point__.ts.html +334 -0
- package/coverage/src/concepts/ProcessComponent__.ts.html +1717 -0
- package/coverage/src/concepts/ProcessElement__.ts.html +6187 -0
- package/coverage/src/concepts/ProcessOutcome__.ts.html +355 -0
- package/coverage/src/concepts/ProcessOutcomes__.ts.html +355 -0
- package/coverage/src/concepts/Process__.ts.html +5071 -0
- package/coverage/src/concepts/QueryAggregateExpression__.ts.html +589 -0
- package/coverage/src/concepts/QueryFieldExpression__.ts.html +586 -0
- package/coverage/src/concepts/QueryFromExpression__.ts.html +937 -0
- package/coverage/src/concepts/QueryGroupByExpression__.ts.html +580 -0
- package/coverage/src/concepts/QueryJoinExpression__.ts.html +1606 -0
- package/coverage/src/concepts/QueryLimitExpression__.ts.html +664 -0
- package/coverage/src/concepts/QueryOrderByExpression__.ts.html +706 -0
- package/coverage/src/concepts/QuerySelectExpression__.ts.html +1741 -0
- package/coverage/src/concepts/Rect__.ts.html +376 -0
- package/coverage/src/concepts/Return__.ts.html +1471 -0
- package/coverage/src/concepts/Role__.ts.html +604 -0
- package/coverage/src/concepts/SelectMembers__.ts.html +1279 -0
- package/coverage/src/concepts/Slot__.ts.html +649 -0
- package/coverage/src/concepts/SqlQueryComponent__.ts.html +1003 -0
- package/coverage/src/concepts/Start__.ts.html +307 -0
- package/coverage/src/concepts/StringInterpolation__.ts.html +1156 -0
- package/coverage/src/concepts/StringLiteral__.ts.html +508 -0
- package/coverage/src/concepts/StructureProperty__.ts.html +1300 -0
- package/coverage/src/concepts/Structure__.ts.html +2182 -0
- package/coverage/src/concepts/SwitchCase__.ts.html +1204 -0
- package/coverage/src/concepts/SwitchStatement__.ts.html +904 -0
- package/coverage/src/concepts/Theme__.ts.html +361 -0
- package/coverage/src/concepts/Transactional__.ts.html +631 -0
- package/coverage/src/concepts/TriggerEvent__.ts.html +1039 -0
- package/coverage/src/concepts/TriggerLauncher__.ts.html +778 -0
- package/coverage/src/concepts/TypeAnnotation__.ts.html +3832 -0
- package/coverage/src/concepts/TypeParam__.ts.html +322 -0
- package/coverage/src/concepts/UnaryExpression__.ts.html +730 -0
- package/coverage/src/concepts/Unparsed__.ts.html +397 -0
- package/coverage/src/concepts/UseComponent__.ts.html +334 -0
- package/coverage/src/concepts/ValidationRule__.ts.html +1876 -0
- package/coverage/src/concepts/Variable__.ts.html +1705 -0
- package/coverage/src/concepts/ViewBlock__.ts.html +355 -0
- package/coverage/src/concepts/ViewComponent__.ts.html +4327 -0
- package/coverage/src/concepts/ViewElement__.ts.html +8992 -0
- package/coverage/src/concepts/View__.ts.html +9019 -0
- package/coverage/src/concepts/WhileStatement__.ts.html +1105 -0
- package/coverage/src/concepts/basics/stdlib/index.html +356 -0
- package/coverage/src/concepts/basics/stdlib/index.ts.html +208 -0
- package/coverage/src/concepts/basics/stdlib/nasl.auth.ts.html +565 -0
- package/coverage/src/concepts/basics/stdlib/nasl.browser.ts.html +517 -0
- package/coverage/src/concepts/basics/stdlib/nasl.collection.ts.html +226 -0
- package/coverage/src/concepts/basics/stdlib/nasl.configuration.ts.html +172 -0
- package/coverage/src/concepts/basics/stdlib/nasl.core.ts.html +214 -0
- package/coverage/src/concepts/basics/stdlib/nasl.event.ts.html +145 -0
- package/coverage/src/concepts/basics/stdlib/nasl.http.ts.html +589 -0
- package/coverage/src/concepts/basics/stdlib/nasl.interface.ts.html +214 -0
- package/coverage/src/concepts/basics/stdlib/nasl.io.ts.html +229 -0
- package/coverage/src/concepts/basics/stdlib/nasl.logging.ts.html +268 -0
- package/coverage/src/concepts/basics/stdlib/nasl.process.ts.html +1999 -0
- package/coverage/src/concepts/basics/stdlib/nasl.ui.ts.html +3259 -0
- package/coverage/src/concepts/basics/stdlib/nasl.util.ts.html +6955 -0
- package/coverage/src/concepts/basics/stdlib/nasl.validation.ts.html +1768 -0
- package/coverage/src/concepts/basics/stdlib/reference2TypeAnnotationList.ts.html +163 -0
- package/coverage/src/concepts/basics/stdlib/timeZone.ts.html +664 -0
- package/coverage/src/concepts/basics/types/coreTypeList.ts.html +121 -0
- package/coverage/src/concepts/basics/types/index.html +131 -0
- package/coverage/src/concepts/basics/types/index.ts.html +160 -0
- package/coverage/src/concepts/index.html +1976 -0
- package/coverage/src/concepts/index.ts.html +103 -0
- package/coverage/src/concepts/index__.ts.html +454 -0
- package/coverage/src/config.ts.html +325 -0
- package/coverage/src/decorators/index.html +131 -0
- package/coverage/src/decorators/index.ts.html +583 -0
- package/coverage/src/decorators/promise.ts.html +169 -0
- package/coverage/src/eventBus.ts.html +100 -0
- package/coverage/src/generator/compileComponent.ts.html +142 -0
- package/coverage/src/generator/genBundleFiles.ts.html +1828 -0
- package/coverage/src/generator/genHash.ts.html +124 -0
- package/coverage/src/generator/genMetaData.ts.html +1084 -0
- package/coverage/src/generator/genReleaseBody.ts.html +1282 -0
- package/coverage/src/generator/icestark.ts.html +220 -0
- package/coverage/src/generator/index.html +266 -0
- package/coverage/src/generator/index.ts.html +106 -0
- package/coverage/src/generator/microApp.ts.html +172 -0
- package/coverage/src/generator/permission.ts.html +1036 -0
- package/coverage/src/generator/qiankun.ts.html +232 -0
- package/coverage/src/generator/styleReplacer.ts.html +199 -0
- package/coverage/src/index.html +146 -0
- package/coverage/src/index.ts.html +124 -0
- package/coverage/src/manager/diagnostic.ts.html +442 -0
- package/coverage/src/manager/index.html +131 -0
- package/coverage/src/manager/stepRecorder.ts.html +457 -0
- package/coverage/src/natural/genNaturalTS.ts.html +355 -0
- package/coverage/src/natural/index.html +161 -0
- package/coverage/src/natural/index.ts.html +91 -0
- package/coverage/src/natural/naslStdlibMap.ts.html +157 -0
- package/coverage/src/natural/transformTSCode.ts.html +2707 -0
- package/coverage/src/sentry/index.html +116 -0
- package/coverage/src/sentry/index.ts.html +676 -0
- package/coverage/src/server/createUiTs.ts.html +919 -0
- package/coverage/src/server/entity2LogicNamespace.ts.html +1294 -0
- package/coverage/src/server/event.js.html +526 -0
- package/coverage/src/server/extendBaseNode.ts.html +1762 -0
- package/coverage/src/server/formatTsUtils.ts.html +2689 -0
- package/coverage/src/server/getConnector.ts.html +316 -0
- package/coverage/src/server/getExtensionModules.ts.html +178 -0
- package/coverage/src/server/getFunctions.ts.html +133 -0
- package/coverage/src/server/getInterfaces.ts.html +229 -0
- package/coverage/src/server/getLogging.ts.html +100 -0
- package/coverage/src/server/getLogics.ts.html +1363 -0
- package/coverage/src/server/getMemberIdentifier.ts.html +1606 -0
- package/coverage/src/server/getProcessComponents.ts.html +112 -0
- package/coverage/src/server/getProcesses.ts.html +2023 -0
- package/coverage/src/server/getValidates.ts.html +115 -0
- package/coverage/src/server/index.html +401 -0
- package/coverage/src/server/index.ts.html +229 -0
- package/coverage/src/server/naslServer.ts.html +14356 -0
- package/coverage/src/server/naslStdlibMap.ts.html +241 -0
- package/coverage/src/server/process2LogicNamespace.ts.html +454 -0
- package/coverage/src/server/translator.ts.html +2566 -0
- package/coverage/src/service/creator/add.configs.js.html +397 -0
- package/coverage/src/service/creator/errHandles.js.html +304 -0
- package/coverage/src/service/creator/index.html +146 -0
- package/coverage/src/service/creator/index.js.html +352 -0
- package/coverage/src/service/datasource/api.js.html +118 -0
- package/coverage/src/service/datasource/index.html +131 -0
- package/coverage/src/service/datasource/index.js.html +103 -0
- package/coverage/src/service/logic/api.js.html +109 -0
- package/coverage/src/service/logic/index.html +131 -0
- package/coverage/src/service/logic/index.js.html +103 -0
- package/coverage/src/service/storage/api.js.html +202 -0
- package/coverage/src/service/storage/index.html +206 -0
- package/coverage/src/service/storage/index.ts.html +103 -0
- package/coverage/src/service/storage/init.ts.html +3721 -0
- package/coverage/src/service/storage/jsoner.ts.html +502 -0
- package/coverage/src/service/storage/map.ts.html +256 -0
- package/coverage/src/service/storage/service.ts.html +331 -0
- package/coverage/src/service/storage/storagePoint.ts.html +304 -0
- package/coverage/src/templator/genCallComponentLogic.ts.html +163 -0
- package/coverage/src/templator/genCreateBlock.ts.html +1093 -0
- package/coverage/src/templator/genCurdEditMultipleKeyBlock.ts.html +1609 -0
- package/coverage/src/templator/genCurdMultipleKeyBlock.ts.html +2254 -0
- package/coverage/src/templator/genEditTableBlock.ts.html +1021 -0
- package/coverage/src/templator/genEnumSelectBlock.ts.html +178 -0
- package/coverage/src/templator/genGetBlock.ts.html +451 -0
- package/coverage/src/templator/genGridViewBlock.ts.html +1114 -0
- package/coverage/src/templator/genListViewBlock.ts.html +475 -0
- package/coverage/src/templator/genQueryComponent.ts.html +1207 -0
- package/coverage/src/templator/genSelectBlock.ts.html +1243 -0
- package/coverage/src/templator/genTableBlock.ts.html +973 -0
- package/coverage/src/templator/genUpdateBlock.ts.html +1192 -0
- package/coverage/src/templator/index.html +326 -0
- package/coverage/src/templator/index.ts.html +154 -0
- package/coverage/src/templator/utils.ts.html +1861 -0
- package/coverage/src/translator/constant.ts.html +106 -0
- package/coverage/src/translator/index.html +146 -0
- package/coverage/src/translator/index.ts.html +94 -0
- package/coverage/src/translator/utils.ts.html +436 -0
- package/coverage/src/utils/cookie.ts.html +265 -0
- package/coverage/src/utils/env.ts.html +91 -0
- package/coverage/src/utils/index.html +236 -0
- package/coverage/src/utils/index.ts.html +694 -0
- package/coverage/src/utils/logger.ts.html +145 -0
- package/coverage/src/utils/sortTsString.ts.html +187 -0
- package/coverage/src/utils/string.ts.html +400 -0
- package/coverage/src/utils/time-slicing.ts.html +418 -0
- package/coverage/src/utils/traverse.ts.html +568 -0
- package/coverage/src/utils/window.ts.html +112 -0
- package/out/bak/translator.js +2 -19
- package/out/bak/translator.js.map +1 -1
- package/out/common/BaseNode.d.ts +11 -0
- package/out/common/BaseNode.js +57 -1
- package/out/common/BaseNode.js.map +1 -1
- package/out/common/index.d.ts +1 -0
- package/out/common/index.js +1 -0
- package/out/common/index.js.map +1 -1
- package/out/common/utils.d.ts +2 -0
- package/out/common/utils.js +18 -0
- package/out/common/utils.js.map +1 -0
- package/out/concepts/Abort__.d.ts +2 -2
- package/out/concepts/Abort__.js +6 -2
- package/out/concepts/Abort__.js.map +1 -1
- package/out/concepts/Anchor__.d.ts +2 -2
- package/out/concepts/Anchor__.js +5 -4
- package/out/concepts/Anchor__.js.map +1 -1
- package/out/concepts/AnonymousFunction__.d.ts +3 -3
- package/out/concepts/AnonymousFunction__.js +19 -15
- package/out/concepts/AnonymousFunction__.js.map +1 -1
- package/out/concepts/Argument__.d.ts +2 -2
- package/out/concepts/Argument__.js +12 -13
- package/out/concepts/Argument__.js.map +1 -1
- package/out/concepts/Assignee__.d.ts +2 -2
- package/out/concepts/Assignee__.js +11 -9
- package/out/concepts/Assignee__.js.map +1 -1
- package/out/concepts/AssignmentLine__.d.ts +2 -2
- package/out/concepts/AssignmentLine__.js +3 -2
- package/out/concepts/AssignmentLine__.js.map +1 -1
- package/out/concepts/Assignment__.d.ts +2 -2
- package/out/concepts/Assignment__.js +13 -29
- package/out/concepts/Assignment__.js.map +1 -1
- package/out/concepts/AuthInterface__.js +1 -1
- package/out/concepts/AuthInterface__.js.map +1 -1
- package/out/concepts/AuthLogicForCallInterface__.d.ts +2 -2
- package/out/concepts/AuthLogicForCallInterface__.js +56 -75
- package/out/concepts/AuthLogicForCallInterface__.js.map +1 -1
- package/out/concepts/BackendVariable__.d.ts +5 -8
- package/out/concepts/BackendVariable__.js +47 -29
- package/out/concepts/BackendVariable__.js.map +1 -1
- package/out/concepts/Backend__.d.ts +4 -7
- package/out/concepts/Backend__.js +7 -6
- package/out/concepts/Backend__.js.map +1 -1
- package/out/concepts/BatchAssignment__.d.ts +2 -2
- package/out/concepts/BatchAssignment__.js +19 -20
- package/out/concepts/BatchAssignment__.js.map +1 -1
- package/out/concepts/BinaryExpression__.d.ts +2 -2
- package/out/concepts/BinaryExpression__.js +37 -38
- package/out/concepts/BinaryExpression__.js.map +1 -1
- package/out/concepts/BindAttribute__.d.ts +4 -4
- package/out/concepts/BindAttribute__.js +39 -32
- package/out/concepts/BindAttribute__.js.map +1 -1
- package/out/concepts/BindDirective__.d.ts +2 -2
- package/out/concepts/BindDirective__.js +10 -8
- package/out/concepts/BindDirective__.js.map +1 -1
- package/out/concepts/BindEvent__.d.ts +4 -7
- package/out/concepts/BindEvent__.js +20 -18
- package/out/concepts/BindEvent__.js.map +1 -1
- package/out/concepts/BindStyle__.d.ts +2 -2
- package/out/concepts/BindStyle__.js +9 -7
- package/out/concepts/BindStyle__.js.map +1 -1
- package/out/concepts/Block__.d.ts +6 -2
- package/out/concepts/Block__.js +36 -5
- package/out/concepts/Block__.js.map +1 -1
- package/out/concepts/BooleanLiteral__.d.ts +2 -2
- package/out/concepts/BooleanLiteral__.js +2 -2
- package/out/concepts/BooleanLiteral__.js.map +1 -1
- package/out/concepts/CallAuthInterface__.d.ts +3 -2
- package/out/concepts/CallAuthInterface__.js +46 -30
- package/out/concepts/CallAuthInterface__.js.map +1 -1
- package/out/concepts/CallConnector__.d.ts +2 -2
- package/out/concepts/CallConnector__.js +25 -23
- package/out/concepts/CallConnector__.js.map +1 -1
- package/out/concepts/CallFunction__.d.ts +2 -2
- package/out/concepts/CallFunction__.js +19 -16
- package/out/concepts/CallFunction__.js.map +1 -1
- package/out/concepts/CallInterface__.d.ts +3 -2
- package/out/concepts/CallInterface__.js +16 -6
- package/out/concepts/CallInterface__.js.map +1 -1
- package/out/concepts/CallLogic__.d.ts +2 -3
- package/out/concepts/CallLogic__.js +26 -20
- package/out/concepts/CallLogic__.js.map +1 -1
- package/out/concepts/CallQueryComponent__.d.ts +4 -4
- package/out/concepts/CallQueryComponent__.js +38 -36
- package/out/concepts/CallQueryComponent__.js.map +1 -1
- package/out/concepts/Comment__.d.ts +2 -2
- package/out/concepts/Comment__.js +3 -2
- package/out/concepts/Comment__.js.map +1 -1
- package/out/concepts/ConfigProperty__.d.ts +4 -7
- package/out/concepts/ConfigProperty__.js +12 -10
- package/out/concepts/ConfigProperty__.js.map +1 -1
- package/out/concepts/Connection__.d.ts +4 -7
- package/out/concepts/Connection__.js +6 -5
- package/out/concepts/Connection__.js.map +1 -1
- package/out/concepts/Connector__.js.map +1 -1
- package/out/concepts/Constant__.d.ts +3 -3
- package/out/concepts/Constant__.js +38 -13
- package/out/concepts/Constant__.js.map +1 -1
- package/out/concepts/DataSource__.d.ts +4 -7
- package/out/concepts/DataSource__.js +7 -6
- package/out/concepts/DataSource__.js.map +1 -1
- package/out/concepts/DefaultValue__.d.ts +6 -2
- package/out/concepts/DefaultValue__.js +11 -3
- package/out/concepts/DefaultValue__.js.map +1 -1
- package/out/concepts/Destination__.d.ts +3 -3
- package/out/concepts/Destination__.js +29 -26
- package/out/concepts/Destination__.js.map +1 -1
- package/out/concepts/End__.d.ts +2 -2
- package/out/concepts/End__.js +17 -13
- package/out/concepts/End__.js.map +1 -1
- package/out/concepts/EntityIndex__.d.ts +2 -2
- package/out/concepts/EntityIndex__.js +4 -3
- package/out/concepts/EntityIndex__.js.map +1 -1
- package/out/concepts/EntityProperty__.d.ts +2 -2
- package/out/concepts/EntityProperty__.js +9 -8
- package/out/concepts/EntityProperty__.js.map +1 -1
- package/out/concepts/Entity__.d.ts +4 -7
- package/out/concepts/Entity__.js +22 -22
- package/out/concepts/Entity__.js.map +1 -1
- package/out/concepts/EnumItem__.d.ts +2 -2
- package/out/concepts/EnumItem__.js +4 -3
- package/out/concepts/EnumItem__.js.map +1 -1
- package/out/concepts/Enum__.d.ts +4 -7
- package/out/concepts/Enum__.js +10 -8
- package/out/concepts/Enum__.js.map +1 -1
- package/out/concepts/ExternalDestination__.d.ts +2 -2
- package/out/concepts/ExternalDestination__.js +7 -5
- package/out/concepts/ExternalDestination__.js.map +1 -1
- package/out/concepts/ForEachStatement__.d.ts +2 -2
- package/out/concepts/ForEachStatement__.js +14 -12
- package/out/concepts/ForEachStatement__.js.map +1 -1
- package/out/concepts/Frontend__.d.ts +4 -7
- package/out/concepts/Frontend__.js +7 -6
- package/out/concepts/Frontend__.js.map +1 -1
- package/out/concepts/Function__.d.ts +3 -3
- package/out/concepts/Function__.js +22 -18
- package/out/concepts/Function__.js.map +1 -1
- package/out/concepts/Identifier__.d.ts +2 -2
- package/out/concepts/Identifier__.js +19 -23
- package/out/concepts/Identifier__.js.map +1 -1
- package/out/concepts/IfStatement__.d.ts +2 -2
- package/out/concepts/IfStatement__.js +12 -10
- package/out/concepts/IfStatement__.js.map +1 -1
- package/out/concepts/ImportedInterface__.d.ts +20 -0
- package/out/concepts/ImportedInterface__.js +57 -0
- package/out/concepts/ImportedInterface__.js.map +1 -0
- package/out/concepts/InterfaceParam__.d.ts +2 -7
- package/out/concepts/InterfaceParam__.js +33 -14
- package/out/concepts/InterfaceParam__.js.map +1 -1
- package/out/concepts/Interface__.d.ts +7 -15
- package/out/concepts/Interface__.js +33 -43
- package/out/concepts/Interface__.js.map +1 -1
- package/out/concepts/JSBlock__.d.ts +2 -2
- package/out/concepts/JSBlock__.js +3 -58
- package/out/concepts/JSBlock__.js.map +1 -1
- package/out/concepts/JavaLogic__.d.ts +2 -2
- package/out/concepts/JavaLogic__.js +6 -2
- package/out/concepts/JavaLogic__.js.map +1 -1
- package/out/concepts/LogicItem__.d.ts +2 -2
- package/out/concepts/LogicItem__.js +7 -13
- package/out/concepts/LogicItem__.js.map +1 -1
- package/out/concepts/Logic__.d.ts +8 -11
- package/out/concepts/Logic__.js +124 -157
- package/out/concepts/Logic__.js.map +1 -1
- package/out/concepts/MatchCase__.d.ts +2 -2
- package/out/concepts/MatchCase__.js +23 -22
- package/out/concepts/MatchCase__.js.map +1 -1
- package/out/concepts/Match__.d.ts +2 -2
- package/out/concepts/Match__.js +24 -22
- package/out/concepts/Match__.js.map +1 -1
- package/out/concepts/MemberExpression__.d.ts +2 -2
- package/out/concepts/MemberExpression__.js +28 -24
- package/out/concepts/MemberExpression__.js.map +1 -1
- package/out/concepts/MetadataType__.d.ts +4 -7
- package/out/concepts/MetadataType__.js +11 -9
- package/out/concepts/MetadataType__.js.map +1 -1
- package/out/concepts/Module__.d.ts +8 -179
- package/out/concepts/Module__.js +124 -265
- package/out/concepts/Module__.js.map +1 -1
- package/out/concepts/NewComposite__.d.ts +5 -5
- package/out/concepts/NewComposite__.js +75 -76
- package/out/concepts/NewComposite__.js.map +1 -1
- package/out/concepts/NewList__.d.ts +5 -5
- package/out/concepts/NewList__.js +30 -26
- package/out/concepts/NewList__.js.map +1 -1
- package/out/concepts/NewMap__.d.ts +4 -4
- package/out/concepts/NewMap__.js +39 -35
- package/out/concepts/NewMap__.js.map +1 -1
- package/out/concepts/New__.d.ts +2 -2
- package/out/concepts/New__.js +3 -2
- package/out/concepts/New__.js.map +1 -1
- package/out/concepts/NullLiteral__.d.ts +2 -2
- package/out/concepts/NullLiteral__.js +2 -2
- package/out/concepts/NullLiteral__.js.map +1 -1
- package/out/concepts/NumericLiteral__.d.ts +2 -2
- package/out/concepts/NumericLiteral__.js +6 -5
- package/out/concepts/NumericLiteral__.js.map +1 -1
- package/out/concepts/OqlQueryComponent__.d.ts +2 -2
- package/out/concepts/OqlQueryComponent__.js +16 -14
- package/out/concepts/OqlQueryComponent__.js.map +1 -1
- package/out/concepts/OverriddenLogic__.d.ts +8 -11
- package/out/concepts/OverriddenLogic__.js +99 -112
- package/out/concepts/OverriddenLogic__.js.map +1 -1
- package/out/concepts/Param__.d.ts +3 -3
- package/out/concepts/Param__.js +24 -30
- package/out/concepts/Param__.js.map +1 -1
- package/out/concepts/ProcessElement__.d.ts +2 -2
- package/out/concepts/ProcessElement__.js +54 -68
- package/out/concepts/ProcessElement__.js.map +1 -1
- package/out/concepts/ProcessOutcome__.d.ts +2 -1
- package/out/concepts/ProcessOutcome__.js +5 -4
- package/out/concepts/ProcessOutcome__.js.map +1 -1
- package/out/concepts/ProcessOutcomes__.d.ts +2 -1
- package/out/concepts/ProcessOutcomes__.js +6 -5
- package/out/concepts/ProcessOutcomes__.js.map +1 -1
- package/out/concepts/Process__.d.ts +4 -7
- package/out/concepts/Process__.js +35 -52
- package/out/concepts/Process__.js.map +1 -1
- package/out/concepts/QueryAggregateExpression__.d.ts +2 -2
- package/out/concepts/QueryAggregateExpression__.js +2 -2
- package/out/concepts/QueryAggregateExpression__.js.map +1 -1
- package/out/concepts/QueryFieldExpression__.d.ts +2 -2
- package/out/concepts/QueryFieldExpression__.js +5 -4
- package/out/concepts/QueryFieldExpression__.js.map +1 -1
- package/out/concepts/QueryFromExpression__.d.ts +2 -2
- package/out/concepts/QueryFromExpression__.js +8 -6
- package/out/concepts/QueryFromExpression__.js.map +1 -1
- package/out/concepts/QueryGroupByExpression__.d.ts +2 -1
- package/out/concepts/QueryGroupByExpression__.js +6 -5
- package/out/concepts/QueryGroupByExpression__.js.map +1 -1
- package/out/concepts/QueryJoinExpression__.d.ts +2 -2
- package/out/concepts/QueryJoinExpression__.js +12 -10
- package/out/concepts/QueryJoinExpression__.js.map +1 -1
- package/out/concepts/QueryLimitExpression__.d.ts +2 -2
- package/out/concepts/QueryLimitExpression__.js +6 -5
- package/out/concepts/QueryLimitExpression__.js.map +1 -1
- package/out/concepts/QueryOrderByExpression__.d.ts +2 -2
- package/out/concepts/QueryOrderByExpression__.js +6 -5
- package/out/concepts/QueryOrderByExpression__.js.map +1 -1
- package/out/concepts/Return__.d.ts +3 -3
- package/out/concepts/Return__.js +41 -24
- package/out/concepts/Return__.js.map +1 -1
- package/out/concepts/Role__.d.ts +4 -7
- package/out/concepts/Role__.js +7 -6
- package/out/concepts/Role__.js.map +1 -1
- package/out/concepts/SelectMembers__.d.ts +2 -2
- package/out/concepts/SelectMembers__.js +3 -2
- package/out/concepts/SelectMembers__.js.map +1 -1
- package/out/concepts/SqlQueryComponent__.d.ts +2 -2
- package/out/concepts/SqlQueryComponent__.js +12 -10
- package/out/concepts/SqlQueryComponent__.js.map +1 -1
- package/out/concepts/Start__.d.ts +2 -2
- package/out/concepts/Start__.js +2 -2
- package/out/concepts/Start__.js.map +1 -1
- package/out/concepts/StringInterpolation__.d.ts +2 -2
- package/out/concepts/StringInterpolation__.js +7 -5
- package/out/concepts/StringInterpolation__.js.map +1 -1
- package/out/concepts/StringLiteral__.d.ts +2 -2
- package/out/concepts/StringLiteral__.js +12 -6
- package/out/concepts/StringLiteral__.js.map +1 -1
- package/out/concepts/StructureProperty__.d.ts +2 -2
- package/out/concepts/StructureProperty__.js +6 -5
- package/out/concepts/StructureProperty__.js.map +1 -1
- package/out/concepts/Structure__.d.ts +4 -7
- package/out/concepts/Structure__.js +15 -15
- package/out/concepts/Structure__.js.map +1 -1
- package/out/concepts/SwitchCase__.d.ts +2 -2
- package/out/concepts/SwitchCase__.js +12 -10
- package/out/concepts/SwitchCase__.js.map +1 -1
- package/out/concepts/SwitchStatement__.d.ts +2 -2
- package/out/concepts/SwitchStatement__.js +8 -6
- package/out/concepts/SwitchStatement__.js.map +1 -1
- package/out/concepts/TriggerLauncher__.d.ts +4 -7
- package/out/concepts/TriggerLauncher__.js +7 -6
- package/out/concepts/TriggerLauncher__.js.map +1 -1
- package/out/concepts/TypeAnnotation__.d.ts +2 -2
- package/out/concepts/TypeAnnotation__.js +51 -25
- package/out/concepts/TypeAnnotation__.js.map +1 -1
- package/out/concepts/TypeParam__.d.ts +2 -2
- package/out/concepts/TypeParam__.js +4 -3
- package/out/concepts/TypeParam__.js.map +1 -1
- package/out/concepts/UnaryExpression__.d.ts +2 -2
- package/out/concepts/UnaryExpression__.js +12 -7
- package/out/concepts/UnaryExpression__.js.map +1 -1
- package/out/concepts/Unparsed__.d.ts +2 -2
- package/out/concepts/Unparsed__.js +2 -2
- package/out/concepts/Unparsed__.js.map +1 -1
- package/out/concepts/ValidationRule__.d.ts +2 -2
- package/out/concepts/ValidationRule__.js +11 -9
- package/out/concepts/ValidationRule__.js.map +1 -1
- package/out/concepts/Variable__.d.ts +5 -8
- package/out/concepts/Variable__.js +49 -32
- package/out/concepts/Variable__.js.map +1 -1
- package/out/concepts/ViewElement__.d.ts +6 -6
- package/out/concepts/ViewElement__.js +110 -137
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/concepts/View__.d.ts +6 -9
- package/out/concepts/View__.js +76 -84
- package/out/concepts/View__.js.map +1 -1
- package/out/concepts/WhileStatement__.d.ts +2 -2
- package/out/concepts/WhileStatement__.js +9 -7
- package/out/concepts/WhileStatement__.js.map +1 -1
- package/out/concepts/index__.d.ts +1 -1
- package/out/concepts/index__.js +1 -1
- package/out/concepts/index__.js.map +1 -1
- package/out/concepts/types__.d.ts +1 -3
- package/out/decorators/index.js +10 -9
- package/out/decorators/index.js.map +1 -1
- package/out/generator/genMetaData.js +0 -7
- package/out/generator/genMetaData.js.map +1 -1
- package/out/manager/diagnostic.d.ts +1 -1
- package/out/manager/diagnostic.js +2 -3
- package/out/manager/diagnostic.js.map +1 -1
- package/out/server/extendBaseNode.js +7 -24
- package/out/server/extendBaseNode.js.map +1 -1
- package/out/server/getConnector.js +8 -3
- package/out/server/getConnector.js.map +1 -1
- package/out/server/getLogics.js +13 -3
- package/out/server/getLogics.js.map +1 -1
- package/out/server/naslServer.d.ts +44 -46
- package/out/server/naslServer.js +333 -461
- package/out/server/naslServer.js.map +1 -1
- package/out/server/translator.js +1 -1
- package/out/server/translator.js.map +1 -1
- package/out/templator/genCreateBlock.js +5 -9
- package/out/templator/genCreateBlock.js.map +1 -1
- package/out/templator/genCurdEditMultipleKeyBlock.js +12 -18
- package/out/templator/genCurdEditMultipleKeyBlock.js.map +1 -1
- package/out/templator/genCurdMultipleKeyBlock.js +8 -10
- package/out/templator/genCurdMultipleKeyBlock.js.map +1 -1
- package/out/templator/genEditTableBlock.js +2 -3
- package/out/templator/genEditTableBlock.js.map +1 -1
- package/out/templator/genUpdateBlock.js +9 -12
- package/out/templator/genUpdateBlock.js.map +1 -1
- package/out/templator/utils.js.map +1 -1
- package/out/translator/types.d.ts +16 -3
- package/out/translator/utils.d.ts +19 -1
- package/out/translator/utils.js +90 -2
- package/out/translator/utils.js.map +1 -1
- package/out/utils/time-slicing/constant.d.ts +35 -0
- package/out/utils/time-slicing/constant.js +40 -0
- package/out/utils/time-slicing/constant.js.map +1 -0
- package/out/utils/time-slicing/controller.d.ts +53 -0
- package/out/utils/time-slicing/controller.js +280 -0
- package/out/utils/time-slicing/controller.js.map +1 -0
- package/out/utils/time-slicing/index.d.ts +5 -0
- package/out/utils/time-slicing/index.js +26 -0
- package/out/utils/time-slicing/index.js.map +1 -0
- package/out/utils/time-slicing/page-state.d.ts +2 -0
- package/out/utils/time-slicing/page-state.js +14 -0
- package/out/utils/time-slicing/page-state.js.map +1 -0
- package/out/utils/time-slicing/performance.d.ts +11 -0
- package/out/utils/time-slicing/performance.js +51 -0
- package/out/utils/time-slicing/performance.js.map +1 -0
- package/out/utils/time-slicing/runner.d.ts +12 -0
- package/out/utils/time-slicing/runner.js +53 -0
- package/out/utils/time-slicing/runner.js.map +1 -0
- package/out/utils/time-slicing/tool.d.ts +24 -0
- package/out/utils/time-slicing/tool.js +47 -0
- package/out/utils/time-slicing/tool.js.map +1 -0
- package/out/utils/time-slicing/utils.d.ts +62 -0
- package/out/utils/time-slicing/utils.js +47 -0
- package/out/utils/time-slicing/utils.js.map +1 -0
- package/out/utils/time-slicing/wrapper.d.ts +18 -0
- package/out/utils/time-slicing/wrapper.js +55 -0
- package/out/utils/time-slicing/wrapper.js.map +1 -0
- package/out/utils/types.d.ts +7 -0
- package/package.json +1 -1
- package/sandbox/stdlib/nasl.core.ts +0 -2
- package/sandbox/stdlib/nasl.util.ts +1 -1
- package/src/bak/translator.js +2 -17
- package/src/common/BaseNode.ts +73 -7
- package/src/common/index.ts +1 -0
- package/src/common/utils.ts +17 -0
- package/src/concepts/Abort__.ts +12 -3
- package/src/concepts/Anchor__.ts +15 -5
- package/src/concepts/AnonymousFunction__.ts +29 -23
- package/src/concepts/Argument__.ts +25 -14
- package/src/concepts/Assignee__.ts +21 -10
- package/src/concepts/AssignmentLine__.ts +13 -3
- package/src/concepts/Assignment__.ts +33 -42
- package/src/concepts/AuthInterface__.ts +3 -3
- package/src/concepts/AuthLogicForCallInterface__.ts +63 -84
- package/src/concepts/BackendVariable__.ts +35 -30
- package/src/concepts/Backend__.ts +24 -7
- package/src/concepts/BatchAssignment__.ts +30 -21
- package/src/concepts/BinaryExpression__.ts +47 -38
- package/src/concepts/BindAttribute__.ts +43 -39
- package/src/concepts/BindDirective__.ts +19 -9
- package/src/concepts/BindEvent__.ts +31 -26
- package/src/concepts/BindStyle__.ts +18 -8
- package/src/concepts/Block__.ts +22 -6
- package/src/concepts/BooleanLiteral__.ts +11 -3
- package/src/concepts/CallAuthInterface__.ts +58 -33
- package/src/concepts/CallConnector__.ts +34 -26
- package/src/concepts/CallFunction__.ts +22 -17
- package/src/concepts/CallInterface__.ts +30 -12
- package/src/concepts/CallLogic__.ts +46 -47
- package/src/concepts/CallQueryComponent__.ts +48 -46
- package/src/concepts/Comment__.ts +13 -3
- package/src/concepts/ConfigProperty__.ts +22 -12
- package/src/concepts/Connection__.ts +22 -6
- package/src/concepts/Connector__.ts +1 -1
- package/src/concepts/Constant__.ts +24 -14
- package/src/concepts/DataSource__.ts +16 -7
- package/src/concepts/DefaultValue__.ts +13 -4
- package/src/concepts/Destination__.ts +39 -33
- package/src/concepts/End__.ts +24 -15
- package/src/concepts/EntityIndex__.ts +13 -4
- package/src/concepts/EntityProperty__.ts +20 -10
- package/src/concepts/Entity__.ts +34 -27
- package/src/concepts/EnumItem__.ts +13 -4
- package/src/concepts/Enum__.ts +21 -10
- package/src/concepts/ExternalDestination__.ts +16 -7
- package/src/concepts/ForEachStatement__.ts +24 -14
- package/src/concepts/Frontend__.ts +18 -7
- package/src/concepts/Function__.ts +30 -21
- package/src/concepts/Identifier__.ts +32 -34
- package/src/concepts/IfStatement__.ts +22 -14
- package/src/concepts/ImportedInterface__.ts +61 -0
- package/src/concepts/InterfaceParam__.ts +19 -16
- package/src/concepts/Interface__.ts +45 -51
- package/src/concepts/JSBlock__.ts +12 -61
- package/src/concepts/JavaLogic__.ts +13 -3
- package/src/concepts/LogicItem__.ts +13 -14
- package/src/concepts/Logic__.ts +147 -172
- package/src/concepts/MatchCase__.ts +33 -27
- package/src/concepts/Match__.ts +34 -26
- package/src/concepts/MemberExpression__.ts +37 -25
- package/src/concepts/MetadataType__.ts +22 -10
- package/src/concepts/Module__.ts +177 -540
- package/src/concepts/NewComposite__.ts +86 -80
- package/src/concepts/NewList__.ts +40 -32
- package/src/concepts/NewMap__.ts +49 -42
- package/src/concepts/New__.ts +13 -3
- package/src/concepts/NullLiteral__.ts +11 -3
- package/src/concepts/NumericLiteral__.ts +15 -6
- package/src/concepts/OqlQueryComponent__.ts +26 -18
- package/src/concepts/OverriddenLogic__.ts +117 -125
- package/src/concepts/Param__.ts +42 -38
- package/src/concepts/ProcessElement__.ts +67 -79
- package/src/concepts/ProcessOutcome__.ts +14 -6
- package/src/concepts/ProcessOutcomes__.ts +15 -7
- package/src/concepts/Process__.ts +50 -61
- package/src/concepts/QueryAggregateExpression__.ts +11 -3
- package/src/concepts/QueryFieldExpression__.ts +14 -5
- package/src/concepts/QueryFromExpression__.ts +18 -7
- package/src/concepts/QueryGroupByExpression__.ts +14 -6
- package/src/concepts/QueryJoinExpression__.ts +22 -11
- package/src/concepts/QueryLimitExpression__.ts +16 -6
- package/src/concepts/QueryOrderByExpression__.ts +17 -6
- package/src/concepts/Return__.ts +27 -25
- package/src/concepts/Role__.ts +17 -8
- package/src/concepts/SelectMembers__.ts +13 -3
- package/src/concepts/SqlQueryComponent__.ts +22 -11
- package/src/concepts/Start__.ts +11 -3
- package/src/concepts/StringInterpolation__.ts +10 -5
- package/src/concepts/StringLiteral__.ts +20 -7
- package/src/concepts/StructureProperty__.ts +16 -6
- package/src/concepts/Structure__.ts +26 -18
- package/src/concepts/SwitchCase__.ts +22 -14
- package/src/concepts/SwitchStatement__.ts +17 -7
- package/src/concepts/TriggerLauncher__.ts +17 -7
- package/src/concepts/TypeAnnotation__.ts +36 -26
- package/src/concepts/TypeParam__.ts +13 -4
- package/src/concepts/UnaryExpression__.ts +22 -9
- package/src/concepts/Unparsed__.ts +11 -3
- package/src/concepts/ValidationRule__.ts +21 -17
- package/src/concepts/Variable__.ts +37 -33
- package/src/concepts/ViewElement__.ts +128 -156
- package/src/concepts/View__.ts +101 -101
- package/src/concepts/WhileStatement__.ts +19 -10
- package/src/concepts/index__.ts +1 -1
- package/src/concepts/types__.ts +1 -5
- package/src/decorators/index.ts +10 -9
- package/src/generator/genMetaData.ts +2 -12
- package/src/manager/diagnostic.ts +3 -4
- package/src/server/extendBaseNode.ts +8 -24
- package/src/server/getConnector.ts +8 -3
- package/src/server/getLogics.ts +15 -3
- package/src/server/naslServer.ts +717 -749
- package/src/server/translator.ts +1 -1
- package/src/templator/genCreateBlock.ts +5 -9
- package/src/templator/genCurdEditMultipleKeyBlock.ts +13 -19
- package/src/templator/genCurdMultipleKeyBlock.ts +11 -14
- package/src/templator/genEditTableBlock.ts +2 -4
- package/src/templator/genUpdateBlock.ts +12 -15
- package/src/templator/utils.ts +7 -8
- package/src/translator/types.ts +20 -5
- package/src/translator/utils.ts +100 -5
- package/src/utils/time-slicing/constant.ts +37 -0
- package/src/utils/time-slicing/controller.ts +342 -0
- package/src/utils/time-slicing/index.ts +6 -0
- package/src/utils/time-slicing/page-state.ts +12 -0
- package/src/utils/time-slicing/performance.ts +56 -0
- package/src/utils/time-slicing/runner.ts +54 -0
- package/src/utils/time-slicing/tool.ts +45 -0
- package/src/utils/time-slicing/utils.ts +90 -0
- package/src/utils/time-slicing/wrapper.ts +58 -0
- package/src/utils/types.ts +9 -0
- package/test/concepts/anonymous-function/toEmbeddedTS.spec.ts +2 -1
- package/test/concepts/assignment/toEmbeddedTS.spec.ts +2 -1
- package/test/concepts/batch-assignment/toEmbeddedTS.spec.ts +2 -1
- package/test/concepts/binary-expression/__snapshots__/toEmbeddedTS.spec.ts.snap +3 -3
- package/test/concepts/binary-expression/toEmbeddedTS.spec.ts +2 -1
- package/test/concepts/boolean-literal/toEmbeddedTS.spec.ts +2 -1
- package/test/concepts/call-function/toEmbeddedTS.spec.ts +2 -1
- package/test/concepts/call-interface/__snapshots__/toJS.spec.ts.snap +3 -3
- package/test/concepts/call-interface/toEmbeddedTS.spec.ts +2 -1
- package/test/concepts/call-logic/__snapshots__/toJS.spec.ts.snap +5 -5
- package/test/concepts/call-logic/getQuickInfoOffset.spec.ts +2 -1
- package/test/concepts/call-logic/toEmbeddedTS.spec.ts +2 -1
- package/test/concepts/data-source/toEmbeddedTS.spec.ts +2 -1
- package/test/concepts/data-source/toEmbeddedTSFile.spec.ts +2 -1
- package/test/concepts/entity/__snapshots__/toEmbeddedTS.spec.ts.snap +19 -19
- package/test/concepts/entity/toEmbeddedTS.spec.ts +2 -1
- package/test/concepts/identifier/toEmbeddedTS.spec.ts +2 -1
- package/test/concepts/match/__snapshots__/toJS.spec.ts.snap +1 -1
- package/test/concepts/match/toEmbeddedTS.spec.ts +2 -1
- package/test/concepts/member-expression/toEmbeddedTS.spec.ts +2 -1
- package/test/concepts/null-literal/toEmbeddedTS.spec.ts +2 -1
- package/test/concepts/numeric-literal/__snapshots__/toJS.spec.ts.snap +1 -1
- package/test/concepts/numeric-literal/toEmbeddedTS.spec.ts +2 -1
- package/test/concepts/string-literal/toEmbeddedTS.spec.ts +2 -1
- package/test/concepts/validation-rule/__snapshots__/toJS.spec.ts.snap +3 -3
- package/test/concepts/validation-rule/toEmbeddedTS.spec.ts +2 -1
- package/test/concepts/validation-rule/validation-rule.spec.ts +2 -1
- package/test/concepts/view-element/__snapshots__/toEmbeddedTS.spec.ts.snap +3 -3
- package/test/concepts/view-element/__snapshots__/toVue.spec.ts.snap +0 -4
- package/test/concepts/view-element/toEmbeddedTS.spec.ts +2 -1
- package/test/time-slicing/runner.spec.ts +28 -0
- package/test/time-slicing/time-slicing-nodejs.spec.ts +27 -0
- package/test/time-slicing/utils.ts +7 -0
- package/test/time-slicing/wrapper.spec.ts +92 -0
- package/ts-worker/lib/tsserver.js +10 -1
- package/ts-worker/package.json +1 -0
- package/ts-worker/src/index.js +13 -12
- package/ts-worker/webpack.config.js +1 -1
- package/out/concepts/InterfaceFromExample__.d.ts +0 -88
- package/out/concepts/InterfaceFromExample__.js +0 -183
- package/out/concepts/InterfaceFromExample__.js.map +0 -1
- package/out/utils/time-slicing.d.ts +0 -41
- package/out/utils/time-slicing.js +0 -82
- package/out/utils/time-slicing.js.map +0 -1
- package/src/concepts/InterfaceFromExample__.ts +0 -205
- package/src/utils/time-slicing.ts +0 -111
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
import { pageIsActive } from './page-state';
|
|
2
|
+
import { Performance } from './performance';
|
|
3
|
+
import {
|
|
4
|
+
getFrameMark,
|
|
5
|
+
getGroupMark,
|
|
6
|
+
getAsyncMark,
|
|
7
|
+
GroupData,
|
|
8
|
+
FrameData,
|
|
9
|
+
AsyncData,
|
|
10
|
+
getId,
|
|
11
|
+
} from './utils';
|
|
12
|
+
import {
|
|
13
|
+
LowResourceRatio,
|
|
14
|
+
FrameMinTime,
|
|
15
|
+
FrameIdleTime,
|
|
16
|
+
NextState,
|
|
17
|
+
TheoreticalLimitCalculationCoefficient as Coefficient,
|
|
18
|
+
} from './constant';
|
|
19
|
+
|
|
20
|
+
/** 时间分片控制器 */
|
|
21
|
+
export class TimeSlicingController {
|
|
22
|
+
/** 控制器编号 */
|
|
23
|
+
private id = getId();
|
|
24
|
+
|
|
25
|
+
/** 已处理的任务数量 */
|
|
26
|
+
private allTaskNumber = 0;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* 已处理任务消耗的总时间
|
|
30
|
+
*
|
|
31
|
+
* @description 单位“毫秒”
|
|
32
|
+
*/
|
|
33
|
+
private allTaskTime = 0;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* 单个任务平均执行时间
|
|
37
|
+
*
|
|
38
|
+
* @description 单位“毫秒”,初始化为`1`微秒
|
|
39
|
+
*/
|
|
40
|
+
private averageTaskTime = 1e-3;
|
|
41
|
+
|
|
42
|
+
/** 资源不足帧的数量 */
|
|
43
|
+
private lowResourceFrame = 0;
|
|
44
|
+
|
|
45
|
+
/** 帧数据 */
|
|
46
|
+
private readonly frame: FrameData = {
|
|
47
|
+
id: 0,
|
|
48
|
+
time: 0,
|
|
49
|
+
groupTime: 0,
|
|
50
|
+
mark: getFrameMark(0),
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
/** 任务组数据 */
|
|
54
|
+
private readonly group: GroupData = {
|
|
55
|
+
id: 0,
|
|
56
|
+
time: 0,
|
|
57
|
+
limit: 1,
|
|
58
|
+
frameId: 1,
|
|
59
|
+
mark: getGroupMark(0),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
/** 异步等待数据 */
|
|
63
|
+
private readonly async: AsyncData = {
|
|
64
|
+
id: 0,
|
|
65
|
+
time: 0,
|
|
66
|
+
result: undefined,
|
|
67
|
+
mark: getAsyncMark(0),
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/** 性能检测包装器 */
|
|
71
|
+
private readonly performance = new Performance(this.id);
|
|
72
|
+
|
|
73
|
+
/// #if process.env.NODE_ENV === 'development'
|
|
74
|
+
private groupList: GroupData[] = [];
|
|
75
|
+
private frameList: FrameData[] = [];
|
|
76
|
+
private asyncList: AsyncData[] = [];
|
|
77
|
+
/// #endif
|
|
78
|
+
|
|
79
|
+
/** 任务增长系数 */
|
|
80
|
+
private increaseRatio(now: number) {
|
|
81
|
+
if (now <= 0) {
|
|
82
|
+
return 1;
|
|
83
|
+
}
|
|
84
|
+
else if (this.allTaskTime < 0.01) {
|
|
85
|
+
return now * 10;
|
|
86
|
+
}
|
|
87
|
+
else if (now < 10) {
|
|
88
|
+
return now * 2;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
return now * 1.3;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/** 下组任务状态 */
|
|
96
|
+
private getNextData() {
|
|
97
|
+
const { frame, group, async } = this;
|
|
98
|
+
|
|
99
|
+
// 页面处于活动状态
|
|
100
|
+
if (pageIsActive) {
|
|
101
|
+
/** 帧剩余时间 */
|
|
102
|
+
const restFrameTime = Math.max(FrameMinTime - async.time - frame.time, 0);
|
|
103
|
+
/** 是否使用下一帧 */
|
|
104
|
+
const useNextFrame = restFrameTime < FrameIdleTime;
|
|
105
|
+
const state = useNextFrame ? NextState.NextFrame : NextState.MicroTask;
|
|
106
|
+
/** 增长系数计算的任务上限 */
|
|
107
|
+
const taskNumberByRatio = this.increaseRatio(group.limit);
|
|
108
|
+
/** 理论上限 */
|
|
109
|
+
const taskNumberByTheoretical = useNextFrame
|
|
110
|
+
? Math.round((FrameMinTime - FrameIdleTime) / this.averageTaskTime * Coefficient)
|
|
111
|
+
: Math.round(restFrameTime / this.averageTaskTime * Coefficient);
|
|
112
|
+
/** 实际应该使用的任务上限 */
|
|
113
|
+
const realTaskNumber = Math.floor(
|
|
114
|
+
taskNumberByTheoretical <= 0
|
|
115
|
+
? 1
|
|
116
|
+
: taskNumberByTheoretical < taskNumberByRatio
|
|
117
|
+
? taskNumberByTheoretical
|
|
118
|
+
: taskNumberByRatio
|
|
119
|
+
);
|
|
120
|
+
|
|
121
|
+
return {
|
|
122
|
+
next: state,
|
|
123
|
+
task: realTaskNumber,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
// 页面在后台时,不需要顾忌 UI 渲染,全速跑即可
|
|
127
|
+
else {
|
|
128
|
+
return {
|
|
129
|
+
next: NextState.MicroTask,
|
|
130
|
+
task: Math.round(FrameMinTime / this.averageTaskTime),
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/** 清除状态 */
|
|
136
|
+
private clearState() {
|
|
137
|
+
this.performance.clear();
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/** 展示信息 */
|
|
141
|
+
private displayInfo() {
|
|
142
|
+
// 调试用的代码,别删
|
|
143
|
+
// console.log('时间分片完成', {
|
|
144
|
+
// '任务数': this.allTaskNumber,
|
|
145
|
+
// '单任务平均耗时': this.averageTaskTime,
|
|
146
|
+
// '任务组数据': this.groupList,
|
|
147
|
+
// '帧数据': this.frameList,
|
|
148
|
+
// '异步等待数据': this.asyncList,
|
|
149
|
+
// });
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/** 当前组运行开始 */
|
|
153
|
+
private setGroupStart() {
|
|
154
|
+
const { group, frame, performance } = this;
|
|
155
|
+
|
|
156
|
+
group.id++;
|
|
157
|
+
group.time = 0;
|
|
158
|
+
group.frameId = frame.id;
|
|
159
|
+
group.mark = getGroupMark(group.id);
|
|
160
|
+
|
|
161
|
+
performance.mark(group.mark.GroupStart);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/** 当前组运行结束 */
|
|
165
|
+
private setGroupEnd() {
|
|
166
|
+
const { group, frame, performance } = this;
|
|
167
|
+
|
|
168
|
+
performance.mark(group.mark.GroupEnd);
|
|
169
|
+
/** 当前微任务的运行时间 */
|
|
170
|
+
const groupMeasure = performance.measure(group.mark.GroupMeasure, group.mark.GroupStart, group.mark.GroupEnd);
|
|
171
|
+
/** 当前帧的运行时间 */
|
|
172
|
+
const frameMeasure = performance.measure(frame.mark.FrameMeasure, frame.mark.FrameStart, group.mark.GroupEnd);
|
|
173
|
+
|
|
174
|
+
performance.clearByNames(group.mark.GroupStart, group.mark.GroupEnd);
|
|
175
|
+
performance.clearByNames(group.mark.GroupMeasure, frame.mark.FrameMeasure);
|
|
176
|
+
|
|
177
|
+
group.time = groupMeasure.duration;
|
|
178
|
+
frame.time = frameMeasure.duration;
|
|
179
|
+
|
|
180
|
+
this.frame.groupTime += groupMeasure.duration;
|
|
181
|
+
this.allTaskNumber += group.limit;
|
|
182
|
+
this.allTaskTime += groupMeasure.duration;
|
|
183
|
+
this.averageTaskTime = this.allTaskTime / this.allTaskNumber;
|
|
184
|
+
|
|
185
|
+
/// #if process.env.NODE_ENV === 'development'
|
|
186
|
+
this.groupList.push({ ...group });
|
|
187
|
+
/// #endif
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/** 动画帧开始 */
|
|
191
|
+
private setFrameStart() {
|
|
192
|
+
const { frame, performance } = this;
|
|
193
|
+
|
|
194
|
+
frame.id++;
|
|
195
|
+
frame.groupTime = 0;
|
|
196
|
+
frame.mark = getFrameMark(frame.id);
|
|
197
|
+
performance.clear();
|
|
198
|
+
performance.mark(frame.mark.FrameStart);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/** 动画帧结束 */
|
|
202
|
+
private setFrameEnd() {
|
|
203
|
+
const { frame } = this;
|
|
204
|
+
|
|
205
|
+
/// #if process.env.NODE_ENV === 'development'
|
|
206
|
+
this.frameList.push({ ...this.frame });
|
|
207
|
+
/// #endif
|
|
208
|
+
|
|
209
|
+
// 资源不足
|
|
210
|
+
if ((frame.groupTime / frame.time) < LowResourceRatio) {
|
|
211
|
+
this.lowResourceFrame++;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/** 异步等待开始 */
|
|
216
|
+
private setAsyncStart() {
|
|
217
|
+
const { async, performance } = this;
|
|
218
|
+
|
|
219
|
+
async.id++;
|
|
220
|
+
async.time = 0;
|
|
221
|
+
async.mark = getAsyncMark(async.id);
|
|
222
|
+
performance.mark(async.mark.AsyncStart);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/** 异步等待结束 */
|
|
226
|
+
private setAsyncEnd() {
|
|
227
|
+
const { async, performance } = this;
|
|
228
|
+
|
|
229
|
+
performance.mark(async.mark.AsyncEnd);
|
|
230
|
+
async.time = performance.measure(async.mark.AsyncMeasure, async.mark.AsyncStart, async.mark.AsyncEnd).duration;
|
|
231
|
+
performance.clearByNames(async.mark.AsyncStart, async.mark.AsyncEnd, async.mark.AsyncMeasure);
|
|
232
|
+
|
|
233
|
+
/// #if process.env.NODE_ENV === 'development'
|
|
234
|
+
this.asyncList.push({ ...async });
|
|
235
|
+
/// #endif
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
run<T = void>(generator: Generator<any, T, void>): Promise<T> {
|
|
239
|
+
return new Promise<T>((resolve) => {
|
|
240
|
+
/** 生成器结果 */
|
|
241
|
+
let result: IteratorResult<void, any> = {
|
|
242
|
+
done: false,
|
|
243
|
+
value: undefined,
|
|
244
|
+
};
|
|
245
|
+
/** 异步运行标志 */
|
|
246
|
+
let waitAsync = false;
|
|
247
|
+
|
|
248
|
+
const { group } = this;
|
|
249
|
+
const isPromise = (input: unknown): input is Promise<any> => input && input instanceof Promise;
|
|
250
|
+
|
|
251
|
+
/** 运行帧 */
|
|
252
|
+
const runFrame = () => {
|
|
253
|
+
this.setFrameStart();
|
|
254
|
+
runGroup();
|
|
255
|
+
};
|
|
256
|
+
/** 运行下组任务 */
|
|
257
|
+
const runNextGroup = () => {
|
|
258
|
+
const { next, task } = this.getNextData();
|
|
259
|
+
|
|
260
|
+
group.limit = task;
|
|
261
|
+
|
|
262
|
+
if (next === NextState.MicroTask) {
|
|
263
|
+
Promise.resolve().then(runGroup);
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
this.setFrameEnd();
|
|
267
|
+
requestAnimationFrame(runFrame);
|
|
268
|
+
}
|
|
269
|
+
};
|
|
270
|
+
/** 运行任务组 */
|
|
271
|
+
const runGroup = () => {
|
|
272
|
+
this.setGroupStart();
|
|
273
|
+
runGroupTask();
|
|
274
|
+
this.setGroupEnd();
|
|
275
|
+
|
|
276
|
+
// 等待异步任务
|
|
277
|
+
if (waitAsync) {
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
// 结束运行
|
|
282
|
+
if (result.done) {
|
|
283
|
+
this.clearState();
|
|
284
|
+
/// #if process.env.NODE_ENV === 'development'
|
|
285
|
+
this.displayInfo();
|
|
286
|
+
console.timeEnd(`时间分片-${this.id}`);
|
|
287
|
+
/// #endif
|
|
288
|
+
resolve(result.value);
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
runNextGroup();
|
|
293
|
+
};
|
|
294
|
+
/** 运行异步任务 */
|
|
295
|
+
const runAsyncTask = (param: unknown) => {
|
|
296
|
+
this.setAsyncEnd();
|
|
297
|
+
this.async.result = param;
|
|
298
|
+
runNextGroup();
|
|
299
|
+
waitAsync = false;
|
|
300
|
+
this.async.time = 0;
|
|
301
|
+
};
|
|
302
|
+
/** 运行任务 */
|
|
303
|
+
const runGroupTask = () => {
|
|
304
|
+
let taskId = 0;
|
|
305
|
+
|
|
306
|
+
while (!result.done && taskId < group.limit) {
|
|
307
|
+
const lastIsPromise = isPromise(result.value);
|
|
308
|
+
const lastParam = lastIsPromise ? this.async.result : result.value;
|
|
309
|
+
|
|
310
|
+
taskId++;
|
|
311
|
+
result = generator.next(lastParam);
|
|
312
|
+
|
|
313
|
+
// 运行完毕
|
|
314
|
+
if (result.done || taskId >= group.limit) {
|
|
315
|
+
break;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
// 返回 Promise 时,等待异步任务完成
|
|
319
|
+
if (isPromise(result.value)) {
|
|
320
|
+
waitAsync = true;
|
|
321
|
+
this.setAsyncStart();
|
|
322
|
+
result.value
|
|
323
|
+
.then(runAsyncTask)
|
|
324
|
+
.catch(error => generator.throw(error));
|
|
325
|
+
|
|
326
|
+
break;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
// 记录实际运行数量
|
|
331
|
+
group.limit = taskId;
|
|
332
|
+
};
|
|
333
|
+
|
|
334
|
+
/// #if process.env.NODE_ENV === 'development'
|
|
335
|
+
console.time(`时间分片-${this.id}`);
|
|
336
|
+
/// #endif
|
|
337
|
+
|
|
338
|
+
// 启动分片
|
|
339
|
+
runFrame();
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { isNode } from '../env';
|
|
2
|
+
|
|
3
|
+
/** 页面活动状态 */
|
|
4
|
+
export let pageIsActive = false;
|
|
5
|
+
|
|
6
|
+
// 浏览器环境需要监听页面活动状态
|
|
7
|
+
if (!isNode) {
|
|
8
|
+
pageIsActive = !(document?.hidden ?? true);
|
|
9
|
+
document?.addEventListener('visibilitychange', () => {
|
|
10
|
+
pageIsActive = !document.hidden;
|
|
11
|
+
});
|
|
12
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
enum EntryType {
|
|
2
|
+
mark = 'mark',
|
|
3
|
+
measure = 'measure',
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export class Performance {
|
|
7
|
+
private id: number;
|
|
8
|
+
|
|
9
|
+
constructor(id: number) {
|
|
10
|
+
this.id = id;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
get prefix() {
|
|
14
|
+
return `[time-slicing]-${this.id}`;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
private getPerformanceId(name: string) {
|
|
18
|
+
return `${this.prefix}-${name}`;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
private clearEntry(entry: PerformanceEntry) {
|
|
22
|
+
if (entry.entryType === EntryType.mark) {
|
|
23
|
+
performance.clearMarks(entry.name);
|
|
24
|
+
}
|
|
25
|
+
else if (entry.entryType === EntryType.measure) {
|
|
26
|
+
performance.clearMeasures(entry.name);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
mark(name: string) {
|
|
31
|
+
return performance.mark(this.getPerformanceId(name));
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
measure(name: string, startMark: string, endMark: string) {
|
|
35
|
+
return performance.measure(this.getPerformanceId(name), this.getPerformanceId(startMark), this.getPerformanceId(endMark));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
clearByNames(...names: string[]) {
|
|
39
|
+
for (const name of names) {
|
|
40
|
+
const entry = performance.getEntriesByName(this.getPerformanceId(name))[0];
|
|
41
|
+
|
|
42
|
+
if (entry) {
|
|
43
|
+
this.clearEntry(entry);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
clear() {
|
|
49
|
+
const { prefix } = this;
|
|
50
|
+
|
|
51
|
+
performance.getEntries()
|
|
52
|
+
.filter((item) => item.entryType === EntryType.mark || item.entryType === EntryType.measure)
|
|
53
|
+
.filter((item) => item.name.startsWith(prefix))
|
|
54
|
+
.forEach((entry) => this.clearEntry(entry));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 运行生成器
|
|
3
|
+
*
|
|
4
|
+
* @description 同步模式
|
|
5
|
+
*/
|
|
6
|
+
export function runGeneratorSync<T = void>(generator: Generator<any, T, any>) {
|
|
7
|
+
let result = generator.next();
|
|
8
|
+
while (!result.done) {
|
|
9
|
+
result = generator.next(result.value);
|
|
10
|
+
}
|
|
11
|
+
return result.value;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* 运行生成器
|
|
16
|
+
*
|
|
17
|
+
* @description 异步模式
|
|
18
|
+
*/
|
|
19
|
+
export function runGeneratorAsync<T = void>(generator: Generator<any, T, any>): Promise<T> {
|
|
20
|
+
return new Promise<T>((resolve) => {
|
|
21
|
+
let result: IteratorResult<any, T> = {
|
|
22
|
+
done: false,
|
|
23
|
+
value: undefined,
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
function isPromise(input: unknown): input is Promise<any> {
|
|
27
|
+
return input && input instanceof Promise;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function runAsync(param: unknown) {
|
|
31
|
+
result.value = param;
|
|
32
|
+
run();
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function run() {
|
|
36
|
+
while (!result.done && !isPromise(result.value)) {
|
|
37
|
+
result = generator.next(result.value);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (result.done) {
|
|
41
|
+
resolve(result.value);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
if (isPromise(result.value)) {
|
|
46
|
+
result.value
|
|
47
|
+
.then(runAsync)
|
|
48
|
+
.catch(error => generator.throw(error));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
run();
|
|
53
|
+
});
|
|
54
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { isNode } from '../env';
|
|
2
|
+
import { TimeSlicingController } from './controller';
|
|
3
|
+
import { runGeneratorAsync as runAsync } from './runner';
|
|
4
|
+
import { wrapForEachToGenerator } from './wrapper';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* 时间分片
|
|
8
|
+
*
|
|
9
|
+
* @description 大型任务分片执行,保证不阻塞主线程
|
|
10
|
+
* @description 数组回调必须是同步的,若是想要使用异步回调,请使用`timeSlicingWithGenerator`方法
|
|
11
|
+
* @param {T[]} list - 项目列表
|
|
12
|
+
* @param {(val: T, index: number) => void} cb - 每个项目的回调
|
|
13
|
+
*/
|
|
14
|
+
export function timeSlicingWithList<T>(list: T[], cb: (val: T, index: number, arr: T[]) => void): Promise<void> {
|
|
15
|
+
// node 环境不需要进行切片
|
|
16
|
+
if (isNode) {
|
|
17
|
+
list.forEach((item, i) => cb(item, i, list));
|
|
18
|
+
return Promise.resolve();
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return new TimeSlicingController().run(wrapForEachToGenerator(list, cb));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* 生成器时间分片
|
|
26
|
+
*
|
|
27
|
+
* @description 大型任务的分片执行保证不阻塞主线程
|
|
28
|
+
* @description 生成器中允许使用异步操作,使用`yield [promise]`语句即可
|
|
29
|
+
* @example
|
|
30
|
+
* ```
|
|
31
|
+
* timeSlicingWithGenerator((function test() {
|
|
32
|
+
* const result = yield axios.get('xxxxxx');
|
|
33
|
+
* console.log(result);
|
|
34
|
+
* })());
|
|
35
|
+
* ```
|
|
36
|
+
* @param {Generator<any, T, any>} generator - 生成器
|
|
37
|
+
*/
|
|
38
|
+
export function timeSlicingWithGenerator<T = void>(generator: Generator<any, T, any>) {
|
|
39
|
+
// node 环境不需要进行切片
|
|
40
|
+
if (isNode) {
|
|
41
|
+
return runAsync<T>(generator);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return new TimeSlicingController().run(generator);
|
|
45
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
export interface TaskDataInDebug {
|
|
2
|
+
count: number;
|
|
3
|
+
time: number;
|
|
4
|
+
avg: number;
|
|
5
|
+
frameId: number;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface GroupData {
|
|
9
|
+
/** 任务组编号 */
|
|
10
|
+
id: number;
|
|
11
|
+
/** 所属帧编号 */
|
|
12
|
+
frameId: number;
|
|
13
|
+
/** 任务组耗时 */
|
|
14
|
+
time: number;
|
|
15
|
+
/** 任务组数量 */
|
|
16
|
+
limit: number;
|
|
17
|
+
/** 任务组标签 */
|
|
18
|
+
mark: ReturnType<typeof getGroupMark>;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface FrameData {
|
|
22
|
+
/** 帧编号 */
|
|
23
|
+
id: number;
|
|
24
|
+
/** 帧耗时 */
|
|
25
|
+
time: number;
|
|
26
|
+
/** 任务组在当前帧的耗时 */
|
|
27
|
+
groupTime: number;
|
|
28
|
+
/** 帧标签 */
|
|
29
|
+
mark: ReturnType<typeof getFrameMark>;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface AsyncData {
|
|
33
|
+
/** 异步等待编号 */
|
|
34
|
+
id: number;
|
|
35
|
+
/** 异步等待耗时 */
|
|
36
|
+
time: number;
|
|
37
|
+
/** 异步结果 */
|
|
38
|
+
result: any;
|
|
39
|
+
/** 异步标签 */
|
|
40
|
+
mark: ReturnType<typeof getAsyncMark>;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/** 编号 */
|
|
44
|
+
let id = 0;
|
|
45
|
+
|
|
46
|
+
export function getId() {
|
|
47
|
+
return id++;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** 延迟 */
|
|
51
|
+
export function delay(time: number = 10) {
|
|
52
|
+
return new Promise<void>((resolve) => setTimeout(resolve, time));
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function getAsyncMark(id: number) {
|
|
56
|
+
return {
|
|
57
|
+
AsyncStart: `AsyncStart-${id}`,
|
|
58
|
+
AsyncEnd: `AsyncEnd-${id}`,
|
|
59
|
+
AsyncMeasure: `AsyncMeasure-${id}`,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export function getGroupMark(id: number) {
|
|
64
|
+
return {
|
|
65
|
+
GroupStart: `GroupStart-${id}`,
|
|
66
|
+
GroupEnd: `GroupEnd-${id}`,
|
|
67
|
+
GroupMeasure: `GroupMeasure-${id}`,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export function getFrameMark(id: number) {
|
|
72
|
+
return {
|
|
73
|
+
FrameStart: `FrameStart-${id}`,
|
|
74
|
+
FrameEnd: `FrameEnd-${id}`,
|
|
75
|
+
FrameMeasure: `FrameMeasure-${id}`,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export function isGenerator(value: unknown): value is Generator<any, any, any> {
|
|
80
|
+
return value && typeof (value as any)[Symbol.iterator] === 'function';
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* 空生成器
|
|
85
|
+
*/
|
|
86
|
+
export function returnOrigin(): Generator<any, void, any>;
|
|
87
|
+
export function returnOrigin<T>(defaultVal: T): Generator<any, T, any>
|
|
88
|
+
export function* returnOrigin<T>(defaultVal?: T): Generator<any, any, any> {
|
|
89
|
+
return defaultVal;
|
|
90
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { isGenerator } from './utils';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 迭代器包装为生成器
|
|
5
|
+
*
|
|
6
|
+
* @description 回调中允许使用生成器
|
|
7
|
+
*/
|
|
8
|
+
export function wrapIteratorToGenerator<T>(list: IterableIterator<T>, forEach: (item: T, index: number, arr: T[]) => (any | Generator<any, any, any>)) {
|
|
9
|
+
return wrapForEachToGenerator(Array.from(list), forEach);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* 数组 forEach 回调包装为生成器
|
|
14
|
+
*
|
|
15
|
+
* @description 回调中允许使用生成器
|
|
16
|
+
*/
|
|
17
|
+
export function wrapForEachToGenerator<T>(list: T[], forEach: (item: T, index: number, arr: T[]) => (any | Generator<any, any, any>)) {
|
|
18
|
+
const len = list.length;
|
|
19
|
+
|
|
20
|
+
return (function* transformListToGenerator(): Generator<any, any, any> {
|
|
21
|
+
for (let i = 0; i < len; i++) {
|
|
22
|
+
const result = forEach(list[i], i, list);
|
|
23
|
+
|
|
24
|
+
if (isGenerator(result)) {
|
|
25
|
+
yield* result;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
yield;
|
|
29
|
+
}
|
|
30
|
+
})();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* 数组 map 回调包装为生成器
|
|
35
|
+
*
|
|
36
|
+
* @description 回调中允许使用生成器
|
|
37
|
+
*/
|
|
38
|
+
export function wrapMapToGenerator<T, U>(list: T[], map: (item: T, index: number, arr: T[]) => (U | Generator<any, U, any>)) {
|
|
39
|
+
const len = list.length;
|
|
40
|
+
const resultArr: U[] = Array(len);
|
|
41
|
+
|
|
42
|
+
return (function* transformListToGenerator(): Generator<any, U[], any> {
|
|
43
|
+
for (let i = 0; i < len; i++) {
|
|
44
|
+
const result = map(list[i], i, list);
|
|
45
|
+
|
|
46
|
+
if (isGenerator(result)) {
|
|
47
|
+
resultArr[i] = yield* result;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
resultArr[i] = result;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
yield;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return resultArr;
|
|
57
|
+
})();
|
|
58
|
+
}
|
package/src/utils/types.ts
CHANGED
|
@@ -1 +1,10 @@
|
|
|
1
|
+
import type { SourceMap } from '../translator';
|
|
2
|
+
|
|
1
3
|
export type GetPromise<T> = T extends Promise<infer R> ? R : never;
|
|
4
|
+
export interface EmbeddedTSFileResult {
|
|
5
|
+
code: string;
|
|
6
|
+
filePath: string;
|
|
7
|
+
sourceMap: SourceMap
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export type EmbeddedTSFileGenerator = Generator<void, EmbeddedTSFileResult, string>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { expect } from 'chai';
|
|
2
2
|
import type { AnonymousFunction } from '../../../out';
|
|
3
|
+
import { runGeneratorSync as runSync } from '../../../out/utils';
|
|
3
4
|
import { readFixture, formatTs, getNodeByData } from '../utils';
|
|
4
5
|
import { ConceptName, cases } from './constant';
|
|
5
6
|
|
|
@@ -8,7 +9,7 @@ describe(`${ConceptName}:toEmbeddedTS`, () => {
|
|
|
8
9
|
it(name, () => {
|
|
9
10
|
const data = readFixture(ConceptName, name);
|
|
10
11
|
const node = getNodeByData<AnonymousFunction>(data);
|
|
11
|
-
expect(formatTs(node.toEmbeddedTS())).toMatchSnapshot();
|
|
12
|
+
expect(formatTs(runSync(node.toEmbeddedTS()))).toMatchSnapshot();
|
|
12
13
|
});
|
|
13
14
|
});
|
|
14
15
|
});
|