names.js
1 let Names = {}; 2 3 Names.Providers = {}; 4 Names.noProviderError = 'Name system provider not set; e.g EmbarkJS.Names.setProvider("ens")'; 5 6 Names.registerProvider = function(providerName, obj) { 7 Names.Providers[providerName] = obj; 8 }; 9 10 Names.setProvider = function(providerName, options) { 11 let provider = this.Providers[providerName]; 12 13 if (!provider) { 14 throw new Error('Unknown name system provider'); 15 } 16 17 this.currentProviderName = providerName; 18 this.currentNameSystems = provider; 19 20 return provider.setProvider(options); 21 }; 22 23 // resolve resolves a name into an identifier of some kind 24 Names.resolve = function(name, callback) { 25 if (!this.currentNameSystems) { 26 throw new Error(this.noProviderError); 27 } 28 return this.currentNameSystems.resolve(name, callback); 29 }; 30 31 // the reverse of resolve, resolves using an identifier to get to a name 32 Names.lookup = function(identifier, callback) { 33 if (!this.currentNameSystems) { 34 throw new Error(this.noProviderError); 35 } 36 return this.currentNameSystems.lookup(identifier, callback); 37 }; 38 39 Names.isAvailable = function() { 40 if (!this.currentNameSystems) { 41 return false; 42 } 43 return this.currentNameSystems.isAvailable(); 44 }; 45 46 Names.registerSubDomain = function(name, address, callback) { 47 if (!this.currentNameSystems) { 48 throw new Error(this.noProviderError); 49 } 50 return this.currentNameSystems.registerSubDomain(name, address, callback); 51 }; 52 53 export default Names;