UNPKG

@evshiron/exifr

Version:

📷 The fastest and most versatile JavaScript EXIF reading library.

44 lines (40 loc) • 1.35 kB
const DEFAULT_SIZE = 16 // TODO: delete me before releasing. // This is for debugging only DataView.prototype.toString = function(size = DEFAULT_SIZE, name = this.constructor.name) { if (typeof size !== 'number') size = DEFAULT_SIZE size = Math.min(size, this.byteLength) let values = (new Array(size)) .fill(0) .map((val, i) => this.getUint8(i)) .map(val => val.toString(16).padStart(2, '0')) .join(' ') if (size < this.byteLength) return `<${name} ${values} ... ${this.byteLength - size} more bytes>` else return `<${name} ${values}>` } ArrayBuffer.prototype.toString = function(arg) { let view = new DataView(this) return view.toString(arg, 'ArrayBuffer') } Uint8Array.prototype.toString = function(size = 10) { if (typeof size !== 'number') size = DEFAULT_SIZE size = Math.min(size, this.byteLength) let values = (new Array(size)) .fill(0) .map((val, i) => this[i]) .map(val => val.toString(16).padStart(2, '0')) .join(' ') return `<Uint8Array ${values}>` } Uint16Array.prototype.toString = function(size = 10) { if (typeof size !== 'number') size = DEFAULT_SIZE size = Math.min(size, this.byteLength) let values = (new Array(size)) .fill(0) .map((val, i) => this[i]) .map(val => val.toString(16).padStart(4, '0')) .join(' ') return `<Uint16Array ${values}>` }