@ic-wallet-kit/hpl
Version:
Ic middleware wallet HPL protocol
77 lines (76 loc) • 4.57 kB
JavaScript
"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;