UNPKG

linkup-sdk

Version:
65 lines 2.82 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.LinkupClient = void 0; const axios_1 = __importDefault(require("axios")); const zod_to_json_schema_1 = __importDefault(require("zod-to-json-schema")); const package_json_1 = require("../package.json"); const refine_error_utils_1 = require("./utils/refine-error.utils"); const schema_utils_1 = require("./utils/schema.utils"); class LinkupClient { USER_AGENT = `Linkup-JS-SDK/${package_json_1.version}`; client; constructor(config) { const baseURL = config.baseUrl || 'https://api.linkup.so/v1'; this.client = axios_1.default.create({ baseURL, headers: { Authorization: `Bearer ${config.apiKey}`, 'User-Agent': this.USER_AGENT, }, }); this.client.interceptors.response.use(response => response, error => { if (!error.response || !error.response.data) { throw error; } throw (0, refine_error_utils_1.refineError)(error.response.data); }); } async search(params) { return this.client.post('/search', this.sanitizeParams(params)).then(response => response.data); } async fetch(params) { return this.client.post('/fetch', params).then(response => response.data); } sanitizeParams(params) { const { query, depth, outputType, includeImages, includeDomains, excludeDomains, fromDate, toDate, maxResults, } = params; const result = { depth, outputType, q: query, ...(includeImages && { includeImages }), ...(includeDomains && { includeDomains }), ...(excludeDomains && { excludeDomains }), ...(fromDate && { fromDate: fromDate.toISOString() }), ...(toDate && { toDate: toDate.toISOString() }), ...(maxResults && { maxResults }), }; if ('includeInlineCitations' in params && params.includeInlineCitations) { result.includeInlineCitations = params.includeInlineCitations; } if ('includeSources' in params && params.includeSources) { result.includeSources = params.includeSources; } if ('structuredOutputSchema' in params) { result.structuredOutputSchema = JSON.stringify((0, schema_utils_1.isZodObject)(params.structuredOutputSchema) ? (0, zod_to_json_schema_1.default)(params.structuredOutputSchema) : params.structuredOutputSchema); } return result; } } exports.LinkupClient = LinkupClient; //# sourceMappingURL=linkup-client.js.map