UNPKG

@modern-js/runtime-utils

Version:

A Progressive React Framework for modern web development.

70 lines (69 loc) 2.58 kB
"use strict"; var __webpack_require__ = {}; (()=>{ __webpack_require__.d = (exports1, definition)=>{ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, { enumerable: true, get: definition[key] }); }; })(); (()=>{ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop); })(); (()=>{ __webpack_require__.r = (exports1)=>{ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, { value: 'Module' }); Object.defineProperty(exports1, '__esModule', { value: true }); }; })(); var __webpack_exports__ = {}; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { storage: ()=>async_storage_server_storage, getAsyncLocalStorage: ()=>getAsyncLocalStorage }); const external_async_hooks_namespaceObject = require("async_hooks"); const createStorage = ()=>{ let storage; if (void 0 !== external_async_hooks_namespaceObject.AsyncLocalStorage) storage = new external_async_hooks_namespaceObject.AsyncLocalStorage(); const run = (context, cb)=>{ if (!storage) throw new Error(`Unable to use async_hook, please confirm the node version >= 12.17 `); return new Promise((resolve, reject)=>{ storage.run(context, ()=>{ try { return resolve(cb()); } catch (error) { return reject(error); } }); }); }; const useContext = ()=>{ if (!storage) throw new Error(`Unable to use async_hook, please confirm the node version >= 12.17 `); const context = storage?.getStore(); if (!context) throw new Error("Can't call useContext out of scope, make sure @modern-js/runtime-utils is a single version in node_modules"); return context; }; return { run, useContext }; }; const async_storage_server_storage = createStorage(); const getAsyncLocalStorage = async ()=>async_storage_server_storage; exports.getAsyncLocalStorage = __webpack_exports__.getAsyncLocalStorage; exports.storage = __webpack_exports__.storage; for(var __rspack_i in __webpack_exports__)if (-1 === [ "getAsyncLocalStorage", "storage" ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i]; Object.defineProperty(exports, '__esModule', { value: true });