UNPKG

@tkey/default

Version:

TKey default library

78 lines (75 loc) 2.85 kB
import _objectSpread from '@babel/runtime/helpers/objectSpread2'; import { TKey } from '@tkey/core'; import { ServiceProviderBase } from '@tkey/service-provider-base'; import { TorusServiceProvider } from '@tkey/service-provider-torus'; import { SHARE_SERIALIZATION_MODULE_NAME, ShareSerializationModule } from '@tkey/share-serialization'; import { SHARE_TRANSFER_MODULE_NAME, ShareTransferModule } from '@tkey/share-transfer'; import { TorusStorageLayer, MockStorageLayer } from '@tkey/storage-layer-torus'; class TKeyDefault extends TKey { constructor(args) { const { modules = {}, serviceProvider, storageLayer, customAuthArgs, serverTimeOffset } = args || {}; const defaultModules = { [SHARE_TRANSFER_MODULE_NAME]: new ShareTransferModule(), [SHARE_SERIALIZATION_MODULE_NAME]: new ShareSerializationModule() }; let finalServiceProvider; let finalStorageLayer; if (!serviceProvider) { finalServiceProvider = new TorusServiceProvider({ customAuthArgs }); } else { finalServiceProvider = serviceProvider; } if (!storageLayer) { finalStorageLayer = new TorusStorageLayer({ hostUrl: "https://metadata.web3auth.io", serverTimeOffset }); } else { finalStorageLayer = storageLayer; } super(_objectSpread(_objectSpread({}, args || {}), {}, { modules: _objectSpread(_objectSpread({}, defaultModules), modules), serviceProvider: finalServiceProvider, storageLayer: finalStorageLayer })); } static async fromJSON(value, args) { const { storageLayer: tempOldStorageLayer, serviceProvider: tempOldServiceProvider } = value; const { storageLayer, serviceProvider, modules = {}, customAuthArgs, serverTimeOffset = 0 } = args || {}; const defaultModules = { [SHARE_TRANSFER_MODULE_NAME]: new ShareTransferModule(), [SHARE_SERIALIZATION_MODULE_NAME]: new ShareSerializationModule() }; const finalServiceProvider = serviceProvider || TorusServiceProvider.fromJSON(tempOldServiceProvider) || ServiceProviderBase.fromJSON(tempOldServiceProvider) || new TorusServiceProvider({ customAuthArgs }); tempOldStorageLayer.serviceProvider = finalServiceProvider; const finalStorageLayer = storageLayer || MockStorageLayer.fromJSON(tempOldStorageLayer) || TorusStorageLayer.fromJSON(tempOldStorageLayer) || new TorusStorageLayer({ hostUrl: "https://metadata.web3auth.io", serverTimeOffset }); return super.fromJSON(value, _objectSpread(_objectSpread({}, args || {}), {}, { modules: _objectSpread(_objectSpread({}, defaultModules), modules), serviceProvider: finalServiceProvider, storageLayer: finalStorageLayer })); } } export { TKeyDefault };