anon-identity
Version:
Decentralized identity framework with DIDs, Verifiable Credentials, and privacy-preserving selective disclosure
44 lines • 1.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.StorageFactory = void 0;
const memory_storage_provider_1 = require("./providers/memory-storage-provider");
/**
* Browser-compatible storage factory
* Only supports memory storage in the browser
*/
class StorageFactory {
static createProvider(config) {
const key = JSON.stringify(config);
// Return existing instance if available
if (this.instances.has(key)) {
return this.instances.get(key);
}
let provider;
switch (config.provider) {
case 'memory':
provider = new memory_storage_provider_1.MemoryStorageProvider();
break;
case 'file':
throw new Error('File storage is not available in browser environment. Use memory storage instead.');
case 'ipfs':
throw new Error('IPFS storage requires a server-side proxy in browser environment.');
case 'blockchain':
throw new Error('Blockchain storage requires a server-side proxy in browser environment.');
case 'hybrid':
throw new Error('Hybrid storage is not available in browser environment. Use memory storage instead.');
default:
throw new Error(`Unknown storage provider: ${config.provider}`);
}
this.instances.set(key, provider);
return provider;
}
static getDefaultProvider() {
return this.createProvider({ provider: 'memory' });
}
static clearInstances() {
this.instances.clear();
}
}
exports.StorageFactory = StorageFactory;
StorageFactory.instances = new Map();
//# sourceMappingURL=storage-factory-browser.js.map