user 6 lat temu
rodzic
commit
168be9c192
4 zmienionych plików z 27 dodań i 12 usunięć
  1. 1 1
      lib/index.d.ts
  2. 13 5
      lib/index.js
  3. 1 1
      lib/index.js.map
  4. 12 5
      src/index.ts

+ 1 - 1
lib/index.d.ts

@@ -14,7 +14,7 @@ export declare class BankClient {
     getNonce(): Promise<number>;
     getBalance(): Promise<number>;
     upload(params: UploadItemParameters): Promise<any>;
-    appendBank(bankLink: string, itemHash: string): Promise<void>;
+    appendBank(bankAddress: string, bankTopic: string, itemHash: string): Promise<void>;
     private getPriv;
     private makePlaintextPayload;
     private parseBankLink;

+ 13 - 5
lib/index.js

@@ -137,11 +137,10 @@ class BankClient {
             return uploadResponse.hash;
         });
     }
-    appendBank(bankLink, itemHash) {
+    appendBank(bankAddress, bankTopic, itemHash) {
         return __awaiter(this, void 0, void 0, function* () {
             const payload = yield this.makePlaintextPayload(itemHash);
-            const { address, topic } = this.parseBankLink(bankLink);
-            const topicURL = this.urlBase + '/bank/private/' + encodeURIComponent(address) + '/' + encodeURIComponent(topic);
+            const topicURL = this.urlBase + '/bank/private/' + encodeURIComponent(bankAddress) + '/' + encodeURIComponent(bankTopic);
             yield this.webClient.requestJSON({
                 body: payload,
                 method: 'PUT',
@@ -187,11 +186,20 @@ class BankClient {
         if (!bankLink.startsWith('bank:')) {
             throw new Error('address must start with bank:');
         }
-        const [address, topic] = bankLink.substring(5).split('/');
+        const deprefixed = bankLink.substring(5);
+        let host;
+        let address;
+        let topic;
+        if (deprefixed[0] === '/' && deprefixed[1] === '/') {
+            [host, address, topic] = bankLink.substring(5).split('/');
+        }
+        else {
+            [address, topic] = bankLink.substring(5).split('/');
+        }
         if (!address || !topic) {
             throw new Error('cannot parse address and topic');
         }
-        return { address, topic };
+        return { host, address, topic };
     }
 }
 exports.BankClient = BankClient;

Plik diff jest za duży
+ 1 - 1
lib/index.js.map


+ 12 - 5
src/index.ts

@@ -131,10 +131,9 @@ export class BankClient {
       return uploadResponse.hash;
     }
 
-    public async appendBank(bankLink: string, itemHash: string): Promise<void> {
+    public async appendBank(bankAddress: string, bankTopic: string, itemHash: string): Promise<void> {
       const payload = await this.makePlaintextPayload(itemHash);
-      const { address, topic } = this.parseBankLink(bankLink);
-      const topicURL = this.urlBase + '/bank/private/' + encodeURIComponent(address) + '/' + encodeURIComponent(topic);
+      const topicURL = this.urlBase + '/bank/private/' + encodeURIComponent(bankAddress) + '/' + encodeURIComponent(bankTopic);
       await this.webClient.requestJSON({
         body: payload,
         method: 'PUT',
@@ -183,11 +182,19 @@ export class BankClient {
       if (!bankLink.startsWith('bank:')) {
         throw new Error('address must start with bank:');
       }
-      const [ address, topic ] = bankLink.substring(5).split('/');
+      const deprefixed = bankLink.substring(5);
+      let host: string | undefined;
+      let address: string;
+      let topic: string;
+      if (deprefixed[0] === '/' && deprefixed[1] === '/') {
+        [ host, address, topic ] = bankLink.substring(5).split('/');  
+      } else {
+        [ address, topic ] = bankLink.substring(5).split('/');
+      }
       if (!address || !topic) {
         throw new Error('cannot parse address and topic');
       }
-      return { address, topic };
+      return { host, address, topic };
     }
   
 }