add duckdb-ui-client & other ts pkgs (#10)
* add duckdb-ui-client & other ts pkgs * workflow fixes * fix working dir * no sparse checkout; specify package.json path * path to pnpm-lock.yaml * add check & build test * workflow step descriptions * use comments & names * one more naming tweak
This commit is contained in:
17
ts/pkgs/duckdb-data-values/src/conversion/stringFromBlob.ts
Normal file
17
ts/pkgs/duckdb-data-values/src/conversion/stringFromBlob.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
/** Matches BLOB-to-VARCHAR conversion behavior of DuckDB. */
|
||||
export function stringFromBlob(bytes: Uint8Array): string {
|
||||
let result = '';
|
||||
for (const byte of bytes) {
|
||||
if (
|
||||
byte <= 0x1f ||
|
||||
byte === 0x22 /* single quote */ ||
|
||||
byte === 0x27 /* double quote */ ||
|
||||
byte >= 0x7f
|
||||
) {
|
||||
result += `\\x${byte.toString(16).toUpperCase().padStart(2, '0')}`;
|
||||
} else {
|
||||
result += String.fromCharCode(byte);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user