Merge pull request #21664 from overleaf/jpa-blob-hash
[overleaf-editor-core] stricter types for Blob interface GitOrigin-RevId: 8595fce0d5c98074d2313be5a5634e80f92c68b5
This commit is contained in:
@@ -40,6 +40,11 @@ class Blob {
|
||||
|
||||
static NotFoundError = NotFoundError
|
||||
|
||||
/**
|
||||
* @param {string} hash
|
||||
* @param {number} byteLength
|
||||
* @param {number} [stringLength]
|
||||
*/
|
||||
constructor(hash, byteLength, stringLength) {
|
||||
this.setHash(hash)
|
||||
this.setByteLength(byteLength)
|
||||
@@ -63,14 +68,14 @@ class Blob {
|
||||
|
||||
/**
|
||||
* Hex hash.
|
||||
* @return {?String}
|
||||
* @return {String}
|
||||
*/
|
||||
getHash() {
|
||||
return this.hash
|
||||
}
|
||||
|
||||
setHash(hash) {
|
||||
assert.maybe.match(hash, Blob.HEX_HASH_RX, 'bad hash')
|
||||
assert.match(hash, Blob.HEX_HASH_RX, 'bad hash')
|
||||
this.hash = hash
|
||||
}
|
||||
|
||||
@@ -83,7 +88,7 @@ class Blob {
|
||||
}
|
||||
|
||||
setByteLength(byteLength) {
|
||||
assert.maybe.integer(byteLength, 'bad byteLength')
|
||||
assert.integer(byteLength, 'bad byteLength')
|
||||
this.byteLength = byteLength
|
||||
}
|
||||
|
||||
|
||||
@@ -63,20 +63,14 @@ class FileData {
|
||||
*/
|
||||
static createLazyFromBlobs(blob, rangesBlob) {
|
||||
assert.instance(blob, Blob, 'FileData: bad blob')
|
||||
if (blob.getStringLength() == null) {
|
||||
return new BinaryFileData(
|
||||
// TODO(das7pad): see call-sites
|
||||
// @ts-ignore
|
||||
blob.getHash(),
|
||||
blob.getByteLength()
|
||||
)
|
||||
const stringLength = blob.getStringLength()
|
||||
if (stringLength == null) {
|
||||
return new BinaryFileData(blob.getHash(), blob.getByteLength())
|
||||
}
|
||||
return new LazyStringFileData(
|
||||
// TODO(das7pad): see call-sites
|
||||
// @ts-ignore
|
||||
blob.getHash(),
|
||||
rangesBlob?.getHash(),
|
||||
blob.getStringLength()
|
||||
stringLength
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -142,12 +142,8 @@ class StringFileData extends FileData {
|
||||
trackedChanges: this.trackedChanges.toRaw(),
|
||||
}
|
||||
const rangesBlob = await blobStore.putObject(ranges)
|
||||
// TODO(das7pad): Provide interface that guarantees hash exists?
|
||||
// @ts-ignore
|
||||
return { hash: blob.getHash(), rangesHash: rangesBlob.getHash() }
|
||||
}
|
||||
// TODO(das7pad): Provide interface that guarantees hash exists?
|
||||
// @ts-ignore
|
||||
return { hash: blob.getHash() }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user