12345678910111213141516171819202122232425262728 |
- export function prettyObject(msg: any) {
- const obj = msg;
- if (typeof msg !== "string") {
- msg = JSON.stringify(msg, null, " ");
- }
- if (msg === "{}") {
- return obj.toString();
- }
- if (msg.startsWith("```json")) {
- return msg;
- }
- return ["```json", msg, "```"].join("\n");
- }
- export function* chunks(s: string, maxBytes = 1000 * 1000) {
- const decoder = new TextDecoder("utf-8");
- let buf = new TextEncoder().encode(s);
- while (buf.length) {
- let i = buf.lastIndexOf(32, maxBytes + 1);
- // If no space found, try forward search
- if (i < 0) i = buf.indexOf(32, maxBytes);
- // If there's no space at all, take all
- if (i < 0) i = buf.length;
- // This is a safe cut-off point; never half-way a multi-byte
- yield decoder.decode(buf.slice(0, i));
- buf = buf.slice(i + 1); // Skip space (if any)
- }
- }
|