UNPKG

carsxe-api

Version:

CarsXE is a powerful, easy-to-use API that gives you instant access to vehicle data like specs, market value, license plate decoding, and more. It's fast, scalable, and simple to integrate into your apps and services.

243 lines (242 loc) 11 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.CarsXE = exports.Greeter = void 0; var node_fetch_1 = require("node-fetch"); var Greeter = function (name) { return "CarsXE API says hello ".concat(name, "!"); }; exports.Greeter = Greeter; var CarsXE = /** @class */ (function () { function CarsXE(apiKey) { this.apiKey = apiKey; } CarsXE.prototype.getBaseUrl = function () { return 'https://api.carsxe.com'; }; CarsXE.prototype.buildUrl = function (endpoint, params) { var url = new URL("".concat(this.getBaseUrl(), "/").concat(endpoint)); url.searchParams.append('key', this.apiKey); url.searchParams.append('source', 'npm'); for (var _i = 0, _a = Object.entries(params); _i < _a.length; _i++) { var _b = _a[_i], key = _b[0], value = _b[1]; if (value !== undefined) { url.searchParams.append(key, value); } } return url.toString(); }; CarsXE.prototype.specs = function (params) { return __awaiter(this, void 0, void 0, function () { var res; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, (0, node_fetch_1.default)(this.buildUrl('specs', __assign({}, params)))]; case 1: res = _a.sent(); return [2 /*return*/, res.json()]; } }); }); }; CarsXE.prototype.marketvalue = function (params) { return __awaiter(this, void 0, void 0, function () { var res; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, (0, node_fetch_1.default)(this.buildUrl('v2/marketvalue', __assign({}, params)))]; case 1: res = _a.sent(); return [2 /*return*/, res.json()]; } }); }); }; CarsXE.prototype.history = function (params) { return __awaiter(this, void 0, void 0, function () { var res; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, (0, node_fetch_1.default)(this.buildUrl('history', __assign({}, params)))]; case 1: res = _a.sent(); return [2 /*return*/, res.json()]; } }); }); }; CarsXE.prototype.recalls = function (params) { return __awaiter(this, void 0, void 0, function () { var res; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, (0, node_fetch_1.default)(this.buildUrl('v1/recalls', __assign({}, params)))]; case 1: res = _a.sent(); return [2 /*return*/, res.json()]; } }); }); }; CarsXE.prototype.internationalVinDecoder = function (params) { return __awaiter(this, void 0, void 0, function () { var res; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, (0, node_fetch_1.default)(this.buildUrl('v1/international-vin-decoder', __assign({}, params)))]; case 1: res = _a.sent(); return [2 /*return*/, res.json()]; } }); }); }; CarsXE.prototype.platedecoder = function (params) { return __awaiter(this, void 0, void 0, function () { var res; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, (0, node_fetch_1.default)(this.buildUrl('v2/platedecoder', __assign({}, params)))]; case 1: res = _a.sent(); return [2 /*return*/, res.json()]; } }); }); }; CarsXE.prototype.plateImageRecognition = function (params) { return __awaiter(this, void 0, void 0, function () { var url, res; return __generator(this, function (_a) { switch (_a.label) { case 0: url = new URL("".concat(this.getBaseUrl(), "/platerecognition")); url.searchParams.append('key', this.apiKey); return [4 /*yield*/, (0, node_fetch_1.default)(url.toString(), { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ image: params.imageUrl, }), })]; case 1: res = _a.sent(); return [2 /*return*/, res.json()]; } }); }); }; CarsXE.prototype.vinOcr = function (params) { return __awaiter(this, void 0, void 0, function () { var url, res; return __generator(this, function (_a) { switch (_a.label) { case 0: url = new URL("".concat(this.getBaseUrl(), "/v1/vinocr")); url.searchParams.append('key', this.apiKey); return [4 /*yield*/, (0, node_fetch_1.default)(url.toString(), { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ image: params.imageUrl, }), })]; case 1: res = _a.sent(); console.log('Request URL:', url.toString()); return [2 /*return*/, res.json()]; } }); }); }; CarsXE.prototype.yearMakeModel = function (params) { return __awaiter(this, void 0, void 0, function () { var res; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, (0, node_fetch_1.default)(this.buildUrl('v1/ymm', __assign({}, params)))]; case 1: res = _a.sent(); return [2 /*return*/, res.json()]; } }); }); }; CarsXE.prototype.images = function (params) { return __awaiter(this, void 0, void 0, function () { var res; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, (0, node_fetch_1.default)(this.buildUrl('images', __assign({}, params)))]; case 1: res = _a.sent(); return [2 /*return*/, res.json()]; } }); }); }; CarsXE.prototype.obdcodesdecoder = function (params) { return __awaiter(this, void 0, void 0, function () { var res; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, (0, node_fetch_1.default)(this.buildUrl('obdcodesdecoder', __assign({}, params)))]; case 1: res = _a.sent(); return [2 /*return*/, res.json()]; } }); }); }; return CarsXE; }()); exports.CarsXE = CarsXE; exports.default = CarsXE;