[firestore][js] blob uint8 coversion + blob comparator
This commit is contained in:
parent
ff3b0fd7ea
commit
d180b40d19
|
@ -3,6 +3,9 @@ import Base64 from './utils/Base64';
|
||||||
type BlobFormat = 'string' | 'array';
|
type BlobFormat = 'string' | 'array';
|
||||||
|
|
||||||
export default class Blob {
|
export default class Blob {
|
||||||
|
_data: Uint8Array | string;
|
||||||
|
_type: BlobFormat;
|
||||||
|
|
||||||
constructor(data, type: BlobFormat) {
|
constructor(data, type: BlobFormat) {
|
||||||
this._data = data;
|
this._data = data;
|
||||||
this._type = type;
|
this._type = type;
|
||||||
|
@ -14,7 +17,6 @@ export default class Blob {
|
||||||
* @param base64 string
|
* @param base64 string
|
||||||
*/
|
*/
|
||||||
static fromBase64String(base64: string): Blob {
|
static fromBase64String(base64: string): Blob {
|
||||||
// TODO convert to Uint8Array?
|
|
||||||
return new Blob(base64, 'string');
|
return new Blob(base64, 'string');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +25,7 @@ export default class Blob {
|
||||||
* @url https://firebase.google.com/docs/reference/js/firebase.firestore.Blob#.fromUint8Array
|
* @url https://firebase.google.com/docs/reference/js/firebase.firestore.Blob#.fromUint8Array
|
||||||
* @param array Array
|
* @param array Array
|
||||||
*/
|
*/
|
||||||
static fromUint8Array(array: Array): Blob {
|
static fromUint8Array(array: Uint8Array): Blob {
|
||||||
return new Blob(array, 'array');
|
return new Blob(array, 'array');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,9 +36,15 @@ export default class Blob {
|
||||||
* @returns boolean 'true' if this Blob is equal to the provided one.
|
* @returns boolean 'true' if this Blob is equal to the provided one.
|
||||||
*/
|
*/
|
||||||
isEqual(blob: Blob): boolean {
|
isEqual(blob: Blob): boolean {
|
||||||
// TODO comparison checks
|
let thisBlobBase64 = '';
|
||||||
console.log(blob);
|
if (this._type === 'string') thisBlobBase64 = this._data;
|
||||||
return true;
|
else thisBlobBase64 = this.toBase64();
|
||||||
|
|
||||||
|
let thatBlobBase64 = '';
|
||||||
|
if (blob._type === 'string') thatBlobBase64 = blob._data;
|
||||||
|
else thatBlobBase64 = blob.toBase64();
|
||||||
|
|
||||||
|
return thisBlobBase64 === thatBlobBase64;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -63,9 +71,10 @@ export default class Blob {
|
||||||
*/
|
*/
|
||||||
toUint8Array(): Uint8Array {
|
toUint8Array(): Uint8Array {
|
||||||
if (this._type === 'array') return this._data;
|
if (this._type === 'array') return this._data;
|
||||||
// TODO conversion
|
return new Uint8Array(
|
||||||
// TODO conversion
|
Base64.atob(this._data)
|
||||||
// TODO conversion
|
.split('')
|
||||||
return new Uint8Array();
|
.map(c => c.charCodeAt(0))
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue