vivth 1.4.10 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6060 -2037
- package/README.src.md +22 -14
- package/bun.lock +154 -194
- package/dev/auto/.src.ignore +25 -0
- package/dev/auto-doc.mjs +137 -0
- package/generated/types/generated/vivth/exports/all.d.mts +145 -0
- package/generated/types/generated/vivth/exports/neutral.d.mts +105 -0
- package/generated/types/generated/vivth/exports/node.d.mts +40 -0
- package/generated/types/src/bundler/CompileAS.d.mts +30 -0
- package/generated/types/src/bundler/CompileJS.d.mts +109 -0
- package/{types → generated/types}/src/bundler/CreateESPlugin.d.mts +1 -1
- package/{types → generated/types}/src/bundler/EsBundler.d.mts +9 -7
- package/generated/types/src/bundler/FSAnalyzer.d.mts +58 -0
- package/generated/types/src/bundler/FSasar.bundled.d.mts +28 -0
- package/generated/types/src/bundler/FSasar.d.mts +51 -0
- package/generated/types/src/bundler/FileSelfMapper.d.mts +137 -0
- package/generated/types/src/bundler/JSDirMapper.d.mts +128 -0
- package/generated/types/src/bundler/RunWatchThenCompileJSOnSafeExit.d.mts +63 -0
- package/generated/types/src/bundler/adds/BrowserExternals.d.mts +21 -0
- package/generated/types/src/bundler/adds/CreateTransform.d.mts +26 -0
- package/generated/types/src/bundler/adds/LastEditedUnix.d.mts +5 -0
- package/generated/types/src/bundler/adds/NodeModuleList.d.mts +15 -0
- package/generated/types/src/bundler/adds/PathFSBundles.bundled.d.mts +25 -0
- package/generated/types/src/bundler/adds/PathFSBundles.d.mts +48 -0
- package/generated/types/src/bundler/adds/PathFSDir.bundled.d.mts +30 -0
- package/generated/types/src/bundler/adds/PathFSDir.d.mts +48 -0
- package/generated/types/src/bundler/adds/PathFSFile.bundled.d.mts +25 -0
- package/generated/types/src/bundler/adds/PathFSFile.d.mts +40 -0
- package/{types → generated/types}/src/bundler/adds/ToBundledJSPlugin.d.mts +6 -6
- package/generated/types/src/bundler/adds/autoExternalize.d.mts +2 -0
- package/generated/types/src/bundler/adds/emptyBufferValue.d.mts +1 -0
- package/generated/types/src/bundler/adds/isModuleTheBundledVersion.d.mts +1 -0
- package/generated/types/src/bundler/adds/onEndEsBuildErrorLogger.d.mts +1 -0
- package/generated/types/src/bundler/adds/resolveJSDependencyPath.d.mts +1 -0
- package/generated/types/src/class/AwaitSignal.d.mts +48 -0
- package/generated/types/src/class/Console.d.mts +82 -0
- package/generated/types/src/class/DataLog.d.mts +25 -0
- package/generated/types/src/class/Derived.d.mts +74 -0
- package/generated/types/src/class/Effect.d.mts +213 -0
- package/{types → generated/types}/src/class/EnvSignal.d.mts +6 -2
- package/generated/types/src/class/EsWatcher.d.mts +36 -0
- package/{types → generated/types}/src/class/EventSignal.d.mts +39 -39
- package/generated/types/src/class/FSDirArchWatcher.d.mts +110 -0
- package/{types → generated/types}/src/class/FileSafe.d.mts +32 -16
- package/generated/types/src/class/ForEach.d.mts +57 -0
- package/generated/types/src/class/ForSignal.d.mts +63 -0
- package/generated/types/src/class/GetterSetter.d.mts +38 -0
- package/generated/types/src/class/JSONFileHandler.d.mts +50 -0
- package/{types → generated/types}/src/class/ListSignal.d.mts +49 -15
- package/{types → generated/types}/src/class/LitExp.d.mts +18 -18
- package/generated/types/src/class/ObjectSignal.d.mts +267 -0
- package/generated/types/src/class/Paths.d.mts +95 -0
- package/generated/types/src/class/Prettivy.d.mts +26 -0
- package/{types → generated/types}/src/class/QChannel.d.mts +24 -16
- package/generated/types/src/class/SafeExit.d.mts +69 -0
- package/{types → generated/types}/src/class/Setup.d.mts +29 -16
- package/{types → generated/types}/src/class/Signal.d.mts +29 -15
- package/generated/types/src/class/SignalCollection.d.mts +96 -0
- package/{types → generated/types}/src/class/WalkThrough.d.mts +4 -19
- package/generated/types/src/class/WorkerMainThread.bundled.d.mts +83 -0
- package/{types → generated/types}/src/class/WorkerMainThread.d.mts +33 -39
- package/{types → generated/types}/src/class/WorkerThread.d.mts +11 -5
- package/{types → generated/types}/src/common/Base64URL.d.mts +2 -1
- package/generated/types/src/common/Base64URLFromFile.d.mts +20 -0
- package/generated/types/src/common/BundledV.bundled.d.mts +3 -0
- package/generated/types/src/common/BundledV.d.mts +36 -0
- package/{types → generated/types}/src/common/CreateStringID.d.mts +5 -4
- package/generated/types/src/common/EnvMode.d.mts +79 -0
- package/generated/types/src/common/FactoryKey.d.mts +9 -0
- package/generated/types/src/common/Preferrence.d.mts +25 -0
- package/{types → generated/types}/src/common/Trace.d.mts +1 -1
- package/{types → generated/types}/src/common/TracePath.d.mts +1 -1
- package/generated/types/src/common/VivthUnBundledCodeBlock.d.mts +6 -0
- package/generated/types/src/doc/JSautoDOC.d.mts +172 -0
- package/generated/types/src/doc/cleanPreserveTypedef.d.mts +1 -0
- package/{types/src/doc/parsedFile.d.mts → generated/types/src/doc/parsedFileForDOC.d.mts} +56 -27
- package/generated/types/src/function/ClearRequireCache.d.mts +1 -0
- package/{types → generated/types}/src/function/CreateImmutable.d.mts +5 -4
- package/{types → generated/types}/src/function/EventCheck.d.mts +3 -1
- package/{types → generated/types}/src/function/EventObject.d.mts +2 -6
- package/generated/types/src/function/ForInAsync.d.mts +36 -0
- package/generated/types/src/function/ForInSync.d.mts +36 -0
- package/generated/types/src/function/ForOfAsync.d.mts +25 -0
- package/generated/types/src/function/ForOfSync.d.mts +36 -0
- package/generated/types/src/function/GetBufferFromRelativePath.d.mts +15 -0
- package/generated/types/src/function/GetFilesFromDir.d.mts +14 -0
- package/generated/types/src/function/GetMaxFilenameLength.d.mts +9 -0
- package/generated/types/src/function/GetModuleEsbuildPlatform.d.mts +13 -0
- package/{types → generated/types}/src/function/GetNamedImportAlias.d.mts +1 -1
- package/generated/types/src/function/GetRuntime.d.mts +2 -0
- package/generated/types/src/function/InstantiateAssemblyScript.d.mts +15 -0
- package/{types → generated/types}/src/function/IsAsync.d.mts +1 -1
- package/generated/types/src/function/IsInstanceOf.d.mts +25 -0
- package/generated/types/src/function/IsSameFile.d.mts +16 -0
- package/generated/types/src/function/IsStringLooksLikeAPath.d.mts +16 -0
- package/generated/types/src/function/IsTypeOf.d.mts +25 -0
- package/{types → generated/types}/src/function/LazyFactory.d.mts +9 -10
- package/generated/types/src/function/MonkeyPatch.d.mts +33 -0
- package/generated/types/src/function/NewAnimationTimeline.d.mts +24 -0
- package/generated/types/src/function/NewChainable.d.mts +35 -0
- package/generated/types/src/function/NewDynamicsExport.d.mts +49 -0
- package/generated/types/src/function/NewObjectWrapper.d.mts +10 -0
- package/generated/types/src/function/ObjectRegistrar.d.mts +17 -0
- package/generated/types/src/function/ParseSQLFile.d.mts +25 -0
- package/generated/types/src/function/PipeAsync.d.mts +19 -0
- package/generated/types/src/function/PipeSync.d.mts +17 -0
- package/generated/types/src/function/SafeImport.d.mts +21 -0
- package/generated/types/src/function/TemplateLiteral.d.mts +23 -0
- package/{types → generated/types}/src/function/Timeout.d.mts +1 -1
- package/{types → generated/types}/src/function/Tries.d.mts +4 -4
- package/{types → generated/types}/src/function/TryAsync.d.mts +2 -2
- package/{types → generated/types}/src/function/TryNew.d.mts +1 -1
- package/generated/types/src/function/TsToMjs.d.mts +27 -0
- package/generated/types/src/function/UniqueFSTempName.d.mts +9 -0
- package/generated/types/src/function/errorToMessage.d.mts +5 -0
- package/generated/types/src/neinth/VivthyNeinth.d.mts +202 -0
- package/generated/types/src/typehints/ArrayToKeys.d.mts +23 -0
- package/generated/types/src/typehints/AssemblyScriptExportsType.d.mts +4 -0
- package/generated/types/src/typehints/AssemblyScriptLoaderInstantiate.d.mts +4 -0
- package/generated/types/src/typehints/AutoDocASOptions.d.mts +15 -0
- package/generated/types/src/typehints/ChainableType.d.mts +3 -0
- package/generated/types/src/typehints/ComponentDecorator_Constructor.d.mts +3 -0
- package/generated/types/src/typehints/ConsoleAdditionalSettingType.d.mts +3 -0
- package/generated/types/src/typehints/Decorator.d.mts +11 -0
- package/generated/types/src/typehints/DecoratorMonkeyPatch.d.mts +15 -0
- package/{types/src/types → generated/types/src/typehints}/DevTestCB.d.mts +2 -2
- package/generated/types/src/typehints/EnvModeType.d.mts +4 -0
- package/generated/types/src/typehints/ListArg.d.mts +4 -0
- package/generated/types/src/typehints/MonkeyPatchedType.d.mts +1 -0
- package/generated/types/src/typehints/ParametersFollowingN.d.mts +13 -0
- package/generated/types/src/typehints/PrefixedKeysOf.d.mts +1 -0
- package/generated/types/src/typehints/Runtime.d.mts +4 -0
- package/generated/types/src/typehints/SafeImportReturnType.d.mts +1 -0
- package/generated/types/src/typehints/StylePropRefType.d.mts +2 -0
- package/generated/types/src/typehints/TemplateLiteralValueHandler.d.mts +10 -0
- package/generated/types/src/typehints/VLifecycleCallbacks.d.mts +6 -0
- package/generated/types/src/typehints/VivthCleanup.d.mts +12 -0
- package/generated/types/src/web/BrowserDirMapper.d.mts +70 -0
- package/generated/types/src/web/EnsureValidTag.d.mts +7 -0
- package/generated/types/src/web/ViteAddDynamics.d.mts +28 -0
- package/generated/types/src/web/ViteGetAllHTMLFile.d.mts +9 -0
- package/generated/types/src/web/WC_extendsA.d.mts +135 -0
- package/generated/types/src/web/WC_extendsB.d.mts +135 -0
- package/generated/types/src/web/bindings/WC_StyleProp_bind.d.mts +42 -0
- package/generated/types/src/web/bindings/WC_createElement_bind.d.mts +51 -0
- package/generated/types/src/web/bindings/WC_createNamedSlot.d.mts +26 -0
- package/generated/types/src/web/bindings/WC_litRender_bind.d.mts +20 -0
- package/generated/types/src/web/bindings/WC_litStyleMap.d.mts +7 -0
- package/generated/types/src/web/common/CSS.d.mts +23 -0
- package/generated/types/src/web/common/E.d.mts +41 -0
- package/generated/types/src/web/common/NewStyleSheetAsync.d.mts +15 -0
- package/generated/types/src/web/common/NewStyleSheetSync.d.mts +15 -0
- package/generated/types/src/web/common/WC_TagName_type.d.mts +15 -0
- package/generated/types/src/web/signals/IsInViewPortSignal.d.mts +52 -0
- package/generated/types/src/web/signals/ObserverSignal.d.mts +32 -0
- package/generated/types/src/web/signals/WC_litRef.d.mts +26 -0
- package/generated/types/src/web/signals/WC_loopedSiblingsRef.d.mts +44 -0
- package/generated/vivth/exports/all.mjs +233 -0
- package/generated/vivth/exports/neutral.mjs +193 -0
- package/generated/vivth/exports/node.mjs +46 -0
- package/package.json +50 -14
- package/src/bundler/CompileAS.mjs +36 -0
- package/src/bundler/CompileJS.mjs +98 -171
- package/src/bundler/CreateESPlugin.mjs +1 -1
- package/src/bundler/EsBundler.mjs +38 -13
- package/src/bundler/FSAnalyzer.mjs +253 -0
- package/src/bundler/FSasar.bundled.mjs +128 -0
- package/src/bundler/FSasar.mjs +96 -0
- package/src/bundler/FileSelfMapper.mjs +491 -0
- package/src/bundler/JSDirMapper.mjs +528 -0
- package/src/bundler/RunWatchThenCompileJSOnSafeExit.mjs +129 -0
- package/src/bundler/adds/BrowserExternals.mjs +37 -0
- package/src/bundler/adds/CreateTransform.mjs +36 -0
- package/src/bundler/adds/LastEditedUnix.mjs +12 -0
- package/src/bundler/adds/NodeModuleList.mjs +33 -0
- package/src/bundler/adds/PathFSBundles.bundled.mjs +41 -0
- package/src/bundler/adds/PathFSBundles.mjs +91 -0
- package/src/bundler/adds/PathFSDir.bundled.mjs +53 -0
- package/src/bundler/adds/PathFSDir.mjs +100 -0
- package/src/bundler/adds/PathFSFile.bundled.mjs +40 -0
- package/src/bundler/adds/PathFSFile.mjs +85 -0
- package/src/bundler/adds/ToBundledJSPlugin.mjs +116 -55
- package/src/bundler/adds/autoExternalize.mjs +81 -0
- package/src/bundler/adds/emptyBufferValue.mjs +5 -0
- package/src/bundler/adds/isModuleTheBundledVersion.mjs +10 -0
- package/src/bundler/adds/onEndEsBuildErrorLogger.mjs +34 -0
- package/src/bundler/adds/resolveJSDependencyPath.mjs +17 -0
- package/src/class/AwaitSignal.mjs +119 -0
- package/src/class/Console.mjs +36 -14
- package/src/class/DataLog.mjs +29 -0
- package/src/class/Derived.mjs +67 -55
- package/src/class/Effect.mjs +270 -84
- package/src/class/EnvSignal.mjs +11 -8
- package/src/class/EsWatcher.mjs +60 -0
- package/src/class/EventSignal.mjs +46 -58
- package/src/class/FSDirArchWatcher.mjs +246 -0
- package/src/class/FileSafe.mjs +72 -24
- package/src/class/ForEach.mjs +78 -0
- package/src/class/ForSignal.mjs +115 -0
- package/src/class/GetterSetter.mjs +40 -0
- package/src/class/JSONFileHandler.mjs +90 -0
- package/src/class/ListSignal.mjs +68 -26
- package/src/class/LitExp.mjs +59 -36
- package/src/class/ObjectSignal.mjs +225 -0
- package/src/class/Paths.mjs +56 -20
- package/src/class/Prettivy.mjs +51 -0
- package/src/class/QChannel.mjs +48 -26
- package/src/class/SafeExit.mjs +156 -99
- package/src/class/Setup.mjs +28 -16
- package/src/class/Signal.mjs +50 -27
- package/src/class/SignalCollection.mjs +130 -0
- package/src/class/WalkThrough.mjs +6 -23
- package/src/class/{WorkerMainThreadBundled.mjs → WorkerMainThread.bundled.mjs} +56 -77
- package/src/class/WorkerMainThread.mjs +98 -94
- package/src/class/WorkerThread.mjs +24 -17
- package/src/common/Base64URL.mjs +6 -3
- package/src/common/Base64URLFromFile.mjs +17 -4
- package/src/common/BundledV.bundled.mjs +7 -0
- package/src/common/BundledV.mjs +45 -0
- package/src/common/CreateStringID.mjs +8 -7
- package/src/common/EnvMode.mjs +172 -0
- package/src/common/FactoryKey.mjs +11 -0
- package/src/common/Preferrence.mjs +27 -0
- package/src/common/Trace.mjs +1 -1
- package/src/common/TracePath.mjs +53 -3
- package/src/common/VivthUnBundledCodeBlock.mjs +8 -0
- package/src/doc/JSautoDOC.mjs +673 -284
- package/src/doc/cleanPreserveTypedef.mjs +27 -0
- package/src/doc/correctBeforeParse.mjs +57 -48
- package/src/doc/{parsedFile.mjs → parsedFileForDOC.mjs} +133 -120
- package/src/function/ClearRequireCache.mjs +33 -0
- package/src/function/CreateImmutable.mjs +40 -37
- package/src/function/EventCheck.mjs +5 -2
- package/src/function/EventObject.mjs +2 -6
- package/src/function/ForInAsync.mjs +76 -0
- package/src/function/ForInSync.mjs +87 -0
- package/src/function/ForOfAsync.mjs +61 -0
- package/src/function/ForOfSync.mjs +70 -0
- package/src/function/GetBufferFromRelativePath.mjs +25 -0
- package/src/function/GetFilesFromDir.mjs +49 -0
- package/src/function/GetMaxFilenameLength.mjs +32 -0
- package/src/function/GetModuleEsbuildPlatform.mjs +118 -0
- package/src/function/GetNamedImportAlias.mjs +2 -2
- package/src/function/GetRuntime.mjs +10 -14
- package/src/function/InstantiateAssemblyScript.mjs +22 -0
- package/src/function/IsAsync.mjs +1 -1
- package/src/function/IsInstanceOf.mjs +29 -0
- package/src/function/IsSameFile.mjs +41 -0
- package/src/function/IsStringLooksLikeAPath.mjs +20 -0
- package/src/function/IsTypeOf.mjs +27 -0
- package/src/function/IsTypeOf.mts +31 -0
- package/src/function/LazyFactory.mjs +25 -23
- package/src/function/MonkeyPatch.mjs +38 -0
- package/src/function/NewAnimationTimeline.mjs +55 -0
- package/src/function/NewChainable.mjs +69 -0
- package/src/function/NewDynamicsExport.mjs +312 -0
- package/src/function/NewObjectWrapper.mjs +14 -0
- package/src/function/ObjectRegistrar.mjs +23 -0
- package/src/function/ParseSQLFile.mjs +129 -0
- package/src/function/PipeAsync.mjs +30 -0
- package/src/function/PipeSync.mjs +28 -0
- package/src/function/SafeImport.mjs +77 -0
- package/src/function/TemplateLiteral.mjs +42 -23
- package/src/function/Timeout.mjs +4 -4
- package/src/function/Tries.mjs +22 -16
- package/src/function/TryAsync.mjs +3 -2
- package/src/function/TryNew.mjs +1 -1
- package/src/function/TsToMjs.mjs +184 -21
- package/src/function/UniqueFSTempName.mjs +33 -0
- package/src/function/errorToMessage.mjs +21 -0
- package/src/function/resolveErrorArray.mjs +15 -1
- package/src/neinth/VivthyNeinth.mjs +487 -0
- package/src/typehints/ArrayToKeys.mjs +17 -0
- package/src/typehints/ArrayToKeys.mts +31 -0
- package/src/typehints/AssemblyScriptExportsType.mjs +7 -0
- package/src/typehints/AssemblyScriptLoaderInstantiate.mjs +7 -0
- package/src/typehints/AutoDocASOptions.mjs +14 -0
- package/src/typehints/ChainableType.mjs +11 -0
- package/src/typehints/ComponentDecorator_Constructor.mjs +10 -0
- package/src/typehints/ConsoleAdditionalSettingType.mjs +6 -0
- package/src/typehints/Decorator.mjs +9 -0
- package/src/typehints/Decorator.mts +31 -0
- package/src/typehints/DecoratorMonkeyPatch.mjs +10 -0
- package/src/typehints/DecoratorMonkeyPatch.mts +43 -0
- package/src/{types → typehints}/DevTestCB.mjs +2 -2
- package/src/typehints/EnvModeType.mjs +6 -0
- package/src/{types → typehints}/ListArg.mjs +1 -1
- package/src/{types → typehints}/LitExpResultType.mjs +1 -1
- package/src/typehints/MonkeyPatchedType.mjs +13 -0
- package/src/typehints/ParametersFollowingN.mjs +8 -0
- package/src/typehints/ParametersFollowingN.mts +17 -0
- package/src/typehints/PrefixedKeysOf.mjs +9 -0
- package/src/typehints/Runtime.mjs +6 -0
- package/src/typehints/SafeImportReturnType.mjs +6 -0
- package/src/typehints/StylePropRefType.mjs +12 -0
- package/src/typehints/TemplateLiteralValueHandler.mjs +14 -0
- package/src/typehints/VLifecycleCallbacks.mjs +10 -0
- package/src/typehints/VivthCleanup.mjs +14 -0
- package/src/web/BrowserDirMapper.mjs +255 -0
- package/src/web/EnsureValidTag.mjs +5 -0
- package/src/web/EnsureValidTag.mts +10 -0
- package/src/web/ViteAddDynamics.mjs +34 -0
- package/src/web/ViteGetAllHTMLFile.mjs +97 -0
- package/src/web/WC_extendsA.mjs +330 -0
- package/src/web/WC_extendsB.mjs +332 -0
- package/src/web/bindings/WC_StyleProp_bind.mjs +70 -0
- package/src/web/bindings/WC_createElement_bind.mjs +95 -0
- package/src/web/bindings/WC_createNamedSlot.mjs +29 -0
- package/src/web/bindings/WC_litRender_bind.mjs +26 -0
- package/src/web/bindings/WC_litStyleMap.mjs +14 -0
- package/src/web/common/CSS.mjs +35 -0
- package/src/web/common/E.mjs +126 -0
- package/src/web/common/NewStyleSheetAsync.mjs +21 -0
- package/src/web/common/NewStyleSheetSync.mjs +21 -0
- package/src/web/common/WC_TagName_type.mjs +10 -0
- package/src/web/common/WC_TagName_type.mts +36 -0
- package/src/web/signals/IsInViewPortSignal.mjs +140 -0
- package/src/web/signals/ObserverSignal.mjs +93 -0
- package/src/web/signals/WC_litRef.mjs +61 -0
- package/src/web/signals/WC_loopedSiblingsRef.mjs +100 -0
- package/tsconfig.json +44 -41
- package/index.mjs +0 -91
- package/src/bundler/FSInline.mjs +0 -67
- package/src/bundler/FSInlineAnalyzer.mjs +0 -228
- package/src/bundler/FSInlineBundled.mjs +0 -38
- package/src/bundler/adds/externals.mjs +0 -8
- package/src/class/ListDerived.mjs +0 -42
- package/src/common/Dev.mjs +0 -142
- package/src/common/DevBundled.mjs +0 -5
- package/src/common/lazie.mjs +0 -3
- package/src/types/IsListSignal.mjs +0 -6
- package/src/types/Runtime.mjs +0 -6
- package/src/types/VivthDevCodeBlockStringType.mjs +0 -6
- package/types/index.d.mts +0 -58
- package/types/src/bundler/CompileJS.d.mts +0 -119
- package/types/src/bundler/FSInline.d.mts +0 -50
- package/types/src/bundler/FSInlineAnalyzer.d.mts +0 -37
- package/types/src/bundler/FSInlineBundled.d.mts +0 -22
- package/types/src/bundler/adds/externals.d.mts +0 -1
- package/types/src/class/Console.d.mts +0 -71
- package/types/src/class/Derived.d.mts +0 -98
- package/types/src/class/Effect.d.mts +0 -216
- package/types/src/class/ListDerived.d.mts +0 -38
- package/types/src/class/Paths.d.mts +0 -69
- package/types/src/class/SafeExit.d.mts +0 -103
- package/types/src/class/WorkerMainThreadBundled.d.mts +0 -83
- package/types/src/common/Base64URLFromFile.d.mts +0 -16
- package/types/src/common/Dev.d.mts +0 -68
- package/types/src/common/DevBundled.d.mts +0 -3
- package/types/src/common/lazie.d.mts +0 -1
- package/types/src/doc/JSautoDOC.d.mts +0 -83
- package/types/src/function/GetRuntime.d.mts +0 -2
- package/types/src/function/TemplateLiteral.d.mts +0 -22
- package/types/src/function/TsToMjs.d.mts +0 -23
- package/types/src/types/IsListSignal.d.mts +0 -4
- package/types/src/types/ListArg.d.mts +0 -4
- package/types/src/types/Runtime.d.mts +0 -4
- package/types/src/types/VivthDevCodeBlockStringType.d.mts +0 -4
- /package/{types → generated/types}/src/bundler/adds/pluginVivthBundle.d.mts +0 -0
- /package/{types → generated/types}/src/class/WorkerResult.d.mts +0 -0
- /package/{types → generated/types}/src/common/EventNameSpace.d.mts +0 -0
- /package/{types → generated/types}/src/common/eventObjects.d.mts +0 -0
- /package/{types → generated/types}/src/common/keys.d.mts +0 -0
- /package/{types → generated/types}/src/doc/correctBeforeParse.d.mts +0 -0
- /package/{types → generated/types}/src/function/TrySync.d.mts +0 -0
- /package/{types → generated/types}/src/function/resolveErrorArray.d.mts +0 -0
- /package/{types/src/types → generated/types/src/typehints}/AnyButUndefined.d.mts +0 -0
- /package/{types/src/types → generated/types/src/typehints}/ExtnameType.d.mts +0 -0
- /package/{types/src/types → generated/types/src/typehints}/LitExpKeyType.d.mts +0 -0
- /package/{types/src/types → generated/types/src/typehints}/LitExpResultType.d.mts +0 -0
- /package/{types/src/types → generated/types/src/typehints}/MutationType.d.mts +0 -0
- /package/{types/src/types → generated/types/src/typehints}/QCBFIFOReturn.d.mts +0 -0
- /package/{types/src/types → generated/types/src/typehints}/QCBReturn.d.mts +0 -0
- /package/src/{types → typehints}/AnyButUndefined.mjs +0 -0
- /package/src/{types → typehints}/ExtnameType.mjs +0 -0
- /package/src/{types → typehints}/LitExpKeyType.mjs +0 -0
- /package/src/{types → typehints}/MutationType.mjs +0 -0
- /package/src/{types → typehints}/QCBFIFOReturn.mjs +0 -0
- /package/src/{types → typehints}/QCBReturn.mjs +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export class PathFSDir {
|
|
2
|
+
/**
|
|
3
|
+
* @param {string} relativePath
|
|
4
|
+
* @param {RegExp} rule
|
|
5
|
+
* @param {{shouldNotIncludes:string}} [options]
|
|
6
|
+
* @returns {PathFSDir}
|
|
7
|
+
*/
|
|
8
|
+
static vivthDir: (relativePath: string, rule: RegExp, options?: {
|
|
9
|
+
shouldNotIncludes: string;
|
|
10
|
+
}) => PathFSDir;
|
|
11
|
+
/**
|
|
12
|
+
* @param {Parameters<typeof PathFSDir["vivthDir"]>[0]} relativePath
|
|
13
|
+
* @param {Parameters<typeof PathFSDir["vivthDir"]>[2]} [_options]
|
|
14
|
+
* @param {Parameters<typeof PathFSDir["vivthDir"]>[1]} [rule]
|
|
15
|
+
*/
|
|
16
|
+
constructor(relativePath: Parameters<(typeof PathFSDir)["vivthDir"]>[0], _options?: Parameters<(typeof PathFSDir)["vivthDir"]>[2], rule?: Parameters<(typeof PathFSDir)["vivthDir"]>[1]);
|
|
17
|
+
/**
|
|
18
|
+
* @type {RegExp}
|
|
19
|
+
*/
|
|
20
|
+
get rule(): RegExp;
|
|
21
|
+
/**
|
|
22
|
+
* @returns {string}
|
|
23
|
+
*/
|
|
24
|
+
get path(): string;
|
|
25
|
+
/**
|
|
26
|
+
* @returns {string}
|
|
27
|
+
*/
|
|
28
|
+
get callerPath(): string;
|
|
29
|
+
#private;
|
|
30
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description
|
|
3
|
+
* - includes all files, that match the rule to `.asar` specification;
|
|
4
|
+
*/
|
|
5
|
+
export class PathFSDir {
|
|
6
|
+
/**
|
|
7
|
+
* @description
|
|
8
|
+
* @param {string} relativePath
|
|
9
|
+
* - relativePath to the `dirname` of the file you are calling this method;
|
|
10
|
+
* @param {RegExp} rule
|
|
11
|
+
* @param {Parameters<typeof import('./PathFSBundles.mjs').PathFSBundles["vivthBundles"]>[1]} [options]
|
|
12
|
+
* @returns {PathFSDir}
|
|
13
|
+
* @example
|
|
14
|
+
* import { PathFSDir } from 'vivth/node';
|
|
15
|
+
*
|
|
16
|
+
* PathFSDir.vivthDir('../src/', /[\s\S]\*[blank]/);
|
|
17
|
+
* // visible for ide inline check: without `[blank]`;
|
|
18
|
+
*/
|
|
19
|
+
static vivthDir: (relativePath: string, rule: RegExp, options?: Parameters<typeof import("./PathFSBundles.mjs").PathFSBundles["vivthBundles"]>[1]) => PathFSDir;
|
|
20
|
+
/**
|
|
21
|
+
* @private
|
|
22
|
+
* @param {Parameters<typeof PathFSDir["vivthDir"]>[0]} relativePath
|
|
23
|
+
* @param {Parameters<typeof PathFSDir["vivthDir"]>[2]} [options]
|
|
24
|
+
* @param {Parameters<typeof PathFSDir["vivthDir"]>[1]} [rule]
|
|
25
|
+
*/
|
|
26
|
+
private constructor();
|
|
27
|
+
/**
|
|
28
|
+
* @description
|
|
29
|
+
* - rule for dir, to get file any file match the rule inside that directory;
|
|
30
|
+
* @type {RegExp}
|
|
31
|
+
*/
|
|
32
|
+
get rule(): RegExp;
|
|
33
|
+
/**
|
|
34
|
+
* @description
|
|
35
|
+
* - relative path of the target to the project root;
|
|
36
|
+
* @returns {string}
|
|
37
|
+
*/
|
|
38
|
+
get path(): string;
|
|
39
|
+
/**
|
|
40
|
+
* @description
|
|
41
|
+
* - depending on whether running on bundled or not;
|
|
42
|
+
* - unBundled: absolute disk path of the file caller;
|
|
43
|
+
* - bundled: `blankstring`;
|
|
44
|
+
* @returns {string}
|
|
45
|
+
*/
|
|
46
|
+
get callerPath(): string;
|
|
47
|
+
#private;
|
|
48
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export class PathFSFile {
|
|
2
|
+
/**
|
|
3
|
+
* @param {string} relativePath
|
|
4
|
+
* @param {{shouldNotIncludes:string}} [options]
|
|
5
|
+
* @returns {PathFSFile}
|
|
6
|
+
*/
|
|
7
|
+
static vivthFile: (relativePath: string, options?: {
|
|
8
|
+
shouldNotIncludes: string;
|
|
9
|
+
}) => PathFSFile;
|
|
10
|
+
/**
|
|
11
|
+
* @private
|
|
12
|
+
* @param {Parameters<typeof PathFSFile["vivthFile"]>[0]} relativePath
|
|
13
|
+
* @param {Parameters<typeof PathFSFile["vivthFile"]>[1]} [_options]
|
|
14
|
+
*/
|
|
15
|
+
private constructor();
|
|
16
|
+
/**
|
|
17
|
+
* @returns {string}
|
|
18
|
+
*/
|
|
19
|
+
get path(): string;
|
|
20
|
+
/**
|
|
21
|
+
* @returns {string}
|
|
22
|
+
*/
|
|
23
|
+
get callerPath(): string;
|
|
24
|
+
#private;
|
|
25
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description
|
|
3
|
+
* >- the file are added to `asar` AS IS, OR
|
|
4
|
+
* >- transformed according to the `asar.options.transform` value;
|
|
5
|
+
*/
|
|
6
|
+
export class PathFSFile {
|
|
7
|
+
/**
|
|
8
|
+
* @description
|
|
9
|
+
* @param {string} relativePath
|
|
10
|
+
* - to the dirname of the file you are calling this method;
|
|
11
|
+
* @param {Parameters<typeof import('./PathFSBundles.mjs').PathFSBundles["vivthBundles"]>[1]} [options]
|
|
12
|
+
* @returns {PathFSFile}
|
|
13
|
+
* @example
|
|
14
|
+
* import { PathFSFile } from 'vivth/node';
|
|
15
|
+
*
|
|
16
|
+
* PathFSFile.vivthFile('../CompileAS.mjs');
|
|
17
|
+
*/
|
|
18
|
+
static vivthFile: (relativePath: string, options?: Parameters<typeof import("./PathFSBundles.mjs").PathFSBundles["vivthBundles"]>[1]) => PathFSFile;
|
|
19
|
+
/**
|
|
20
|
+
* @private
|
|
21
|
+
* @param {Parameters<typeof PathFSFile["vivthFile"]>[0]} relativePath
|
|
22
|
+
* @param {Parameters<typeof PathFSFile["vivthFile"]>[1]} [options]
|
|
23
|
+
*/
|
|
24
|
+
private constructor();
|
|
25
|
+
/**
|
|
26
|
+
* @description
|
|
27
|
+
* - relative path of the target to the project root;
|
|
28
|
+
* @returns {string}
|
|
29
|
+
*/
|
|
30
|
+
get path(): string;
|
|
31
|
+
/**
|
|
32
|
+
* @description
|
|
33
|
+
* - depending on whether running on bundled or not;
|
|
34
|
+
* - unBundled: absolute disk path of the file caller;
|
|
35
|
+
* - bundled: `blankstring`;
|
|
36
|
+
* @returns {string}
|
|
37
|
+
*/
|
|
38
|
+
get callerPath(): string;
|
|
39
|
+
#private;
|
|
40
|
+
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @description
|
|
3
|
-
* - generate `esbuild.Plugin` for changing
|
|
3
|
+
* - generate `esbuild.Plugin` for changing unbundled time file into runtime file;
|
|
4
4
|
* - on using esbuild with this plugin, it will:
|
|
5
5
|
* >- replace any module that have similiar file name but ended with Bundled(before extname);
|
|
6
|
-
* >- works on `.mts`|`.ts`|`.mjs`|`.
|
|
7
|
-
* >- `${fileName}.mjs` -> seek for and use `${fileName}
|
|
8
|
-
* >- removes `
|
|
6
|
+
* >- works on `.mts`|`.ts`|`.mjs`|`.js`;
|
|
7
|
+
* >- `${fileName}.mjs` -> seek for and use `${fileName}.bundled.mjs`, if not found use `${fileName}.mjs`;
|
|
8
|
+
* >- removes `BundledV.vivthUnBundledCodeBlock` code block;
|
|
9
9
|
* @param {string} includedInPath
|
|
10
10
|
* - is generalized path, you can freely uses forward or backward slash;
|
|
11
11
|
* @returns {ReturnType<CreateESPlugin>}
|
|
12
12
|
* @example
|
|
13
|
-
* import { ToBundledJSPlugin } from 'vivth';
|
|
13
|
+
* import { ToBundledJSPlugin } from 'vivth/node';
|
|
14
14
|
*
|
|
15
15
|
* export const myBundledPlugin = ToBundledJSPlugin('/myProjectName/src/');
|
|
16
16
|
*/
|
|
17
17
|
export function ToBundledJSPlugin(includedInPath: string): ReturnType<typeof CreateESPlugin>;
|
|
18
|
-
export function
|
|
18
|
+
export function commonContentFixesBundled(filePath: string, originalContent_: string): string;
|
|
19
19
|
import { CreateESPlugin } from '../CreateESPlugin.mjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export function emptyBufferValue(): Buffer<ArrayBuffer>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export function isModuleTheBundledVersion(path: string, ext: string): boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export function onEndEsBuildErrorLogger(errorData: import("esbuild").Message[]): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export function resolveJSDependencyPath(jspath: string): Promise<boolean>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {import('../typehints/VivthCleanup.mjs').VivthCleanup} VivthCleanup
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* @description
|
|
6
|
+
* - `Signal` to unwrap `Promise`;
|
|
7
|
+
* - useful to create underlying mechanism for something like react `Suspense` component;
|
|
8
|
+
* - auto queued for last unwrap request;
|
|
9
|
+
* @template {any} VALUE
|
|
10
|
+
* @template {any[]} ARGS
|
|
11
|
+
* @extends {Signal<VALUE|Promise<VALUE>|Error>}
|
|
12
|
+
* @implements {VivthCleanup}
|
|
13
|
+
* @example
|
|
14
|
+
* import { AwaitSignal, Effect } from 'vivth/neutral'
|
|
15
|
+
* const bigAwaitSignal = new AwaitSignal(fetch('../SomethingReallyBig'));
|
|
16
|
+
* new Effect(async({ subscribe })=>{
|
|
17
|
+
* const myBigLoadProgress = subscribe(bigAwaitSignal).value;
|
|
18
|
+
* const isError = IsInstanceOf(myBigLoadProgress, Error);
|
|
19
|
+
* if(isError){
|
|
20
|
+
* // handle error here
|
|
21
|
+
* return;
|
|
22
|
+
* }
|
|
23
|
+
* const isAPromise = IsInstanceOf(myBigLoadProgress, Promise);
|
|
24
|
+
* if(isAPromise){
|
|
25
|
+
* // handle suspense here;
|
|
26
|
+
* return;
|
|
27
|
+
* }
|
|
28
|
+
* // handle ready state here;
|
|
29
|
+
* })
|
|
30
|
+
*/
|
|
31
|
+
export class AwaitSignal<VALUE extends unknown, ARGS extends any[]> extends Signal<Error | VALUE | Promise<VALUE>> implements VivthCleanup {
|
|
32
|
+
/**
|
|
33
|
+
* @param {(...args:ARGS)=>Promise<VALUE>} callback
|
|
34
|
+
* @param {ARGS} firstCallArguments
|
|
35
|
+
*/
|
|
36
|
+
constructor(callback: (...args: ARGS) => Promise<VALUE>, ...firstCallArguments: ARGS);
|
|
37
|
+
retryCount: number;
|
|
38
|
+
/**
|
|
39
|
+
* @param {number} maxRetries
|
|
40
|
+
* - `0` for no limit;
|
|
41
|
+
* @param {ARGS} args
|
|
42
|
+
* - integer of retryCount;
|
|
43
|
+
*/
|
|
44
|
+
retry: (maxRetries: number, ...args: ARGS) => void;
|
|
45
|
+
#private;
|
|
46
|
+
}
|
|
47
|
+
export type VivthCleanup = import("../typehints/VivthCleanup.mjs").VivthCleanup;
|
|
48
|
+
import { Signal } from './Signal.mjs';
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description
|
|
3
|
+
* - class with static methods to print to standard console with bare minimum ANSI styles;
|
|
4
|
+
*/
|
|
5
|
+
export class Console {
|
|
6
|
+
static #ansi: {
|
|
7
|
+
reset: string;
|
|
8
|
+
bold: string;
|
|
9
|
+
colors: {
|
|
10
|
+
log: string;
|
|
11
|
+
info: string;
|
|
12
|
+
warn: string;
|
|
13
|
+
error: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* @param {any} data
|
|
18
|
+
* @param {import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType} args
|
|
19
|
+
* @return {object}
|
|
20
|
+
*/
|
|
21
|
+
static #addArgsHandler: (data: any, { now: now_ }: import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType) => object;
|
|
22
|
+
/**
|
|
23
|
+
* @param {string} prefix
|
|
24
|
+
* @param {'log'|'info'|'error'|'warn'} mode
|
|
25
|
+
* @param {any} data
|
|
26
|
+
* @param {import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType} [addArgs]
|
|
27
|
+
* @returns {void}
|
|
28
|
+
*/
|
|
29
|
+
static #call: (prefix: string, mode: "log" | "info" | "error" | "warn", data: any, addArgs?: import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType) => void;
|
|
30
|
+
/**
|
|
31
|
+
* @description
|
|
32
|
+
* @param {any} data
|
|
33
|
+
* @param {import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType} [addArgs]
|
|
34
|
+
* @returns {void}
|
|
35
|
+
* @example
|
|
36
|
+
* import { Console } from 'vivth/neutral';
|
|
37
|
+
*
|
|
38
|
+
* Console.log({
|
|
39
|
+
* hello: 'world!!',
|
|
40
|
+
* });
|
|
41
|
+
*/
|
|
42
|
+
static log: (data: any, addArgs?: import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType) => void;
|
|
43
|
+
/**
|
|
44
|
+
* @description
|
|
45
|
+
* @param {any} data
|
|
46
|
+
* @param {import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType} [addArgs]
|
|
47
|
+
* @returns {void}
|
|
48
|
+
* @example
|
|
49
|
+
* import { Console } from 'vivth/neutral';
|
|
50
|
+
*
|
|
51
|
+
* Console.info({
|
|
52
|
+
* hello: 'world!!',
|
|
53
|
+
* });
|
|
54
|
+
*/
|
|
55
|
+
static info: (data: any, addArgs?: import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType) => void;
|
|
56
|
+
/**
|
|
57
|
+
* @description
|
|
58
|
+
* @param {any} data
|
|
59
|
+
* @param {import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType} [addArgs]
|
|
60
|
+
* @returns {void}
|
|
61
|
+
* @example
|
|
62
|
+
* import { Console } from 'vivth/neutral';
|
|
63
|
+
*
|
|
64
|
+
* Console.warn({
|
|
65
|
+
* hello: 'world!!',
|
|
66
|
+
* });
|
|
67
|
+
*/
|
|
68
|
+
static warn: (data: any, addArgs?: import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType) => void;
|
|
69
|
+
/**
|
|
70
|
+
* @description
|
|
71
|
+
* @param {any} data
|
|
72
|
+
* @param {import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType} [addArgs]
|
|
73
|
+
* @returns {void}
|
|
74
|
+
* @example
|
|
75
|
+
* import { Console } from 'vivth/neutral';
|
|
76
|
+
*
|
|
77
|
+
* Console.error({
|
|
78
|
+
* hello: 'world!!',
|
|
79
|
+
* });
|
|
80
|
+
*/
|
|
81
|
+
static error: (data: any, addArgs?: import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType) => void;
|
|
82
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description
|
|
3
|
+
* - class helper for signal performant logging, more or less just for type hinting;
|
|
4
|
+
* - internally used as Signal value logging instance;
|
|
5
|
+
* @template {any} VALUE
|
|
6
|
+
*/
|
|
7
|
+
export class DataLog<VALUE extends unknown> {
|
|
8
|
+
/**
|
|
9
|
+
* @description
|
|
10
|
+
* @param {VALUE} value
|
|
11
|
+
*/
|
|
12
|
+
constructor(value: VALUE);
|
|
13
|
+
/**
|
|
14
|
+
* @description
|
|
15
|
+
* - data value;
|
|
16
|
+
* @type {VALUE}
|
|
17
|
+
*/
|
|
18
|
+
value: VALUE;
|
|
19
|
+
/**
|
|
20
|
+
* @description
|
|
21
|
+
* - occurence unix timestamp;
|
|
22
|
+
* @type {number}
|
|
23
|
+
*/
|
|
24
|
+
timeStamp: number;
|
|
25
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description
|
|
3
|
+
* - a class for creating derived version of [Signal](#signal);
|
|
4
|
+
* @template VALUE
|
|
5
|
+
* @extends Signal<VALUE|undefined>
|
|
6
|
+
*/
|
|
7
|
+
export class Derived<VALUE> extends Signal<VALUE | undefined> {
|
|
8
|
+
/**
|
|
9
|
+
* @description
|
|
10
|
+
* - Derived used [Signal](#signal) and [Effect](#effect) under the hood;
|
|
11
|
+
* @param {(
|
|
12
|
+
* effectInstanceOptions: Parameters<ConstructorParameters<typeof Effect>[0]>[0] &
|
|
13
|
+
* {
|
|
14
|
+
* dontUpdate:Derived<VALUE>["dontUpdate"]
|
|
15
|
+
* }
|
|
16
|
+
* ) => Promise<Derived<VALUE>["dontUpdate"] | VALUE>
|
|
17
|
+
* } derivedFunction
|
|
18
|
+
* @param {ConstructorParameters<typeof Effect>[1]} [maxTimelapseBeingDebounced]
|
|
19
|
+
* - prevent rapid changes from being unhandled more than the value;
|
|
20
|
+
* - in miliseconds;
|
|
21
|
+
* - default: `2_000`;
|
|
22
|
+
* @example
|
|
23
|
+
* import { Signal, Derived } from 'vivth/neutral';
|
|
24
|
+
*
|
|
25
|
+
* const count = new Signal(0);
|
|
26
|
+
* const double = new Derived(async({
|
|
27
|
+
* subscribe,
|
|
28
|
+
* // : registrar callback for this derived instance, immediately return the signal instance
|
|
29
|
+
* }) => {
|
|
30
|
+
* return subscribe(count).value \* 2;
|
|
31
|
+
* // double listen to count changes, by returning the value, double.value also changes
|
|
32
|
+
* // notice the count.value are accessed double, but it's all safe,
|
|
33
|
+
* // since the wrapped one is the only one that are recorded as notifier.
|
|
34
|
+
* });
|
|
35
|
+
*
|
|
36
|
+
* count.value++;
|
|
37
|
+
*/
|
|
38
|
+
constructor(derivedFunction: (effectInstanceOptions: Parameters<ConstructorParameters<typeof Effect>[0]>[0] & {
|
|
39
|
+
dontUpdate: Derived<VALUE>["dontUpdate"];
|
|
40
|
+
}) => Promise<Derived<VALUE>["dontUpdate"] | VALUE>, maxTimelapseBeingDebounced?: ConstructorParameters<typeof Effect>[1]);
|
|
41
|
+
/**
|
|
42
|
+
* @description
|
|
43
|
+
* - return this value to not to update the value of this instance, even when returning early;
|
|
44
|
+
* @type {Symbol}
|
|
45
|
+
* @example
|
|
46
|
+
* import { Signal, Derived } from 'vivth/neutral';
|
|
47
|
+
*
|
|
48
|
+
* const count = new Signal(0);
|
|
49
|
+
* const double = new Derived(async({
|
|
50
|
+
* subscribe,
|
|
51
|
+
* isLastCalled,
|
|
52
|
+
* }) => {
|
|
53
|
+
* if(!(await isLastCalled(100))) {
|
|
54
|
+
* return this.dontUpdate;
|
|
55
|
+
* }
|
|
56
|
+
* const currentValue = subscribe(count).value;
|
|
57
|
+
* const res = await fetch(`some/path/${curentValue.toString()}`);
|
|
58
|
+
* if (
|
|
59
|
+
* !(await isLastCalled()) ||
|
|
60
|
+
* !res
|
|
61
|
+
* ) {
|
|
62
|
+
* // returning early prevent race condition, even if the earlier fetch return late;
|
|
63
|
+
* return this.dontUpdate;
|
|
64
|
+
* // returning this.dontUpdate, will not modify the derived instance value;
|
|
65
|
+
* }
|
|
66
|
+
* count.value++;
|
|
67
|
+
* return res;
|
|
68
|
+
* });
|
|
69
|
+
*
|
|
70
|
+
*/
|
|
71
|
+
dontUpdate: Symbol;
|
|
72
|
+
}
|
|
73
|
+
import { Signal } from './Signal.mjs';
|
|
74
|
+
import { Effect } from './Effect.mjs';
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef { import('../typehints/VivthCleanup.mjs').VivthCleanup } VivthCleanup
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* @type {Map<Effect, Set<Signal<any>>>}
|
|
6
|
+
*/
|
|
7
|
+
export const mapOfEffects: Map<Effect, Set<Signal<any>>>;
|
|
8
|
+
/**
|
|
9
|
+
* @description
|
|
10
|
+
* - a class for creating effect;
|
|
11
|
+
* - behaviour:
|
|
12
|
+
* >- doesn't autosubscribe at first run;
|
|
13
|
+
* >- it is using passed <b>subscribe</b> named `arg0` options as subscriber;
|
|
14
|
+
* >- doesn't block other queues during first run;
|
|
15
|
+
* >- can dynamically subscribes to signal, even on conditionals, that are not run during first run;
|
|
16
|
+
* @implements {VivthCleanup}
|
|
17
|
+
*/
|
|
18
|
+
export class Effect implements VivthCleanup {
|
|
19
|
+
/**
|
|
20
|
+
* @type {WeakMap<Object, ()=>void>}
|
|
21
|
+
*/
|
|
22
|
+
static #mapCurrentCleanupCallback: WeakMap<Object, () => void>;
|
|
23
|
+
/**
|
|
24
|
+
* @description
|
|
25
|
+
* @param {(
|
|
26
|
+
* arg0: Effect["options"]
|
|
27
|
+
* ) => Promise<void>
|
|
28
|
+
* } effect
|
|
29
|
+
* @param {number} [maxTimelapseBeingDebounced]
|
|
30
|
+
* - prevent rapid changes from being unhandled more than the value;
|
|
31
|
+
* - in miliseconds;
|
|
32
|
+
* - default: `2_000`;
|
|
33
|
+
* @example
|
|
34
|
+
* import { Signal, Derived, Effect, Console } from 'vivth/neutral';
|
|
35
|
+
*
|
|
36
|
+
* const count = new Signal(0);
|
|
37
|
+
*
|
|
38
|
+
* // double listen to count changes
|
|
39
|
+
* const double = new Derived(async({subscribe}) => subscribe(count).value \* 2);
|
|
40
|
+
*
|
|
41
|
+
* new Effect(async ({
|
|
42
|
+
* subscribe, // : registrar callback for this effect instance, immediately return the signal instance
|
|
43
|
+
* removeEffect, // : disable this effect instance from reacting to dependency changes;
|
|
44
|
+
* isLastCalled, // : check whether this callback run is this instance last called effect;
|
|
45
|
+
* }) => {
|
|
46
|
+
* const { value: currentValue, prev: prevValue } = subscribe(double); // effect listen to double changes
|
|
47
|
+
* Console.log({ currentValue, prevValue });
|
|
48
|
+
* })
|
|
49
|
+
*
|
|
50
|
+
* count.value++;
|
|
51
|
+
*/
|
|
52
|
+
constructor(effect: (arg0: Effect["options"]) => Promise<void>, maxTimelapseBeingDebounced?: number);
|
|
53
|
+
vivthCleanup: () => Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* @description
|
|
56
|
+
* - collections of methods to handle effect calls of this instance;
|
|
57
|
+
*/
|
|
58
|
+
options: {
|
|
59
|
+
/**
|
|
60
|
+
* @instance options
|
|
61
|
+
* @description
|
|
62
|
+
* - subscribe to `Signal_instance`;
|
|
63
|
+
* - normally it's passed as argument to constructor, however it is also accessible from `options` property;
|
|
64
|
+
* @template {Signal<any>} SIGV
|
|
65
|
+
* @param {SIGV} signalInstance
|
|
66
|
+
* @returns {SIGV}
|
|
67
|
+
* @example
|
|
68
|
+
* import { Signal, Effect } from 'vivth/neutral';
|
|
69
|
+
*
|
|
70
|
+
* const signal1 = new Signal(0);
|
|
71
|
+
* const signal2 = new Signal(true);
|
|
72
|
+
* const signal3 = new Signal(true);
|
|
73
|
+
* const effect = new Effect(async ({ subscribe }) => {
|
|
74
|
+
* const signal1Value = subscribe(signal1).value;
|
|
75
|
+
* if(signal1Value % 2){
|
|
76
|
+
* // only subscribe to signal3, on conditional block
|
|
77
|
+
* const signal3Value = subscribe(signal3).value;
|
|
78
|
+
* }
|
|
79
|
+
* })
|
|
80
|
+
* effect.options.subscribe(signal2);
|
|
81
|
+
*/
|
|
82
|
+
subscribe: <SIGV extends Signal<any>>(signalInstance: SIGV) => SIGV;
|
|
83
|
+
/**
|
|
84
|
+
* @instance options
|
|
85
|
+
* @description
|
|
86
|
+
* - the same with `.options.subscribe`, but for batches subscription;
|
|
87
|
+
* - ideal for first run which to add signal to subscription on main condition;
|
|
88
|
+
* - normally it's passed as argument to constructor, however it is also accessible from `options` property;
|
|
89
|
+
* @template {ReadonlyArray<any>} T
|
|
90
|
+
* @param {T} signalInstances
|
|
91
|
+
* @returns {T}
|
|
92
|
+
* @example
|
|
93
|
+
* import { Signal, Effect } from 'vivth/neutral';
|
|
94
|
+
*
|
|
95
|
+
* const signal1 = new Signal(0);
|
|
96
|
+
* const signal2 = new Signal(true);
|
|
97
|
+
* const effect = new Effect(async ({ subscribes }) => {
|
|
98
|
+
* const [{value: signal1Value}, {value: signal2Value}]= subscribes([signal1, signal2]);
|
|
99
|
+
* })
|
|
100
|
+
*/
|
|
101
|
+
subscribes: <T extends ReadonlyArray<any>>(signalInstances: T) => T;
|
|
102
|
+
/**
|
|
103
|
+
* @instance options
|
|
104
|
+
* @description
|
|
105
|
+
* - normally it's passed as argument to constructor, however it is also accessible from `options` property;
|
|
106
|
+
* @type {()=>void}
|
|
107
|
+
* @example
|
|
108
|
+
* import { Effect } from 'vivth/neutral';
|
|
109
|
+
*
|
|
110
|
+
* const effect = new Effect(async ({removeEffect}) => {
|
|
111
|
+
* if(someCondition){
|
|
112
|
+
* removeEffect();
|
|
113
|
+
* return
|
|
114
|
+
* }
|
|
115
|
+
* })
|
|
116
|
+
* // OR
|
|
117
|
+
* effect.options.removeEffect();
|
|
118
|
+
*/
|
|
119
|
+
removeEffect: () => void;
|
|
120
|
+
/**
|
|
121
|
+
* @description
|
|
122
|
+
* - remove inputed signal from this `Effect_instance`;
|
|
123
|
+
* - if effect signal has no other `Signal_instance` to listen to, it will then completely rendered non reactive;
|
|
124
|
+
* - normally it's passed as argument to constructor, however it is also accessible from `options` property;
|
|
125
|
+
* @param {Signal<any>} signalInstance
|
|
126
|
+
* @returns {void}
|
|
127
|
+
* @example
|
|
128
|
+
* import { Effect, Signal } from 'vivth/neutral';
|
|
129
|
+
*
|
|
130
|
+
* const count = new Signal(0);
|
|
131
|
+
* const effect = new Effect(async ({ subscribe }) => {
|
|
132
|
+
* console.log(subscribe(count).value); // will subscribe count changes;
|
|
133
|
+
* })
|
|
134
|
+
* count.value++; // will increase the count and trigger effect;
|
|
135
|
+
* effect.options.removeSignal(count);
|
|
136
|
+
* count.value++; // will increase the count but will no longer trigger effect;
|
|
137
|
+
*/
|
|
138
|
+
removeSignal: (signalInstance: Signal<any>) => void;
|
|
139
|
+
/**
|
|
140
|
+
* @description
|
|
141
|
+
* - remove inputed `SignalCollection` from this `Effect_instance`;
|
|
142
|
+
* - normally it's passed as argument to constructor, however it is also accessible from `options` property;
|
|
143
|
+
* @param {import('./SignalCollection.mjs').SignalCollection<Record<string, Signal<any>>>} collectionInstance
|
|
144
|
+
* @returns {void}
|
|
145
|
+
* @example
|
|
146
|
+
* import { Signal, Derived, Effect, SignalCollection } from 'vivth/neutral';
|
|
147
|
+
*
|
|
148
|
+
* const a = new Signal('a');
|
|
149
|
+
* const b = new Signal('b');
|
|
150
|
+
* const c = new Derived(async ({ subscribe }) => {
|
|
151
|
+
* return `${subscribe(b).value}_b`;
|
|
152
|
+
* });
|
|
153
|
+
* const f = new SignalCollection({ a, c });
|
|
154
|
+
*
|
|
155
|
+
* const e = new Effect(async ({ subscribe, isLastCalled, removeCollection }) => {
|
|
156
|
+
* const {
|
|
157
|
+
* a: { value: aa }, // safely desctructured and auto subscribed
|
|
158
|
+
* c: { value: cc }, // safely desctructured and auto subscribed
|
|
159
|
+
* } = f.signals(subscribe);
|
|
160
|
+
* if(!await isLastCalled(100)) {
|
|
161
|
+
* return; // impertaive debounce
|
|
162
|
+
* }
|
|
163
|
+
* // removeCollection(f); // standard call from outside callback;
|
|
164
|
+
* });
|
|
165
|
+
* // optional call from outside callback;
|
|
166
|
+
* e.options.removeCollection(f)
|
|
167
|
+
*/
|
|
168
|
+
removeCollection: (collectionInstance: import("./SignalCollection.mjs").SignalCollection<Record<string, Signal<any>>>) => void;
|
|
169
|
+
/**
|
|
170
|
+
* @instance options
|
|
171
|
+
* @description
|
|
172
|
+
* @returns {(timeoutMS?:number)=>Promise<boolean>}
|
|
173
|
+
* - timeoutMS only necessary if the operation doesn't naturally await;
|
|
174
|
+
* - if it's operation such as `fetch`, you can just leave it blank;
|
|
175
|
+
* @example
|
|
176
|
+
*
|
|
177
|
+
* import { Effect } from 'vivth/neutral';
|
|
178
|
+
*
|
|
179
|
+
* const effect = new Effect(async ({ isLastCalled }) => {
|
|
180
|
+
* if (!(await isLastCalled(100))) {
|
|
181
|
+
* return;
|
|
182
|
+
* }
|
|
183
|
+
* // OR
|
|
184
|
+
* const res = await fetch('some/path');
|
|
185
|
+
* if (!(await isLastCalled(
|
|
186
|
+
* // no need to add timeoutMS argument, as fetch are naturally add delay;
|
|
187
|
+
* ))) {
|
|
188
|
+
* return;
|
|
189
|
+
* }
|
|
190
|
+
* })
|
|
191
|
+
*/
|
|
192
|
+
readonly isLastCalled: (timeoutMS?: number) => Promise<boolean>;
|
|
193
|
+
} & {
|
|
194
|
+
[FactoryKey]: FACTORY;
|
|
195
|
+
};
|
|
196
|
+
/**
|
|
197
|
+
* @description
|
|
198
|
+
* - normally is to let to be automatically run when dependency signals changes, however it's also accessible as instance method;
|
|
199
|
+
* @type {()=>void}
|
|
200
|
+
* @example
|
|
201
|
+
* import { Effect } from 'vivth/neutral';
|
|
202
|
+
*
|
|
203
|
+
* const effect = new Effect(async ()=>{
|
|
204
|
+
* // code
|
|
205
|
+
* })
|
|
206
|
+
* effect.run();
|
|
207
|
+
*/
|
|
208
|
+
run: () => void;
|
|
209
|
+
#private;
|
|
210
|
+
}
|
|
211
|
+
export type VivthCleanup = import("../typehints/VivthCleanup.mjs").VivthCleanup;
|
|
212
|
+
import { Signal } from './Signal.mjs';
|
|
213
|
+
import { FactoryKey } from '../common/FactoryKey.mjs';
|
|
@@ -8,6 +8,10 @@ export class EnvSignal<VALUE> {
|
|
|
8
8
|
* @description
|
|
9
9
|
* - create `EnvSignal` instance;
|
|
10
10
|
* @param {VALUE} initialValue
|
|
11
|
+
* @example
|
|
12
|
+
* import { EnvSignal } from 'vivth/neutral';
|
|
13
|
+
*
|
|
14
|
+
* export const myEnv = new EnvSignal(true);
|
|
11
15
|
*/
|
|
12
16
|
constructor(initialValue: VALUE);
|
|
13
17
|
/**
|
|
@@ -15,7 +19,7 @@ export class EnvSignal<VALUE> {
|
|
|
15
19
|
* - exposed property to listen to;
|
|
16
20
|
* @type {Derived<VALUE>}
|
|
17
21
|
* @example
|
|
18
|
-
* import { EnvSignal, Effect } from 'vivth';
|
|
22
|
+
* import { EnvSignal, Effect } from 'vivth/neutral';
|
|
19
23
|
*
|
|
20
24
|
* export const myEnv = new EnvSignal(true);
|
|
21
25
|
* new Effect(async ({ subscribe }) => {
|
|
@@ -31,7 +35,7 @@ export class EnvSignal<VALUE> {
|
|
|
31
35
|
* @param {VALUE} correctedValue
|
|
32
36
|
* @returns {void}
|
|
33
37
|
* @example
|
|
34
|
-
* import { EnvSignal } from 'vivth';
|
|
38
|
+
* import { EnvSignal } from 'vivth/neutral';
|
|
35
39
|
*
|
|
36
40
|
* export const myEnv = new EnvSignal(true);
|
|
37
41
|
*
|