{"version":3,"sources":["../../src/registries/web3/cursors/packages.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,GAAG,yBAAsB;AACrC,OAAO,EAAE,MAAM,OAAO,CAAC;AACvB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,aAAK,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAE3C,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAK,CAAC,EAAE,CAAE,YAAW,gBAAgB,CAAC,UAAU,CAAC;IAC3F,OAAO,CAAC,OAAO,CAAK;IAEpB,OAAO,CAAC,MAAM,CAAK;IAEnB,OAAO,CAAC,IAAI,CAAO;IAEnB,OAAO,CAAC,QAAQ,CAAW;IAE3B,OAAO,CAAC,UAAU,CAAM;gBAEZ,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG;IAUrF,OAAO,CAAC,OAAO;IAgBR,IAAI,IAAI,cAAc,CAAC,UAAU,CAAC;IAqBzC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,UAAU,CAAC;CAGlD","file":"packages.d.ts","sourcesContent":["/**\n * @module \"ethpm/registries/web3\"\n */\n\n\nimport * as pkg from 'ethpm/package';\nimport BN from 'bn.js';\nimport Web3 from 'web3';\nimport Paged from './paged';\nimport { Contract } from 'web3-eth-contract/types';\n\ntype ResultType = Promise<pkg.PackageName>;\n\nexport default class PackagesCursor extends Paged<BN> implements IterableIterator<ResultType> {\n  private pointer: BN;\n\n  private length: BN;\n\n  private web3: Web3;\n\n  private registry: Contract;\n\n  private packageIds: any;\n\n  constructor(pageSize: BN, length: BN, web3: Web3, registry: Contract, packageIds: any) {\n    super(pageSize);\n    this.pointer = new BN(0);\n    this.length = length.clone();\n    this.web3 = web3;\n    this.registry = registry;\n    this.packageIds = packageIds;\n    this.setPages(packageIds);\n  }\n\n  private getName(): IteratorResult<ResultType> {\n    const promise: ResultType = new Promise((resolve) => {\n      const packageId = this.getDatum(this.pointer);\n      if (packageId === null) {\n        resolve('');\n      } else {\n        this.registry.methods.getPackageName(packageId).call().then((result: any) => resolve(result));\n      }\n    });\n    this.pointer = this.pointer.addn(1);\n    return {\n      done: false,\n      value: promise,\n    };\n  }\n\n  public next(): IteratorResult<ResultType> {\n    if (this.pointer.lt(this.length)) {\n      return this.getName();\n    }\n    return {\n      done: true,\n      value: undefined,\n    };\n\n    const promise: ResultType = new Promise((resolve) => {\n      resolve(''); // TODO: empty string or something else?\n    });\n\n    this.pointer = this.pointer.addn(1);\n\n    return {\n      done: true,\n      value: promise,\n    };\n  }\n\n  [Symbol.iterator](): IterableIterator<ResultType> {\n    return this;\n  }\n}\n"]}