UNPKG

uspto-patents-view-api

Version:

An api wrapper for the patent view api run by the uspto

50 lines 6.61 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.BaseEndpoint = exports.PAGE_SIZE = void 0; const got_1 = __importDefault(require("got")); const path_1 = __importDefault(require("path")); const rxjs_1 = require("rxjs"); const config_1 = __importDefault(require("../config")); exports.PAGE_SIZE = 50; class BaseEndpoint { // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types request(requestPayload, page) { const searchParams = this.setupSearchParams(requestPayload, page); return (0, rxjs_1.from)((0, got_1.default)(path_1.default.join(config_1.default.apiUrl, this.apiEndpointUrl), { searchParams: { ...searchParams } })).pipe((0, rxjs_1.map)((data) => { return this.mapper(data.body); })); } setupSearchParams(requestPayload, page) { try { const searchParams = { q: JSON.stringify(requestPayload.queryParamObject), f: JSON.stringify(['patent_number', 'patent_date', 'patent_title', ...requestPayload.dataPoints]), o: JSON.stringify({ per_page: this.pageSize, page }) }; if (requestPayload.sortingOptions) { searchParams.s = JSON.stringify(requestPayload.sortingOptions); } return searchParams; } catch (err) { console.error(err); throw Error('Issue building search parameters'); } } // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types mapper(data) { return JSON.parse(data); } } exports.BaseEndpoint = BaseEndpoint; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXNCO0FBQ3RCLGdEQUF3QjtBQUN4QiwrQkFBaUM7QUFFakMsdURBQW1DO0FBSXRCLFFBQUEsU0FBUyxHQUFHLEVBQUUsQ0FBQztBQW9CNUIsTUFBYSxZQUFZO0lBSXZCLDZFQUE2RTtJQUM3RSxPQUFPLENBQUMsY0FBOEIsRUFBRSxJQUFZO1FBQ2xELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEUsT0FBTyxJQUFBLFdBQUksRUFDVCxJQUFBLGFBQUcsRUFBUyxjQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUM3RCxZQUFZLEVBQUU7Z0JBQ1osR0FBRyxZQUFZO2FBQ2hCO1NBQ0YsQ0FBQyxDQUNILENBQUMsSUFBSSxDQUNKLElBQUEsVUFBRyxFQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8saUJBQWlCLENBQUMsY0FBOEIsRUFBRSxJQUFZO1FBQ3BFLElBQUk7WUFDRixNQUFNLFlBQVksR0FBd0I7Z0JBQ3hDLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDbEQsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDakcsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7b0JBQ2hCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtvQkFDdkIsSUFBSTtpQkFDTCxDQUFDO2FBQ0gsQ0FBQztZQUNGLElBQUksY0FBYyxDQUFDLGNBQWMsRUFBRTtnQkFDakMsWUFBWSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUNoRTtZQUNELE9BQU8sWUFBWSxDQUFDO1NBQ3JCO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLE1BQU0sS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7U0FDakQ7SUFDSCxDQUFDO0lBRUQsNkVBQTZFO0lBQ25FLE1BQU0sQ0FBQyxJQUFZO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0NBQ0Y7QUE1Q0Qsb0NBNENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdvdCBmcm9tICdnb3QnO1xyXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcclxuaW1wb3J0IHsgZnJvbSwgbWFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgTWFpbkNvbmZpZyBmcm9tICcuLi9jb25maWcnO1xyXG5pbXBvcnQgeyBRdWVyeU9iamVjdCB9IGZyb20gJy4uL3F1ZXJ5LXN5c3RlbSc7XHJcbmltcG9ydCB7IERhdGFQb2ludHMsIFNvcnRpbmdPcHRpb25zIH0gZnJvbSAnLi9zaGFyZWQtdHlwZXMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBR0VfU0laRSA9IDUwO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uIHtcclxuICBwYWdlU2l6ZT86IG51bWJlcjtcclxuICBwYWdlcz86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0UGF5bG9hZCB7XHJcbiAgZGF0YVBvaW50czogRGF0YVBvaW50cztcclxuICBxdWVyeVBhcmFtT2JqZWN0OiBRdWVyeU9iamVjdDtcclxuICBzb3J0aW5nT3B0aW9ucz86IFNvcnRpbmdPcHRpb25zO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgQmFzZVF1ZXJ5UGFyYW1ldGVycyB7XHJcbiAgcT86IHN0cmluZztcclxuICBmPzogc3RyaW5nO1xyXG4gIG8/OiBzdHJpbmc7XHJcbiAgcz86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEJhc2VFbmRwb2ludCB7XHJcbiAgcHJvdGVjdGVkIGFwaUVuZHBvaW50VXJsOiBzdHJpbmc7XHJcbiAgcHJvdGVjdGVkIHBhZ2VTaXplOiBudW1iZXI7XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvZXhwbGljaXQtbW9kdWxlLWJvdW5kYXJ5LXR5cGVzXHJcbiAgcmVxdWVzdChyZXF1ZXN0UGF5bG9hZDogUmVxdWVzdFBheWxvYWQsIHBhZ2U6IG51bWJlcikge1xyXG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gdGhpcy5zZXR1cFNlYXJjaFBhcmFtcyhyZXF1ZXN0UGF5bG9hZCwgcGFnZSk7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgZ290PHN0cmluZz4ocGF0aC5qb2luKE1haW5Db25maWcuYXBpVXJsLCB0aGlzLmFwaUVuZHBvaW50VXJsKSwge1xyXG4gICAgICAgIHNlYXJjaFBhcmFtczoge1xyXG4gICAgICAgICAgLi4uc2VhcmNoUGFyYW1zXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKGRhdGEpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tYXBwZXIoZGF0YS5ib2R5KTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwU2VhcmNoUGFyYW1zKHJlcXVlc3RQYXlsb2FkOiBSZXF1ZXN0UGF5bG9hZCwgcGFnZTogbnVtYmVyKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBzZWFyY2hQYXJhbXM6IEJhc2VRdWVyeVBhcmFtZXRlcnMgPSB7XHJcbiAgICAgICAgcTogSlNPTi5zdHJpbmdpZnkocmVxdWVzdFBheWxvYWQucXVlcnlQYXJhbU9iamVjdCksXHJcbiAgICAgICAgZjogSlNPTi5zdHJpbmdpZnkoWydwYXRlbnRfbnVtYmVyJywgJ3BhdGVudF9kYXRlJywgJ3BhdGVudF90aXRsZScsIC4uLnJlcXVlc3RQYXlsb2FkLmRhdGFQb2ludHNdKSxcclxuICAgICAgICBvOiBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgICBwZXJfcGFnZTogdGhpcy5wYWdlU2l6ZSxcclxuICAgICAgICAgIHBhZ2VcclxuICAgICAgICB9KVxyXG4gICAgICB9O1xyXG4gICAgICBpZiAocmVxdWVzdFBheWxvYWQuc29ydGluZ09wdGlvbnMpIHtcclxuICAgICAgICBzZWFyY2hQYXJhbXMucyA9IEpTT04uc3RyaW5naWZ5KHJlcXVlc3RQYXlsb2FkLnNvcnRpbmdPcHRpb25zKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gc2VhcmNoUGFyYW1zO1xyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgICAgdGhyb3cgRXJyb3IoJ0lzc3VlIGJ1aWxkaW5nIHNlYXJjaCBwYXJhbWV0ZXJzJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LW1vZHVsZS1ib3VuZGFyeS10eXBlc1xyXG4gIHByb3RlY3RlZCBtYXBwZXIoZGF0YTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcclxuICB9XHJcbn1cclxuIl19