diff --git a/packages/pockethost/src/services/InstanceService/mkInstanceCache.ts b/packages/pockethost/src/services/InstanceService/mkInstanceCache.ts deleted file mode 100644 index 7aebe304..00000000 --- a/packages/pockethost/src/services/InstanceService/mkInstanceCache.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { - EDGE_APEX_DOMAIN, - INSTANCE_COLLECTION, - InstanceFields_WithUser, - InstanceId, - LoggerService, - PocketBase, - UserFields, - UserId, -} from '@' -import { forEach } from '@s-libs/micro-dash' - -export const mkInstanceCache = (client: PocketBase) => { - const { dbg, error } = LoggerService().create(`InstanceCache`) - - const cache: { [_: InstanceId]: InstanceFields_WithUser | undefined } = {} - const byUid: { - [_: UserId]: { [_: InstanceId]: InstanceFields_WithUser } - } = {} - - client - .collection(`users`) - .subscribe(`*`, (e) => { - const { action, record } = e - if ([`create`, `update`].includes(action)) { - dbg({ action, record }) - updateUser(record) - } - }) - .catch((e) => { - error(e) - }) - - client - .collection(INSTANCE_COLLECTION) - .subscribe( - `*`, - (e) => { - const { action, record } = e - if ([`create`, `update`].includes(action)) { - setItem(record) - dbg({ action, record }) - } - }, - { expand: 'uid' } - ) - .catch((e) => { - error(e) - }) - - function blankItem(host: string) { - cache[host] = undefined - } - - function updateUser(record: UserFields) { - forEach(byUid[record.id], (extendedInstance) => { - extendedInstance.expand.uid = record - }) - } - - function setItem(record: InstanceFields_WithUser) { - if (record.cname) { - cache[record.cname] = record - } - cache[`${record.subdomain}.${EDGE_APEX_DOMAIN()}`] = record - cache[`${record.id}.${EDGE_APEX_DOMAIN()}`] = record - byUid[record.uid] = { - ...byUid[record.uid], - [record.id]: record, - } - updateUser(record.expand.uid) - } - - function getItem(host: string) { - return cache[host] - } - - function hasItem(host: string) { - return host in cache - } - - return { setItem, getItem, blankItem, hasItem } -}