UNPKG

@ryo-98/react-api-bridge

Version:
65 lines (64 loc) 2.46 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var mountHookInitEffect_exports = {}; __export(mountHookInitEffect_exports, { mountHookInitEffect: () => mountHookInitEffect }); module.exports = __toCommonJS(mountHookInitEffect_exports); var import_getIsMulti = require("./getIsMulti.js"); var import_tryInvoke = require("../utils/tryInvoke.js"); var import_mappedSet = require("../utils/mappedSet.js"); function mountHookInitEffect(name, onInit, apiNList, hookId, bridgeOptions, initializedOnInitMap, touchedRefs) { if (!onInit) return; const isMulti = (0, import_getIsMulti.getIsMulti)(name, bridgeOptions) ?? false; const involvedApiList = []; let deferFn; if (apiNList && !isMulti) { const _assertedApi = apiNList; if (!_assertedApi.current) return; const _assertedOnInit = onInit; deferFn = () => { return _assertedOnInit(_assertedApi); }; involvedApiList.push(_assertedApi); } else if (apiNList && isMulti) { const _assertedApiList = apiNList; if (!_assertedApiList.length) return; const _assertedOnInit = onInit; deferFn = () => { return _assertedOnInit(void 0, _assertedApiList); }; involvedApiList.push(..._assertedApiList); } else { throw new Error("This might the internal Error of react-api-bridge"); } let clearFns = []; if (involvedApiList.some((apiRef) => !initializedOnInitMap.get(apiRef)?.has(hookId))) { clearFns.push( deferFn?.(), ...involvedApiList.map((apiRef) => { touchedRefs.add(apiRef); return (0, import_mappedSet.appendToMappedSet)(initializedOnInitMap, apiRef, hookId); }) ); } return () => { clearFns.forEach(import_tryInvoke.tryInvoke); }; }