* Returns created object. * @template FactoryData * @template FallbackCreatedObject * @param {string} type type * @param {FactoryData} data factory data * @param {Omit<StatsFactoryContext, "type">} baseContext context used as base * @returns {CreatedObject<FactoryData, FallbackCreatedObj
(type, data, baseContext)
| 246 | * @returns {CreatedObject<FactoryData, FallbackCreatedObject>} created object |
| 247 | */ |
| 248 | create(type, data, baseContext) { |
| 249 | if (this._inCreate) { |
| 250 | return this._create(type, data, baseContext); |
| 251 | } |
| 252 | try { |
| 253 | this._inCreate = true; |
| 254 | return this._create(type, data, baseContext); |
| 255 | } finally { |
| 256 | for (const key of Object.keys(this._caches)) { |
| 257 | this._caches[/** @type {keyof StatsFactoryHooks} */ (key)].clear(); |
| 258 | } |
| 259 | this._inCreate = false; |
| 260 | } |
| 261 | } |
| 262 | |
| 263 | /** |
| 264 | * Returns created object. |
no test coverage detected