import { type ObservableId, type SubscriberId, type UpdateToken, } from '../types/index.mjs'; function* idMaker(): Generator { let mut_i = 0; while (true) { // eslint-disable-next-line total-functions/no-unsafe-type-assertion yield Symbol(mut_i.toString()) as T; mut_i += 1; } } const observableIdMaker = idMaker(); const subscriberIdMaker = idMaker(); const updateTokenMaker = idMaker(); export const issueObservableId = (): ObservableId => observableIdMaker.next().value; export const issueSubscriberId = (): SubscriberId => subscriberIdMaker.next().value; export const issueUpdateToken = (): UpdateToken => updateTokenMaker.next().value;