當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript levelup.LevelUp類代碼示例

本文整理匯總了TypeScript中levelup.LevelUp的典型用法代碼示例。如果您正苦於以下問題:TypeScript LevelUp類的具體用法?TypeScript LevelUp怎麽用?TypeScript LevelUp使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了LevelUp類的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: buildExistingFilesDb

  public async buildExistingFilesDb(watchPath: string): Promise<number> {
    try {
      const cwd = watchPath;

      const files = await globPromise(`**/*`, {
        cwd
      });

      const filePayload: FilePayload = {
        jobStatus: FileJobStatus.Existing,
        jobType: FileJobType.Unknown
      };

      const existingFiles = files.map(
        (filepath: string): AbstractBatch => ({
          key: path.resolve(cwd, filepath),
          type: 'put',
          value: filePayload
        })
      );

      await this.files.batch(existingFiles);

      return existingFiles.length;
    } catch (error) {
      throw error;
    }
  }
開發者ID:mshick,項目名稱:arrivals-osx,代碼行數:28,代碼來源:dispatcher.ts

示例2: addKeys

 async addKeys(params: {
   name: string;
   keys: Wallet.KeyImport[];
   encryptionKey: string;
 }) {
   const { name, keys, encryptionKey } = params;
   const ops = keys.map(key => {
     let { pubKey } = key;
     pubKey =
       pubKey || new bitcoreLib.PrivateKey(key.privKey).publicKey.toString();
     let payload = {};
     if (pubKey && key.privKey && encryptionKey) {
       const encKey = Encryption.encryptPrivateKey(
         JSON.stringify(key),
         Buffer.from(pubKey, 'hex'),
         Buffer.from(encryptionKey, 'hex')
       );
       payload = { encKey, pubKey };
     }
     return {
       type: 'put',
       key: `key|${name}|${key.address}`,
       value: JSON.stringify(payload)
     };
   });
   if (ops.length > 1) {
     return this.db.batch(ops);
   } else {
     this.db.put(ops[0].key, ops[0].value);
   }
 }
開發者ID:bitpay,項目名稱:bitcore,代碼行數:31,代碼來源:storage.ts

示例3: get

  public get(query: any, callback: (data: any) => void) {
    if (query === null) {
      const result: any = {};

      this.db
        .createReadStream()
        .on('data', (data: any) => {
          result[data.key] = data.value;
        })
        .on('end', () => {
          callback(result);
        });
    } else if (Array.isArray(query)) {
      const result: any = {};

      this.db
        .createReadStream()
        .on('data', (data: any) => {
          for (const key of query) {
            if (key === data.key) {
              result[data.key] = data.value;
            }
          }
        })
        .on('end', () => {
          callback(result);
        });
    } else if (typeof query === 'object') {
      const result: any = { ...query };

      this.db
        .createReadStream()
        .on('data', (data: any) => {
          for (const key in query) {
            if (key === data.key && data.value !== undefined) {
              result[data.key] = data.value;
            }
          }
        })
        .on('end', () => {
          callback(result);
        });
    } else if (typeof query === 'string') {
      this.db.get(query, (err, value) => {
        if (err) {
          if (err.notFound) {
            return callback({});
          }
        }

        callback({ [query]: value });
      });
    } else {
      callback({});
    }
  }
開發者ID:laquereric,項目名稱:wexond,代碼行數:56,代碼來源:storage-area.ts

示例4: enqueueFile

  public async enqueueFile(
    filepath: string,
    filetype: FileJobType
  ): Promise<boolean> {
    try {
      const tag = new Tag(filepath);

      const jobType = filetype;
      const jobStatus = FileJobStatus.Pending;

      const filePayload: FilePayload = {
        jobStatus,
        jobType
      };

      await this.files.put(filepath, filePayload);

      const fileJobPayload: FileJobPayload = {
        filepath,
        jobType
      };

      const jobId = await this.queue.pushPromise(fileJobPayload);

      logger.debug('File enqueued with jobId: %s', jobId);

      await tag.addTag('Yellow');

      return true;
    } catch (err) {
      logger.error('Error in enqueue\n%s', prettyPrint(err));
      return false;
    }
  }
開發者ID:mshick,項目名稱:arrivals-osx,代碼行數:34,代碼來源:dispatcher.ts

示例5: loadWallet

 async loadWallet(params: { name: string }) {
   const { name } = params;
   const wallet = (await this.db.get(`wallet|${name}`)) as string;
   if (!wallet) {
     return;
   }
   return JSON.parse(wallet);
 }
開發者ID:bitjson,項目名稱:bitcore,代碼行數:8,代碼來源:storage.ts

示例6: callback

 this.get(null, data => {
   const batch = this.db.batch();
   for (const key in data) {
     batch.del(key);
   }
   batch.write(() => {
     callback();
   });
 });
開發者ID:laquereric,項目名稱:wexond,代碼行數:9,代碼來源:storage-area.ts

示例7: remove

  public remove(keys: any, callback: any) {
    if (typeof keys === 'string') {
      this.db.del(keys, err => {
        callback();
      });
    } else if (Array.isArray(keys)) {
      const batch = this.db.batch();

      for (const key of keys) {
        batch.del(key);
      }

      batch.write(() => {
        callback();
      });
    } else {
      // error
    }
  }
開發者ID:laquereric,項目名稱:wexond,代碼行數:19,代碼來源:storage-area.ts

示例8: handler

  public async handler(_: string, payload: any): Promise<void> {
    try {
      const { filepath, jobType } = payload;

      logger.info('Starting work for %s', filepath);

      const tag = new Tag(filepath);

      const currentValue = await this.files.get(filepath);
      const { jobStatus } = currentValue;

      logger.debug('Work type: %s', FileJobType[jobType]);

      try {
        const handled =
          jobStatus === FileJobStatus.Pending && existsSync(filepath)
            ? this.handleFile(filepath, jobType) && true
            : false;

        currentValue.jobStatus = handled
          ? FileJobStatus.Complete
          : FileJobStatus.Unhandled;

        await tag.removeTag('Red');
        await tag.removeTag('Yellow');
        await tag.addTag('Green');
      } catch (err) {
        logger.error(err);

        currentValue.jobStatus = FileJobStatus.Error;

        await tag.removeTag('Green');
        await tag.removeTag('Yellow');
        await tag.addTag('Red');
      } finally {
        this.files.put(filepath, currentValue);
      }
    } catch (err) {
      logger.error(err);
    }
  }
開發者ID:mshick,項目名稱:arrivals-osx,代碼行數:41,代碼來源:worker.ts

示例9: isNewFile

 public async isNewFile(filepath: string): Promise<boolean> {
   try {
     await this.files.get(filepath);
     return false;
   } catch (err) {
     switch (err.notFound) {
       case true:
         return true;
       default:
         throw err;
     }
   }
 }
開發者ID:mshick,項目名稱:arrivals-osx,代碼行數:13,代碼來源:dispatcher.ts

示例10: Transform

 listWallets() {
   return this.db.createReadStream().pipe(
     new Transform({
       objectMode: true,
       write: function(data, enc, next) {
         if (data.key.toString().startsWith('wallet')) {
           this.push(data.value.toString());
         }
         next();
       }
     })
   );
 }
開發者ID:bitpay,項目名稱:bitcore,代碼行數:13,代碼來源:storage.ts


注:本文中的levelup.LevelUp類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。