UNPKG

@ic-wallet-kit/hpl

Version:
77 lines (76 loc) 4.57 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.HplInitializer = void 0; const replications_1 = require("../replications"); const repositories_1 = require("../repositories"); const service_1 = require("../service"); const storage_1 = require("../storage"); const sync_1 = require("../sync"); const common_1 = require("@ic-wallet-kit/common"); const typedi_1 = __importDefault(require("typedi")); class HplInitializer { static build(identifierService, rxStorage, dataStorage, logger, refreshServiceConfiguration, hplReplicationConfiguration, canisterService, createHplCanisterFunc) { if (!typedi_1.default.has(common_1.IdentifierService)) { typedi_1.default.set(common_1.IdentifierService, identifierService); } if (!typedi_1.default.has("ILogger")) { typedi_1.default.set("ILogger", logger); } if (!typedi_1.default.has("IStorage")) { typedi_1.default.set("IStorage", dataStorage); } if (!typedi_1.default.has("RefreshServiceConfiguration")) { typedi_1.default.set("RefreshServiceConfiguration", refreshServiceConfiguration); } typedi_1.default.set(service_1.CanisterService, canisterService); const hplDbContext = new storage_1.HplDbContext(identifierService, rxStorage); const hplDataCacheRepository = new repositories_1.HplDataCacheRepository(logger, identifierService, dataStorage); const hplAssetDataStorage = new storage_1.HplAssetDataStorage(logger, identifierService, hplDbContext); const hplAccountDataStorage = new storage_1.HplAccountDataStorage(logger, identifierService, hplDbContext); const hplVirtualAccountDataStorage = new storage_1.HplVirtualAccountDataStorage(logger, identifierService, hplDbContext); const hplContactDataStorage = new storage_1.HplContactDataStorage(logger, identifierService, hplDbContext); const hplStateCacheRepository = new repositories_1.HplStateCacheRepository(logger, identifierService, dataStorage); const hplDictionaryCacheRepository = new repositories_1.HplDictionaryCacheRepository(logger, identifierService, dataStorage); const hplOwnerCacheRepository = new repositories_1.HplOwnerCacheRepository(logger, identifierService, dataStorage); const hplMintCacheRepository = new repositories_1.HplMintCacheRepository(logger, identifierService, dataStorage); typedi_1.default.set(storage_1.HplDbContext, hplDbContext); typedi_1.default.set("IHplAssetDataStorage", hplAssetDataStorage); typedi_1.default.set("IHplAccountDataStorage", hplAccountDataStorage); typedi_1.default.set("IHplVirtualAccountDataStorage", hplVirtualAccountDataStorage); typedi_1.default.set("IHplContactDataStorage", hplContactDataStorage); typedi_1.default.set("IHplDataCacheRepository", hplDataCacheRepository); typedi_1.default.set("IHplStateCacheRepository", hplStateCacheRepository); typedi_1.default.set("IHplOwnerCacheRepository", hplOwnerCacheRepository); typedi_1.default.set("IHplDictionaryCacheRepository", hplDictionaryCacheRepository); typedi_1.default.set("IHplMintCacheRepository", hplMintCacheRepository); typedi_1.default.set("HplReplicationConfiguration", hplReplicationConfiguration); typedi_1.default.set("createHplCanisterFunc", createHplCanisterFunc); } static async init() { const hplDbContext = typedi_1.default.get(storage_1.HplDbContext); await hplDbContext.init(); const hplReplicationManager = typedi_1.default.get(replications_1.HplReplicationManager); hplReplicationManager.init(); const hplRefreshService = typedi_1.default.get(sync_1.HplRefreshService); hplRefreshService.init(); } static logout() { typedi_1.default.reset(); if (typedi_1.default.has(common_1.IdentifierService)) { typedi_1.default.remove(common_1.IdentifierService); } if (typedi_1.default.has("ILogger")) { typedi_1.default.remove("ILogger"); } if (typedi_1.default.has("IStorage")) { typedi_1.default.remove("IStorage"); } if (typedi_1.default.has("RefreshServiceConfiguration")) { typedi_1.default.remove("RefreshServiceConfiguration"); } } } exports.HplInitializer = HplInitializer;