Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@supertenant/core / src / tracing / taskManager.js
Size: Mime:
// (c) Copyright 2023 Supertenant Ltd. - all rights reserved.
// See LICENSE file in project root for license terms.
"use strict";const superbrain=require("@supertenant/superbrain")["superbrain"],consts=require("@supertenant/superconsts"),ns=require("./cls").ns,taskKey="st.task",cleanupKey="st.cleanup",finishTaskRegistry=new FinalizationRegistry(taskId=>{superbrain.finishTask(taskId)});function getOrCreateTask(fallbackToSharedContext=!1){let taskId=ns.get(taskKey,fallbackToSharedContext);return null!==taskId&&void 0!==taskId||0!==(taskId=superbrain.createTaskAutoInc(0,consts.Task.Coroutine))&&(ns.set(taskKey,taskId),fallbackToSharedContext={},ns.set(cleanupKey,fallbackToSharedContext),finishTaskRegistry.register(fallbackToSharedContext,taskId)),taskId}module.exports.getOrCreateTask=getOrCreateTask;