diff --git a/@sammo/util/src/index.ts b/@sammo/util/src/index.ts index 6c23dc5..4595043 100644 --- a/@sammo/util/src/index.ts +++ b/@sammo/util/src/index.ts @@ -45,4 +45,18 @@ export function isBufferSource(obj: unknown): obj is BufferSource { export function isNotNull(value: T|null|undefined):value is T{ return value !== null && value !== undefined; +} + +export function ArrayBufferFromString(str: string): ArrayBuffer { + const enc = new TextEncoder(); + const u8arr = enc.encode(str); + if(u8arr.buffer.byteLength === u8arr.byteLength){ + return u8arr.buffer; + } + return u8arr.buffer.slice(u8arr.byteOffset, u8arr.byteOffset + u8arr.byteLength); +} + +export function StringFromArrayBuffer(buffer: BufferSource): string { + const dec = new TextDecoder(); + return dec.decode(buffer); } \ No newline at end of file