UNPKG

lingo3d

Version:

Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor

25 lines 1.02 kB
import { sharedPoolReleaseSystem } from "../../systems/configSystems/sharedPoolReleaseSystem"; export default (factory, dispose) => { const paramsInstanceMap = new Map(); const paramsCountRecord = {}; const objectParamStringMap = new WeakMap(); const request = (params, paramString = JSON.stringify(params), context = undefined) => { if ((paramsCountRecord[paramString] = (paramsCountRecord[paramString] ?? 0) + 1) === 1) { const result = factory(params, context); objectParamStringMap.set(result, paramString); paramsInstanceMap.set(paramString, result); return result; } return paramsInstanceMap.get(paramString); }; const release = (object) => object && sharedPoolReleaseSystem.add(object, { objectParamStringMap, paramsCountRecord, dispose, paramsInstanceMap }); return [request, release]; }; //# sourceMappingURL=createSharedPool.js.map