UNPKG

@brimdata/zealot

Version:

The Javascript Client for Zed Lakes

95 lines (94 loc) 2.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { parseContent: ()=>parseContent, accept: ()=>accept, defaults: ()=>defaults, toJS: ()=>toJS, json: ()=>json, wrapAbort: ()=>wrapAbort, getLoadContentType: ()=>getLoadContentType }); const _encoder = require("../encoder"); function parseContent(resp) { if (resp.status === 204) return Promise.resolve(null); const type = resp.headers.get("Content-Type"); switch(type){ case "application/json": case "application/x-zjson": try { return resp.json(); } catch { console.error("Unable to parse json content, parsing as text instead"); return resp.text(); } case "text/html; charset=UTF-8": case "text/plain; charset=utf-8": return resp.text(); case "application/vnd.tcpdump.pcap": return resp; default: console.error(`unknown Content-Type: '${type}', parsing as text`); return resp.text(); } } function accept(format) { const formats = { arrows: "application/vnd.apache.arrow.stream", csv: "text/csv", json: "application/json", ndjson: "application/x-ndjson", vng: "application/x-vng", zeek: "application/x-zeek", zjson: "application/x-zjson", zng: "application/x-zng", zson: "application/x-zson" }; const value = formats[format]; if (!value) { throw Error(`Unknown Format: ${format}`); } else { return value; } } function defaults(opts, defs) { return { ...defs, ...opts }; } async function toJS(res) { const j = await res.json(); return (0, _encoder.decode)(j).toJS(); } function json(obj) { return JSON.stringify(obj); } function wrapAbort(signal) { const ctl = new AbortController(); signal?.addEventListener("abort", ()=>ctl.abort()); return ctl; } function getLoadContentType(format) { if (!format) return null; if (format === "auto") return "*/*"; if (format === "arrows") return "application/vnd.apache.arrow.stream"; if (format === "csv") return "text/csv"; if (format === "json") return "application/json"; if (format === "line") return "application/x-line"; if (format === "parquet") return "application/x-parquet"; if (format === "vng") return "application/x-vng"; if (format === "zeek") return "application/x-zeek"; if (format === "zjson") return "application/x-zjson"; if (format === "zng") return "application/x-zng"; if (format === "zson") return "application/x-zson"; throw new Error("Unknown load format: " + format); }