(targetRev: number)
| 397 | } |
| 398 | |
| 399 | async getInternalRevisionAText(targetRev: number) { |
| 400 | const keyRev = this.getKeyRevisionNumber(targetRev); |
| 401 | const headRev = this.getHeadRevisionNumber(); |
| 402 | if (targetRev > headRev) targetRev = headRev; |
| 403 | const [keyAText, changesets] = await Promise.all([ |
| 404 | this._getKeyRevisionAText(keyRev), |
| 405 | Promise.all( |
| 406 | Stream.range(keyRev + 1, targetRev + 1).map(this.getRevisionChangeset.bind(this))), |
| 407 | ]); |
| 408 | const apool = this.apool(); |
| 409 | let atext = keyAText as AText; |
| 410 | for (const cs of changesets) atext = applyToAText(cs as string, atext, apool); |
| 411 | return atext; |
| 412 | } |
| 413 | |
| 414 | async getRevision(revNum: number) { |
| 415 | return await this.db.get(`pad:${this.id}:revs:${revNum}`); |
no test coverage detected