import { Utils } from "../misc/utils"; import { AppIdService as AppIdServiceAbstraction } from "../abstractions/appId.service"; import { StorageService } from "../abstractions/storage.service"; export class AppIdService implements AppIdServiceAbstraction { constructor(private storageService: StorageService) {} getAppId(): Promise { return this.makeAndGetAppId("appId"); } getAnonymousAppId(): Promise { return this.makeAndGetAppId("anonymousAppId"); } private async makeAndGetAppId(key: string) { const existingId = await this.storageService.get(key); if (existingId != null) { return existingId; } const guid = Utils.newGuid(); await this.storageService.save(key, guid); return guid; } }