change_note.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. 'use strict'
  2. const assert = require('check-types').assert
  3. const Change = require('./change')
  4. /**
  5. * @constructor
  6. * @param {number} baseVersion the new base version for the change
  7. * @param {?Change} change
  8. * @classdesc
  9. * A `ChangeNote` is returned when the server has applied a {@link Change}.
  10. */
  11. function ChangeNote(baseVersion, change) {
  12. assert.integer(baseVersion, 'bad baseVersion')
  13. assert.maybe.instance(change, Change, 'bad change')
  14. this.baseVersion = baseVersion
  15. this.change = change
  16. }
  17. module.exports = ChangeNote
  18. /**
  19. * For serialization.
  20. *
  21. * @return {Object}
  22. */
  23. ChangeNote.prototype.toRaw = function changeNoteToRaw() {
  24. return {
  25. baseVersion: this.baseVersion,
  26. change: this.change.toRaw(),
  27. }
  28. }
  29. ChangeNote.prototype.toRawWithoutChange =
  30. function changeNoteToRawWithoutChange() {
  31. return {
  32. baseVersion: this.baseVersion,
  33. }
  34. }
  35. ChangeNote.fromRaw = function changeNoteFromRaw(raw) {
  36. assert.integer(raw.baseVersion, 'bad raw.baseVersion')
  37. assert.maybe.object(raw.change, 'bad raw.changes')
  38. return new ChangeNote(raw.baseVersion, Change.fromRaw(raw.change))
  39. }
  40. ChangeNote.prototype.getBaseVersion = function () {
  41. return this.baseVersion
  42. }
  43. ChangeNote.prototype.getResultVersion = function () {
  44. return this.baseVersion + 1
  45. }
  46. ChangeNote.prototype.getChange = function () {
  47. return this.change
  48. }