(namespace: string)
| 537 | return sem |
| 538 | } |
| 539 | const ensureStore = (namespace: string) => |
| 540 | getSem(namespace).withPermits(1)(Effect.suspend(() => { |
| 541 | const store = stores.get(namespace) |
| 542 | if (store) return Effect.succeed(store) |
| 543 | if (config?.allowNamespace && !config.allowNamespace(namespace)) { |
| 544 | throw new Error(`Namespace ${namespace} not allowed!`) |
| 545 | } |
| 546 | return makeMemoryStoreInt(modelName, idKey, namespace, seed, config?.defaultValues) |
| 547 | .pipe( |
| 548 | Effect.orDie, |
| 549 | Effect.provide(ctx), |
| 550 | Effect.tap((store) => Effect.sync(() => stores.set(namespace, store))) |
| 551 | ) |
| 552 | })) |
| 553 | const getStore = !config?.allowNamespace |
| 554 | ? Effect.succeed(primary) |
| 555 | : storeId.pipe(Effect.flatMap((namespace) => ensureStore(namespace))) |
no test coverage detected
searching dependent graphs…