uspto-patents-view-api
Version:
An api wrapper for the patent view api run by the uspto
50 lines • 6.61 kB
JavaScript
;
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